Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Ұлттық экологиялық спутниктік деректер қызметі (NESDIS) Red Hat Enterprise Linux (RHEL) конфигурациясын басқару шығындарын Қуыршақ Кәсіпорынынан Ansible Tower-ке көшіру арқылы 35%-ға азайтты. Бұл «біз мұны қалай жасадық» бейнеде инженер-жүйе инженері Майкл Рау осы көшіру жағдайын түсіндіреді, пайдалы кеңестер мен бір SCM-ден екіншісіне көшуден үйренген сабақтарымен бөліседі.

Бұл бейнеден сіз үйренесіз:

  • Қуыршақ кәсіпорнынан Ansible Tower-ке ауысудың орындылығын басшылыққа қалай негіздеуге болады;
  • өтуді мүмкіндігінше тегіс ету үшін қандай стратегияларды қолдану керек;
  • PE манифесттерін Ansible Playbook ішіне қайта кодтау бойынша кеңестер;
  • Ansible Tower-ті оңтайлы орнату бойынша ұсыныстар.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Барлығына сәлем, менің атым Майкл Рау, мен Ұлттық мұхиттық және атмосфералық әкімшіліктің (NOAA) NESDIS қызметінде жұмыс істейтін ActioNet компаниясының аға жүйелер инженерімін. Бүгін біз жіптерді кесу туралы сөйлесетін боламыз - менің қуыршақ кәсіпорнынан Ansible Tower-ке көшу тәжірибем. Бұл презентацияның тақырыбы - жыл басында осы ауысуды жасағаннан кейін қалған «менің тыртықтарыма қарау». Мен осы процесс арқылы білгенімді бөліскім келеді. Осылайша, сіз осындай нәрсені қабылдаған кезде, менің тәжірибемді пайдалана отырып, сіз ешқандай қосымша жұмыссыз ауыса аласыз.

Осыған ұқсас слайдтарды Ansible Fest-тегі әрбір презентацияның басында көресіз. Бұл слайдта менің компаниямды автоматтандыру тарихы көрсетілген. Мен бұл туралы жаңа емеспін, өйткені мен қуыршақ/қуыршақ кәсіпорнын 2007 жылдан бері пайдаланып келемін. Мен Ansible-мен 2016 жылы жұмыс істей бастадым және осы өнімнің көптеген басқа пайдаланушылары сияқты мені командалық жолды және қарапайым сценарийлерді (ойын кітаптары) пайдалану арқылы «трюктар» мүмкіндігі қызықтырды. 2017 жылдың соңында мен басшылығыма Ansible Tower-ке көшудің негізгі себептері туралы хабарластым. Бір минуттан кейін мен сізге бұл қадамға баруға итермелеген себептер туралы айтып беремін. Басшылықтың келісімін алғаннан кейін жоспарды орындауға тағы бірнеше ай қажет болды, мен ауысуды ағымдағы жылдың қаңтар-ақпан айларында жасадым. Сонымен, біз Ansible пайдасына қуыршақтан толығымен бас тарттық және бұл керемет нәрсе.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Маған Ansible туралы ең қызықты нәрсе - рөлдер мен ойын кітаптарын жазу және пайдалану қабілеті. Рөлдер әртүрлі, бірақ байланысты тапсырмаларды жасау және сол тапсырмаларға қатысты барлық деректерді бір жерге қою үшін тамаша. Ойын кітабы – бір немесе бірнеше хосттардың әрекеттерін сипаттайтын YAML синтаксисі, сценарий файлы. Мен пайдаланушыларға осы мүмкіндіктер туралы айтамын, ең алдымен бағдарламалық жасақтаманы әзірлеушілер. Ansible Tower сізге «жоқ, сізде қабықшаға кіру мүмкіндігі жоқ, бірақ мен сізге Tower процестерінің барлығын іске қосу және қажет болған кезде қызметті қайта қосу мүмкіндігін беремін» деп айту мүмкіндігін береді. Мен сізге жұмыс ортасы мен біз қолданатын құрал-жабдықтар туралы айтып беремін.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Бұл федералды жергілікті желі, бұлтты MPLS арқылы қосылған 7 физикалық сайт, 140 RHEL сервері, олардың 99% виртуалды (vSphere), SuperMicro аппараттық құралы, NexentaStore желілік қоймасы, Cisco, Arista және Cumulus қосқыштарының жинағы және Fortinet UTM біртұтас қауіптерді басқару. әр сайттағы құралдар.

