Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Milliy Ekologik sun'iy yo'ldosh ma'lumotlari xizmati (NESDIS) qo'g'irchoq korxonasidan Ansible Towerga o'tish orqali Red Hat Enterprise Linux (RHEL) uchun konfiguratsiyani boshqarish xarajatlarini 35 foizga kamaytirdi. Ushbu "biz buni qanday qildik" videosida tizim muhandisi Maykl Rau ushbu migratsiya holatini tushuntirib, foydali maslahatlar va bir SCMdan boshqasiga o'tishdan olingan saboqlar bilan o'rtoqlashdi.

Ushbu videodan siz quyidagilarni bilib olasiz:

  • Qo'g'irchoq korxonasidan Ansible Towerga o'tishning maqsadga muvofiqligini rahbariyatga qanday asoslash kerak;
  • o'tishni iloji boricha silliq qilish uchun qanday strategiyalardan foydalanish kerak;
  • PE manifestlarini Ansible Playbook ga transkod qilish bo'yicha maslahatlar;
  • Ansible Tower-ni optimal o'rnatish bo'yicha tavsiyalar.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Hammaga salom, mening ismim Maykl Rau, men Milliy Okean va Atmosfera Boshqaruvi (NOAA) NESDIS xizmatida ishlaydigan ActioNet kompaniyasida katta tizim muhandisiman. Bugun biz iplarni kesish haqida gaplashamiz - mening qo'g'irchoq korxonasidan Ansible Towerga o'tish tajribam. Ushbu taqdimotning mavzusi - yil boshida bu o'tishni amalga oshirganimdan keyin qolgan "chandiqlarimni ko'rib chiqish". Men ushbu jarayon orqali o'rganganlarimni baham ko'rmoqchiman. Shunday qilib, siz shunga o'xshash narsani qabul qilsangiz, mening tajribamdan foydalanib, hech qanday qo'shimcha ishlamasdan o'tishni amalga oshirishingiz mumkin.

Ansible Fest-dagi har bir taqdimotning boshida shunga o'xshash slaydlarni ko'rasiz. Ushbu slaydda mening kompaniyamni avtomatlashtirish tarixi tasvirlangan. Men bu borada yangi emasman, chunki men 2007 yildan beri qo'g'irchoq/qo'g'irchoq korxonasidan foydalanaman. Men Ansible bilan 2016 yilda ishlay boshladim va ushbu mahsulotning boshqa ko'plab foydalanuvchilari singari, buyruq qatori va oddiy skriptlar (o'yin kitoblari) yordamida "hiylalar" imkoniyati meni o'ziga tortdi. 2017 yil oxirida men rahbariyatga Ansible Towerga ko'chib o'tishning kuchli sabablari haqida murojaat qildim. Bir daqiqadan so'ng men sizga bu qadamni qo'yishga undagan sabablar haqida gapirib beraman. Rahbariyatning roziligini olgach, rejani bajarishga yana bir necha oy kerak bo‘ldi va shu yilning yanvar-fevral oylarida o‘tishni amalga oshirdim. Shunday qilib, biz Ansible foydasiga Qo‘g‘irchoqdan butunlay voz kechdik va bu ajoyib narsa.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Ansible haqida meni eng ko'p o'ziga jalb qiladigan narsa bu rollar va o'yin kitoblarini yozish va ulardan foydalanish qobiliyatidir. Rollar aniq, ammo o'zaro bog'liq vazifalarni yaratish va ushbu vazifalar bilan bog'liq barcha ma'lumotlarni bir joyga qo'yish uchun juda yaxshi. O'yin kitobi - bu YAML sintaksisi, bir yoki bir nechta xostlar uchun amallarni tavsiflovchi skript fayli. Men foydalanuvchilarga ushbu xususiyatlar, birinchi navbatda, dasturiy ta'minot ishlab chiquvchilari haqida gapirib beraman. Ansible Tower sizga “yo‘q, sizda qobiqqa kirish huquqi yo‘q, lekin men sizga barcha Tower jarayonlarini ishga tushirish va kerak bo‘lganda xizmatni qayta ishga tushirish imkoniyatini beraman” deyish imkoniyatini beradi. Men sizga ish muhiti va biz foydalanadigan uskunalar haqida gapirib beraman.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Bu federal LAN, bulutli MPLS orqali ulangan 7 ta jismoniy sayt, 140 ta RHEL serveri, ulardan 99% virtual (vSphere), SuperMicro uskunasi, NexentaStore tarmoq xotirasi, Cisco, Arista va Cumulus kalitlari to'plami va Fortinet UTM tahdidlarni yagona boshqarish. har bir saytdagi vositalar.

Federal tarmoq men qonun bilan belgilangan barcha axborot xavfsizligi choralarini qo'llashim kerakligini anglatadi. Shuni yodda tutish kerakki, Qo'g'irchoq korxonasi biz foydalanadigan ko'pgina qurilmalarni qo'llab-quvvatlamaydi. Biz byudjet apparatlaridan foydalanishga majburmiz, chunki davlat idoralarida ushbu xarajatlar moddasini moliyalashtirishda muammolar mavjud. Shuning uchun biz SuperMicro apparatlarini xarid qilamiz va texnik xizmat ko‘rsatish davlat shartnomalari bilan kafolatlangan alohida qismlardan jihozlarimizni yig‘amiz. Biz Linux-dan foydalanamiz va bu Ansible-ga o'tishning muhim sabablaridan biridir.

Qo'g'irchoq bilan bizning tariximiz quyidagicha.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

2007 yilda bizda 20-25 tugunli kichik tarmoq mavjud edi, ularda biz Puppet-ni joylashtirdik. Asosan, bu tugunlar shunchaki RedHat "qutilari" edi. 2010 yilda biz 45 ta tugun uchun Qo'g'irchoq asboblar paneli veb-interfeysidan foydalanishni boshladik. Tarmoq kengayishda davom etar ekan, biz 2014 yilda PE 3.3 ga o'tdik va 75 ta tugun uchun manifest qayta yozish bilan to'liq o'tishni amalga oshirdik. Buni qilish kerak edi, chunki Qo'g'irchoq o'yin qoidalarini o'zgartirishni yaxshi ko'radi va bu holda ular tilni butunlay o'zgartirdilar. Bir yil o'tgach, Puppet Enterprise-ning 3-versiyasini qo'llab-quvvatlash tugagach, biz PE 2015.2 ga o'tishga majbur bo'ldik. Biz yangi serverlar uchun manifestni qayta yozishimiz va 100 ta tugun zaxirasi bo'lgan litsenziyani sotib olishimiz kerak edi, garchi o'sha paytda bizda atigi 85 ta tugun bor edi.

Faqat 2 yil o'tdi va biz PE 2016.4 yangi versiyasiga o'tish uchun yana ko'p ish qilishimiz kerak edi. Biz 300 ta tugun uchun litsenziya sotib oldik, bor-yoʻgʻi 130 tasi bor. Biz yana manifestga katta oʻzgarishlar kiritishga majbur boʻldik, chunki tilning yangi versiyasi 2015 yilgi versiya tilidan boshqa sintaksisga ega edi. Natijada, bizning SCM SVN versiya boshqaruvidan Bitbucket (Git) ga o'tdi. Bu bizning Qo'g'irchoq bilan "munosabatimiz" edi.

Shunday qilib, men rahbariyatga quyidagi dalillardan foydalanib, nima uchun boshqa SCMga o'tishimiz kerakligini tushuntirishim kerak edi. Birinchisi, xizmatning yuqori narxi. Men RedHat’dagi yigitlar bilan suhbatlashdim va ular Ansible Tower bilan 300 tugunli tarmoqni ishga tushirish narxi Qo‘g‘irchoq korxonasi narxining yarmi ekanligini aytishdi. Agar siz Ansible Engine-ni sotib olsangiz, narx taxminan bir xil bo'ladi, lekin siz PE-ga qaraganda ko'proq xususiyatlarga ega bo'lasiz. Biz federal byudjetdan moliyalashtiriladigan davlat kompaniyasi bo'lganimiz sababli, bu juda kuchli dalil.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Ikkinchi dalil - ko'p qirralilik. Qo'g'irchoq faqat qo'g'irchoq agenti bo'lgan uskunani qo'llab-quvvatlaydi. Bu shuni anglatadiki, agent barcha kalitlarga o'rnatilgan bo'lishi kerak va u eng so'nggi versiya bo'lishi kerak. Va agar sizning ba'zi kalitlaringiz bir versiyani qo'llab-quvvatlasa va ba'zilari boshqasini qo'llab-quvvatlasa, ularning barchasi bir xil SCM tizimida ishlashi uchun PE agentining yangi versiyasini o'rnatishingiz kerak bo'ladi.