Федералды желі менің заңда көзделген барлық ақпараттық қауіпсіздік шараларын қолдануым керек дегенді білдіреді. Қуыршақ кәсіпорны біз қолданатын аппараттық құралдардың көпшілігін қолдамайтынын есте ұстаған жөн. Біз бюджеттік құралдарды пайдалануға мәжбүрміз, өйткені мемлекеттік органдарда бұл шығыс баптарын қаржыландыруда проблемалар бар. Сондықтан біз SuperMicro техникасын сатып аламыз және техникалық қызмет көрсетуге мемлекеттік келісім-шарттармен кепілдік берілген жеке бөліктерден құрал-жабдықтарымызды жинаймыз. Біз Linux қолданамыз және бұл Ansible-ге ауысудың маңызды себептерінің бірі.

Қуыршақпен өткен тарихымыз төмендегідей.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

2007 жылы бізде 20-25 түйіннен тұратын шағын желі болды, онда біз Қуыршақты орналастырдық. Негізінде, бұл түйіндер жай ғана RedHat «қораптары» болды. 2010 жылы біз қуыршақ бақылау тақтасының веб-интерфейсін 45 түйін үшін пайдалана бастадық. Желінің кеңеюін жалғастыра отырып, біз 2014 жылы PE 3.3 нұсқасына көшіп, 75 түйін үшін манифестті қайта жазу арқылы толық көшуді жасадық. Мұны істеу керек болды, өйткені Қуыршақ ойын ережелерін өзгертуді ұнатады және бұл жағдайда олар тілді толығымен өзгертті. Бір жылдан кейін, Puppet Enterprise 3 нұсқасына қолдау көрсету аяқталғанда, біз PE 2015.2 нұсқасына көшуге мәжбүр болдық. Жаңа серверлер үшін манифестті қайта жазуға және 100 түйіннен тұратын лицензияны сатып алуға тура келді, дегенмен ол кезде бізде тек 85 түйін болды.

Бар болғаны 2 жыл өтті және бізге PE 2016.4 жаңа нұсқасына көшу үшін тағы да көп жұмыс істеуге тура келді. Біз 300 түйінге лицензия сатып алдық, оның 130-ы ғана. Бізге қайтадан манифестке үлкен өзгерістер енгізуге тура келді, себебі тілдің жаңа нұсқасында 2015 жылғы нұсқасынан басқа синтаксис болды. Нәтижесінде біздің SCM SVN нұсқасын басқарудан Bitbucket (Git) нұсқасына ауысты. Бұл біздің Қуыршақпен «қарым-қатынасымыз» болды.

Сондықтан мен басшылыққа келесі аргументтерді пайдалана отырып, басқа SCM-ге көшу керек екенін түсіндіруге тура келді. Біріншісі – қызметтің жоғары бағасы. Мен RedHat-тегі жігіттермен сөйлестім, олар Ansible Tower көмегімен 300 түйіндік желіні басқару құны Қуыршақ Кәсіпорынының құнының жартысы екенін айтты. Егер сіз Ansible Engine сатып алсаңыз, құны шамамен бірдей болады, бірақ сіз PE-ге қарағанда көбірек мүмкіндіктерге ие боласыз. Біз федералды бюджеттен қаржыландырылатын мемлекеттік компания болғандықтан, бұл өте күшті дәлел.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Екінші аргумент – жан-жақтылық. Қуыршақ тек Қуыршақ агенті бар жабдықты қолдайды. Бұл агент барлық қосқыштарда орнатылуы керек және ол соңғы нұсқа болуы керек дегенді білдіреді. Ал кейбір қосқыштар бір нұсқаны қолдаса, ал кейбіреулері екіншісін қолдаса, олардың барлығы бірдей SCM жүйесінде жұмыс істей алуы үшін оларға PE агентінің жаңа нұсқасын орнату қажет болады.