Ansible Tower tizimi boshqacha ishlaydi, chunki u hech qanday agentga ega emas, lekin Cisco kalitlari va boshqa barcha kalitlarni qo'llab-quvvatlaydigan modullarga ega. Ushbu SCM Qubes OS, Linux va 4.NET UTM ni qo'llab-quvvatlaydi. Ansible Tower, shuningdek, ochiq kodli Unix-ga asoslangan operatsion tizim bo'lgan Illumos yadrosi asosidagi NexentaStore tarmoq xotira kontrollerlarini ham qo'llab-quvvatlaydi. Bu juda kam yordam, ammo Ansible Tower buni baribir qiladi.

Men uchun ham, bizning ma'muriyatimiz uchun ham juda muhim bo'lgan uchinchi dalil - foydalanish qulayligi. Men qo'g'irchoq modullari va manifest kodini o'zlashtirishga 10 yil vaqt sarfladim, lekin men Ansible-ni bir hafta ichida o'rgandim, chunki bu SCM bilan ishlash ancha oson. Agar siz bajariladigan fayllarni ishga tushirsangiz, albatta, agar buni keraksiz qilmasangiz, ular bilan aqlli va sezgir ishlov beruvchilar ishlaydi. YAML-ga asoslangan o'yin kitoblarini o'rganish oson va ulardan foydalanish tezdir. Ilgari YAML haqida eshitmaganlar oddiygina skriptlarni o'qishlari va uning qanday ishlashini osongina tushunishlari mumkin.

Rostini aytsam, Puppet dasturchi sifatida ishingizni ancha qiyinlashtiradi, chunki u Qo'g'irchoq ustasidan foydalanishga asoslangan. Bu Qo'g'irchoq agentlari bilan aloqa qilish uchun ruxsat berilgan yagona mashina. Agar siz manifestga biron bir o'zgartirish kiritgan bo'lsangiz va kodingizni sinab ko'rmoqchi bo'lsangiz, Puppet Master uchun kodni qayta yozishingiz kerak, ya'ni Puppet Master /etc/hosts faylini barcha mijozlarni ulash va Qo'g'irchoq serveri xizmatini ishga tushirish uchun sozlashingiz kerak. Shundan keyingina siz tarmoq uskunasining ishlashini bitta xostda sinab ko'rishingiz mumkin bo'ladi. Bu ancha og'riqli protsedura.
Ansible-da hamma narsa ancha sodda. Sizga kerak bo'lgan yagona narsa, sinov ostidagi xost bilan SSH orqali bog'lana oladigan mashina uchun kod ishlab chiqishdir. Bu bilan ishlash ancha oson.

Ansible Tower-ning navbatdagi katta afzalligi - mavjud qo'llab-quvvatlash tizimingizdan foydalanish va mavjud apparat konfiguratsiyasini saqlab qolish qobiliyatidir. Ushbu SCM infratuzilmangiz va uskunangiz, virtual mashinalaringiz, serverlaringiz va boshqalar haqidagi barcha mavjud ma'lumotlarni qo'shimcha qadamlarsiz ishlatadi. Agar sizda mavjud bo'lsa, u RH Satellite serverlaringiz bilan gaplasha oladi va sizga Puppet bilan hech qachon erisha olmaydigan integratsiyalarni beradi.

Yana bir muhim narsa - batafsil nazorat. Bilasizmi, Qo'g'irchoq modulli tizim, u mijoz-server ilovasi, shuning uchun siz bitta uzoq manifestda barcha mashinalaringizning mavjud tomonlarini aniqlashingiz kerak. Bunday holda, tizimning har bir alohida elementining holati har yarim soatda tekshirilishi kerak - bu standart davr. Qo'g'irchoq shunday ishlaydi.

Minora sizni bundan qutqaradi. Siz turli xil uskunalarda turli jarayonlarni cheklovlarsiz bajarishingiz mumkin, siz asosiy ishlarni bajarishingiz, boshqa muhim jarayonlarni bajarishingiz, xavfsizlik tizimini sozlashingiz va ma'lumotlar bazalari bilan ishlashingiz mumkin. Qo'g'irchoq korxonasida qiyin bo'lgan hamma narsani qilishingiz mumkin. Shunday qilib, agar siz uni bitta xostda sozlagan bo'lsangiz, o'zgarishlar qolgan hostlarda kuchga kirishi uchun vaqt kerak bo'ladi. Ansible-da barcha o'zgarishlar bir vaqtning o'zida kuchga kiradi.

Va nihoyat, xavfsizlik modulini ko'rib chiqaylik. Ansible Tower uni ajoyib tarzda, katta aniqlik va ehtiyotkorlik bilan amalga oshiradi. Siz foydalanuvchilarga ma'lum xizmatlarga yoki ma'lum xostlarga kirish huquqini berishingiz mumkin. Men buni Windows-da ishlashga odatlangan xodimlarim bilan qilaman, ularning Linux qobig'iga kirishini cheklayman. Men ular faqat ishni bajarishlari va faqat o'zlariga tegishli bo'lgan xizmatlarni ishga tushirishlari uchun Tower-dan foydalanishlari mumkinligiga ishonch hosil qilaman.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Keling, Ansible Tower-ga o'tishni osonlashtirish uchun oldindan qilish kerak bo'lgan narsalarni ko'rib chiqaylik. Avvalo, siz jihozlarni tayyorlashingiz kerak. Agar infratuzilmangizning ba'zi elementlari ma'lumotlar bazasida bo'lmasa, ularni u erga qo'shishingiz kerak. O'z xususiyatlarini o'zgartirmaydigan va shuning uchun Qo'g'irchoq ma'lumotlar bazasida mavjud bo'lmagan tizimlar mavjud, ammo Tower-ga o'tishdan oldin ularni qo'shmasangiz, siz bir qator afzalliklarni yo'qotasiz. Bu "iflos", dastlabki ma'lumotlar bazasi bo'lishi mumkin, ammo u sizda mavjud bo'lgan barcha jihozlar haqida ma'lumotni o'z ichiga olishi kerak. Shuning uchun siz barcha infratuzilma o'zgarishlarini ma'lumotlar bazasiga avtomatik ravishda kiritadigan dinamik apparat skriptini yozishingiz kerak, keyin Ansible yangi tizimda qaysi xostlar bo'lishi kerakligini bilib oladi. Bu SCMga qaysi xostlarni qo'shganingizni va qaysi xostlar endi mavjud emasligini aytishingiz shart emas, chunki u bularning barchasini avtomatik ravishda bilib oladi. Ma'lumotlar bazasida qancha ko'p ma'lumot bo'lsa, Ansible shunchalik foydali va moslashuvchan bo'ladi. U xuddi ma'lumotlar bazasidan apparat holati shtrix kodini o'qiyotgandek ishlaydi.

Ansible-da buyruq qatori bilan tanishish uchun biroz vaqt sarflang. Uskuna skriptini sinab ko'rish uchun ba'zi maxsus buyruqlarni ishga tushiring, oddiy, ammo foydali o'yin kitobi skriptlarini yozing va ishga tushiring, kerak bo'lganda Jinja2 shablonlaridan foydalaning. Umumiy, tez-tez uchraydigan apparat konfiguratsiyasidan foydalangan holda murakkab, ko'p bosqichli jarayon uchun rol va skript yozishga harakat qiling. Bu narsalar bilan o'ynang, qanday ishlashini sinab ko'ring. Shu tariqa siz Tower’da qo‘llaniladigan kutubxona yaratish vositalaridan qanday foydalanishni o‘rganasiz. O'tishga tayyorgarlik ko'rishim uchun taxminan 3 oy vaqt ketganini allaqachon aytgandim. O'ylaymanki, mening tajribamga asoslanib, siz buni tezroq qila olasiz. Bu vaqtni behuda deb hisoblamang, chunki keyinchalik bajarilgan ishning barcha afzalliklarini his qilasiz.

Keyinchalik, Ansible Tower'dan nimani kutayotganingizni, ushbu tizim siz uchun nima qilishi kerakligini hal qilishingiz kerak.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Tizimni yalang'och apparatda, yalang'och virtual mashinalarda joylashtirishingiz kerakmi? Yoki mavjud uskunaning asl ish sharoitlari va sozlamalarini saqlab qolmoqchimisiz? Bu ommaviy kompaniyalar uchun juda muhim jihat, shuning uchun siz Ansible-ni mavjud konfiguratsiyangizga ko'chirishingiz va o'rnatishingiz mumkinligiga ishonchingiz komil bo'lishi kerak. Avtomatlashtirmoqchi bo'lgan muntazam ma'muriy jarayonlarni aniqlang. Yangi tizimda muayyan ilovalar va xizmatlarni o'rnatishingiz kerakligini bilib oling. Nima qilishni xohlayotganingiz ro'yxatini tuzing va ularga ustuvorlik bering.