Ansible Tower жүйесі басқаша жұмыс істейді, себебі оның ешқандай агенттері жоқ, бірақ оның Cisco қосқыштарын және барлық басқа қосқыштарды қолдайтын модульдері бар. Бұл SCM Qubes OS, Linux және 4.NET UTM жүйелерін қолдайды. Ansible Tower сонымен қатар Unix негізіндегі ашық бастапқы операциялық жүйе Illumos ядросына негізделген NexentaStore желілік сақтау контроллерін қолдайды. Бұл өте аз қолдау, бірақ Ansible Tower мұны бәрібір жасайды.

Мен үшін де, біздің әкімшілік үшін де өте маңызды үшінші аргумент - пайдаланудың қарапайымдылығы. Мен қуыршақ модульдері мен манифест кодын меңгеруге 10 жыл жұмсадым, бірақ мен Ansible-ді бір апта ішінде үйрендім, себебі бұл SCM-мен жұмыс істеу оңайырақ. Егер сіз орындалатын файлдарды іске қоссаңыз, әрине, қажетсіз жасамасаңыз, олармен интеллектуалды және жауапты өңдеушілер жұмыс істейді. YAML негізіндегі оқу кітаптарын үйрену оңай және пайдалану жылдам. YAML туралы бұрын ешқашан естімегендер сценарийлерді оқып, оның қалай жұмыс істейтінін оңай түсіне алады.

Шынымды айтсам, қуыршақ әзірлеуші ​​ретіндегі жұмысыңызды әлдеқайда қиындатады, себебі ол қуыршақ шеберін пайдалануға негізделген. Бұл қуыршақ агенттерімен байланысуға рұқсат етілген жалғыз құрылғы. Манифестке қандай да бір өзгертулер енгізген болсаңыз және кодты сынағыңыз келсе, Puppet Master кодын қайта жазуыңыз керек, яғни барлық клиенттерді қосу және Қуыршақ сервері қызметін іске қосу үшін Қуыршақ шебері /etc/hosts файлын теңшеу керек. Осыдан кейін ғана сіз бір хостта желілік жабдықтың жұмысын тексере аласыз. Бұл өте ауыр процедура.
Ansible-де бәрі әлдеқайда қарапайым. Сізге тек сынақтан өтіп жатқан хостпен SSH арқылы байланыса алатын машинаның кодын әзірлеу жеткілікті. Бұл жұмыс істеу әлдеқайда оңай.

Ansible Tower бағдарламасының келесі үлкен артықшылығы - бар қолдау жүйесін пайдалану және бар аппараттық конфигурацияны сақтау мүмкіндігі. Бұл SCM ешқандай қосымша қадамдарсыз инфрақұрылым мен аппараттық құрал, виртуалды машиналар, серверлер және т.б. туралы барлық қолжетімді ақпаратты пайдаланады. Ол RH Satellite серверлерімен сөйлесе алады, егер сізде бар болса және сізге Puppet қолданбасымен ешқашан қол жеткізе алмайтын интеграцияларды береді.

Тағы бір маңызды нәрсе - егжей-тегжейлі бақылау. Сіз Қуыршақ модульдік жүйе екенін білесіз, бұл клиент-сервер қолданбасы, сондықтан бір ұзын манифестте барлық машиналарыңыздың бар аспектілерін анықтауыңыз керек. Бұл жағдайда жүйенің әрбір жеке элементінің күйі әрбір жарты сағат сайын тексерілуі керек - бұл әдепкі кезең. Қуыршақ осылай жұмыс істейді.

Мұнара сізді одан құтқарады. Түрлі жабдықтарда әртүрлі процестерді шектеусіз іске қосуға болады; негізгі жұмыстарды орындауға, басқа маңызды процестерді орындауға, қауіпсіздік жүйесін орнатуға және дерекқорлармен жұмыс істеуге болады. Сіз қуыршақ кәсіпорнында қиынның бәрін жасай аласыз. Сонымен, егер сіз оны бір хостта конфигурациялаған болсаңыз, өзгертулер қалған хосттарда күшіне енуі үшін уақыт қажет. Ansible бағдарламасында барлық өзгертулер бір уақытта күшіне енеді.