Keyin siz bajarishni rejalashtirgan vazifalarni bajarishga imkon beradigan skript kodi va rollarni yozishni boshlang. Ularni tegishli o'yin kitoblarining mantiqiy to'plami bo'lgan Loyihalarga birlashtiring. Har bir loyiha siz foydalanadigan kod menejeriga qarab alohida Git omboriga yoki boshqa omborga tegishli bo'ladi. Oʻyin kitobi skriptlari va oʻyin kitoblari kataloglarini Tower serveridagi Project Base Path-ga qoʻlda joylashtirish yoki oʻyin kitobini Tower tomonidan qoʻllab-quvvatlanadigan har qanday manba kodini boshqarish (SCM) tizimiga joylashtirish orqali boshqarishingiz mumkin, jumladan Git, Subversion, Mercurial va Red Hat Insights. Bitta loyiha doirasida siz xohlagancha skriptlarni joylashtirishingiz mumkin. Misol uchun, men bitta asosiy loyihani yaratdim, unda men RedHat asosiy elementlari uchun skript, Linux yadrosi uchun skript va qolgan asosiy chiziqlar uchun skriptlarni joylashtirdim. Shunday qilib, bitta loyihada bitta Git omboridan boshqariladigan turli rollar va stsenariylar mavjud edi.

Bularning barchasini buyruq satri orqali bajarish ularning funksionalligini tekshirishning yaxshi usuli hisoblanadi. Bu sizni Tower o'rnatishga tayyorlaydi.

Keling, Qo'g'irchoq manifestini transkodlash haqida bir oz gaplashaylik, chunki men aslida nima qilish kerakligini tushunmagunimcha bunga ko'p vaqt sarfladim.

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 1-qism

Yuqorida aytib o'tganimdek, Qo'g'irchoq barcha sozlamalar va apparat variantlarini bitta uzoq manifestda saqlaydi va bu manifest bu SCM qilishi kerak bo'lgan hamma narsani saqlaydi. O'tishni amalga oshirayotganda, barcha vazifalaringizni bitta ro'yxatga kiritishingiz shart emas, aksincha, yangi tizimning tuzilishi haqida o'ylang: rollar, skriptlar, teglar, guruhlar va u erda nima bo'lishi kerak. Avtonom tarmoq elementlarining ba'zilari skriptlar yaratilishi mumkin bo'lgan guruhlarga birlashtirilishi kerak. Ko'p sonli resurslarni, shu jumladan mustaqil sinflarni o'z ichiga olgan murakkabroq infratuzilma elementlari rollarga birlashtirilishi mumkin. Migratsiya qilishdan oldin siz bu haqda qaror qabul qilishingiz kerak. Agar siz bitta ekranga to'g'ri kelmaydigan katta rollar yoki stsenariylarni yaratayotgan bo'lsangiz, infratuzilmaning muayyan qismlarini suratga olish uchun teglardan foydalanishingiz kerak.

18:00

Iplarni kesish: Qo'g'irchoq korxonasidan Ansible Towerga o'tish. 2-qism

Ba'zi reklamalar 🙂

Biz bilan qolganingiz uchun tashakkur. Bizning maqolalarimiz sizga yoqdimi? Ko'proq qiziqarli tarkibni ko'rishni xohlaysizmi? Buyurtma berish yoki do'stlaringizga tavsiya qilish orqali bizni qo'llab-quvvatlang, 4.99 dollardan boshlab ishlab chiquvchilar uchun bulutli VPS, Siz uchun biz tomonidan ixtiro qilingan boshlang'ich darajadagi serverlarning noyob analogi: VPS (KVM) E5-2697 v3 (6 yadroli) 10GB DDR4 480GB SSD 1Gbps 19 dollardan yoki serverni qanday almashish haqida butun haqiqat? (RAID1 va RAID10, 24 tagacha yadro va 40 Gb gacha DDR4 bilan mavjud).

Amsterdamdagi Equinix Tier IV ma'lumotlar markazida Dell R730xd 2 baravar arzonmi? Faqat shu yerda 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 televizor 199 dollardan Gollandiyada! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 dollardan! Haqida o'qing Infratuzilma korporatsiyasini qanday qurish kerak. bir tiyinga 730 evroga teng Dell R5xd E2650-4 v9000 serverlaridan foydalanish bilan sinf?

Manba: www.habr.com

a Izoh qo'shish