Соңында қауіпсіздік модулін қарастырайық. Ansible Tower оны керемет дәлдікпен және ұқыптылықпен жүзеге асырады. Пайдаланушыларға белгілі бір қызметтерге немесе белгілі бір хосттарға рұқсат бере аласыз. Мен мұны Windows жүйесінде жұмыс істеуге дағдыланған қызметкерлеріммен жасаймын, олардың Linux қабығына қол жеткізуін шектеймін. Мен олардың тек жұмысты орындай алуы және тек өздеріне қатысты қызметтерді ғана іске қосуы үшін Tower қолданбасына кіру мүмкіндігін қамтамасыз етемін.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Ansible Tower-ке өтуді жеңілдету үшін алдын ала істеу керек нәрселерді қарастырайық. Ең алдымен, жабдықты дайындау керек. Инфрақұрылымның кейбір элементтері дерекқорда әлдеқашан болмаса, оларды сол жерге қосу керек. Сипаттамаларын өзгертпейтін, сондықтан Қуыршақ дерекқорында жоқ жүйелер бар, бірақ Tower-ке көшу алдында оларды қоспасаңыз, сіз бірқатар артықшылықтардан айырыласыз. Бұл «лас», алдын ала дерекқор болуы мүмкін, бірақ ол сізде бар барлық жабдық туралы ақпаратты қамтуы керек. Сондықтан, барлық инфрақұрылымдық өзгерістерді дерекқорға автоматты түрде енгізетін динамикалық аппараттық сценарий жазу керек, содан кейін Ansible жаңа жүйеде қандай хосттар болуы керек екенін біледі. Бұл SCM-ге қай хосттарды қосқаныңызды және қандай хосттар енді жоқ екенін айтудың қажеті жоқ, себебі ол мұның бәрін автоматты түрде біледі. Деректер базасында деректер неғұрлым көп болса, Ansible соғұрлым пайдалы және икемді болады. Ол дерекқордан аппараттық күй штрих-кодын жай ғана оқитын сияқты жұмыс істейді.

Ansible бағдарламасындағы пәрмен жолымен танысуға біраз уақыт бөліңіз. Аппараттық құрал сценарийін тексеру үшін кейбір реттелетін пәрмендерді іске қосыңыз, кейбір қарапайым, бірақ пайдалы ойын кітапшасы сценарийлерін жазыңыз және іске қосыңыз, қажет болған жағдайда Jinja2 үлгілерін пайдаланыңыз. Жалпы, жиі кездесетін аппараттық конфигурацияны пайдаланып күрделі, көп сатылы процесс үшін рөл мен сценарий жазып көріңіз. Осы заттармен ойнаңыз, оның қалай жұмыс істейтінін тексеріңіз. Осылайша Tower қолданбасында пайдаланылған кітапхана жасау құралдарын пайдалануды үйренесіз. Өтпелі кезеңге дайындалу үшін 3 айдай уақыт кеткенін айттым. Менің тәжірибеме сүйене отырып, сіз мұны тезірек жасай аласыз деп ойлаймын. Бұл уақытты текке кетті деп есептемеңіз, өйткені кейінірек сіз жасаған жұмыстың барлық артықшылықтарын сезінесіз.

Әрі қарай, Ansible Tower-тен не күтетініңізді, бұл жүйе сізге не істеу керектігін шешуіңіз керек.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Жүйені жалаң аппараттық құралда, жалаң виртуалды машиналарда орналастыру керек пе? Немесе қолданыстағы жабдықтың бастапқы жұмыс жағдайлары мен параметрлерін сақтағыңыз келе ме? Бұл қоғамдық компаниялар үшін өте маңызды аспект, сондықтан Ansible бағдарламасын бар конфигурацияңызда көшіру және орналастыру мүмкіндігіне сенімді болуыңыз керек. Автоматтандырғыңыз келетін әдеттегі әкімшілік процестерді анықтаңыз. Жаңа жүйеде арнайы қолданбалар мен қызметтерді қолдану қажет пе екенін біліңіз. Жасағыңыз келетін нәрселердің тізімін жасаңыз және оған басымдық беріңіз.

Содан кейін аяқтауды жоспарлаған тапсырмаларды қосатын сценарий кодын және рөлдерді жазуды бастаңыз. Оларды сәйкес ойын кітаптарының логикалық жинағы жобаларына біріктіріңіз. Әрбір жоба жеке Git репозиторийіне немесе қай код менеджерін пайдаланатыныңызға байланысты басқа репозиторийге тиесілі болады. Ойын кітапшасының сценарийлері мен ойын кітапшаларының каталогтарын Tower серверіндегі Project Base Path ішіне қолмен орналастыру арқылы немесе ойын кітабын Tower қолдайтын кез келген бастапқы кодты басқару (SCM) жүйесіне, соның ішінде Git, Subversion, Mercurial және Red Hat бағдарламаларына орналастыру арқылы басқаруға болады. Түсініктер. Бір жобаның ішінде сіз қалағаныңызша көптеген сценарийлерді орналастыра аласыз. Мысалы, мен бір негізгі жобаны жасадым, онда мен RedHat негізгі элементтері үшін сценарийді, Linux ядросы үшін сценарийді және қалған негізгі сызықтар үшін сценарийлерді орналастырдым. Осылайша, бір жобада бір Git репозиторийінен басқарылатын әртүрлі рөлдер мен сценарийлер болды.

Бұлардың барлығын пәрмен жолы арқылы іске қосу - олардың функционалдығын тексерудің жақсы жолы. Бұл сізді Tower орнатуға дайындайды.

Қуыршақ манифестін қайта кодтау туралы аздап сөйлесейік, өйткені мен шын мәнінде не істеу керектігін түсінгенге дейін бұған көп уақыт жұмсадым.

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 1 бөлім

Жоғарыда айтқанымдай, Қуыршақ бір ұзақ манифестте барлық параметрлерді және аппараттық құралдар опцияларын сақтайды және бұл манифест осы SCM істеуі керек барлық нәрсені сақтайды. Өту кезінде барлық тапсырмаларды бір тізімге жинаудың қажеті жоқ, оның орнына жаңа жүйенің құрылымы туралы ойланыңыз: рөлдер, сценарийлер, тегтер, топтар және онда не болуы керек. Кейбір автономды желі элементтерін сценарийлер жасауға болатын топтарға топтастыру керек. Ресурстардың үлкен санын, соның ішінде дербес сыныптарды қамтитын күрделі инфрақұрылым элементтерін рөлдерге біріктіруге болады. Көшіру алдында бұл туралы шешім қабылдау керек. Бір экранға сыймайтын үлкен рөлдерді немесе сценарийлерді жасап жатсаңыз, инфрақұрылымның белгілі бір бөліктерін түсіру мүмкіндігі үшін тегтерді пайдалануыңыз керек.

18:00

Жіптерді кесу: қуыршақ кәсіпорнынан Ansible Tower-ке көшу. 2 бөлім

Кейбір жарнамалар 🙂

Бізбен бірге болғандарыңызға рахмет. Сізге біздің мақалалар ұнайды ма? Қызықты мазмұнды көргіңіз келе ме? Тапсырыс беру немесе достарыңызға ұсыну арқылы бізге қолдау көрсетіңіз, әзірлеушілерге арналған бұлтты VPS $4.99, Сіз үшін біз ойлап тапқан бастапқы деңгейдегі серверлердің бірегей аналогы: VPS (KVM) E5-2697 v3 (6 ядросы) 10 ГБ DDR4 480 ГБ SSD 1 Гбит/с 19 доллардан немесе серверді қалай бөлісуге болатыны туралы барлық шындық? (RAID1 және RAID10, 24 ядроға дейін және 40 ГБ DDR4 дейін қол жетімді).

Dell R730xd Амстердамдағы Equinix Tier IV деректер орталығында 2 есе арзан ба? Тек осында 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6 ГГц 14C 64 ГБ DDR4 4x960 ГБ SSD 1 Гбит/с 100 теледидар 199 доллардан бастап Нидерландыда! Dell R420 - 2x E5-2430 2.2 ГГц 6C 128 ГБ DDR3 2x960 ГБ SSD 1 Гбит/с 100 ТБ - 99 доллардан бастап! туралы оқыңыз Инфрақұрылымдық корпорацияны қалай құруға болады. бір тиынға 730 еуро тұратын Dell R5xd E2650-4 v9000 серверлерін қолданатын класс?

Ақпарат көзі: www.habr.com

пікір қалдыру