İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Milli Ekoloji Peyk Məlumatları Xidməti (NESDIS) Kukla Müəssisəsindən Ansible Tower-ə köçməklə Red Hat Enterprise Linux (RHEL) üçün konfiqurasiya idarəetmə xərclərini 35% azaldıb. Bu "biz bunu necə etdik" videosunda sistem mühəndisi Michael Rau bu miqrasiyanın vəziyyətini izah edir, faydalı məsləhətləri və bir SCM-dən digərinə keçməkdən öyrənilən dərsləri paylaşır.

Bu videodan öyrənəcəksiniz:

  • Kukla Müəssisəsindən Ansible Tower-ə keçidin mümkünlüyünü rəhbərliyə necə əsaslandırmaq olar;
  • keçidi mümkün qədər hamar etmək üçün hansı strategiyalardan istifadə etmək;
  • PE manifestlərinin Ansible Playbook-a çevrilməsi üçün məsləhətlər;
  • Ansible Tower-ın optimal quraşdırılması üçün tövsiyələr.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Hər kəsə salam, mənim adım Michael Rau, mən Milli Okean və Atmosfer Administrasiyasının (NOAA) NESDIS xidmətində çalışan ActioNet-də Baş Sistem Mühəndisiyəm. Bu gün biz simli kəsmə haqqında danışacağıq - mənim Kukla Müəssisəsindən Ansible Tower-ə köçmək təcrübəm. Bu təqdimatın mövzusu ilin əvvəlində bu keçidi etdikdən sonra qalan “çapıqlarıma nəzər salmaq”dır. Bu prosesdə öyrəndiklərimi bölüşmək istəyirəm. Beləliklə, mənim təcrübəmdən istifadə edərək, belə bir işə başlasanız, heç bir əlavə iş görmədən keçid edə bilərsiniz.

Ansible Fest-də hər təqdimatın əvvəlində buna bənzər slaydlar görürsünüz. Bu slayd mənim şirkətimin avtomatlaşdırılmasının tarixini təsvir edir. Mən bu mövzuda yeni deyiləm, çünki 2007-ci ildən bəri Kukla/Kukla Müəssisəsindən istifadə edirəm. Mən 2016-cı ildə Ansible ilə işləməyə başladım və bu məhsulun bir çox digər istifadəçiləri kimi, əmr satırından və sadə skriptlərdən (oyun kitablarından) istifadə edərək “hiylələr”in mümkünlüyü məni cəlb etdi. 2017-ci ilin sonunda Ansible Tower-a köçməyimin güclü səbəbləri ilə bağlı rəhbərliyimə müraciət etdim. Bir dəqiqədən sonra məni bu addımı atmağa vadar edən səbəblər barədə sizə məlumat verəcəyəm. Rəhbərliyin razılığını aldıqdan sonra planı yerinə yetirmək üçün daha bir neçə ay lazım idi və mən bu ilin yanvar-fevral aylarında keçidi həyata keçirdim. Beləliklə, biz Ansible-ın xeyrinə Kukladan tamamilə imtina etdik və bu, əla bir şeydir.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Ansible-da məni ən çox cəlb edən rollar və oyun kitabları yazmaq və istifadə etmək bacarığıdır. Rollar fərqli, lakin əlaqəli tapşırıqlar yaratmaq və bu tapşırıqlarla əlaqəli bütün məlumatları bir yerə qoymaq üçün əladır. Oyun kitabı bir və ya bir neçə host üçün hərəkətləri təsvir edən YAML sintaksisi, skript faylıdır. Bu xüsusiyyətlər haqqında istifadəçilərə, ilk növbədə proqram tərtibatçılarına danışıram. Ansible Tower sizə “xeyr, mərmi girişiniz yoxdur, lakin mən sizə bütün Tower proseslərini idarə etmək və ehtiyacınız olduqda xidməti yenidən başlatmaq imkanı verirəm” demək imkanı verir. Mən sizə iş mühiti və istifadə etdiyimiz avadanlıqlar haqqında məlumat verəcəyəm.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Bu federal LAN, bulud MPLS vasitəsilə qoşulmuş 7 fiziki sayt, 140%-i virtual (vSphere), SuperMicro aparatı, NexentaStore şəbəkə yaddaşı, Cisco, Arista və Cumulus açarları dəsti və Fortinet UTM vahid təhlükə idarəçiliyi olan 99 RHEL serveridir. hər bir saytda alətlər.

Federal şəbəkə o deməkdir ki, mən qanunla nəzərdə tutulmuş bütün informasiya təhlükəsizliyi tədbirlərindən istifadə etməliyəm. Nəzərə almaq lazımdır ki, Kukla Müəssisəsi istifadə etdiyimiz avadanlıqların əksəriyyətini dəstəkləmir. Dövlət qurumlarının bu xərc maddəsini maliyyələşdirməkdə problemləri olduğu üçün biz büdcə avadanlıqlarından istifadə etməyə məcburuq. Buna görə də biz SuperMicro aparatları alırıq və avadanlığımızı ayrı-ayrı hissələrdən yığırıq, onlara texniki xidmət dövlət müqavilələri ilə zəmanət verilir. Biz Linux-dan istifadə edirik və bu, Ansible-a keçidin vacib səbəblərindən biridir.

Kukla ilə tariximiz belədir.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

2007-ci ildə Kukla yerləşdirdiyimiz 20-25 qovşaqdan ibarət kiçik bir şəbəkəmiz var idi. Əsasən, bu qovşaqlar sadəcə RedHat “qutuları” idi. 2010-cu ildə biz 45 qovşaq üçün Puppet Dashboard veb interfeysindən istifadə etməyə başladıq. Şəbəkə genişlənməyə davam etdikcə biz 2014-cü ildə PE 3.3-ə keçdik və 75 qovşaq üçün manifest yenidən yazma ilə tam keçid etdik. Bunu ona görə etmək lazım idi ki, Kukla oyun qaydalarını dəyişməyi sevir və bu halda onlar dili tamamilə dəyişiblər. Bir il sonra, Kukla Müəssisəsinin 3-cü versiyasına dəstək başa çatdıqda, biz PE 2015.2-ə köçməyə məcbur olduq. Yeni serverlər üçün manifesti yenidən yazmalı və 100 qovşaq ehtiyatı olan lisenziya almalı olduq, baxmayaraq ki, o vaxt bizdə cəmi 85 qovşaq var idi.

Cəmi 2 il keçdi və biz PE 2016.4-ün yeni versiyasına keçmək üçün yenidən çox iş görməli olduq. Biz cəmi 300-a malik 130 qovşaq üçün lisenziya aldıq. Biz yenidən manifestdə əsaslı dəyişikliklər etməli olduq, çünki dilin yeni versiyası 2015-ci il versiyasının dilindən fərqli sintaksisə malik idi. Nəticədə, bizim SCM SVN versiya nəzarətindən Bitbucket (Git)-ə keçdi. Bu, Kukla ilə "münasibətimiz" idi.

Beləliklə, mən rəhbərliyə niyə aşağıdakı arqumentlərdən istifadə edərək başqa bir SCM-ə keçməli olduğumuzu izah etməli oldum. Birincisi, xidmətin yüksək qiymətidir. RedHat-da uşaqlarla danışdım və onlar dedilər ki, Ansible Tower ilə 300 qovşaq şəbəkəsini idarə etməyin dəyəri Kukla Müəssisəsinin dəyərinin yarısıdır. Əgər siz də Ansible Engine alsanız, dəyəri təxminən eyni olacaq, lakin siz PE-dən daha çox funksiya əldə edəcəksiniz. Biz federal büdcədən maliyyələşən dövlət şirkəti olduğumuz üçün bu, kifayət qədər güclü arqumentdir.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

İkinci arqument çox yönlülükdür. Kukla yalnız Kukla agenti olan avadanlığı dəstəkləyir. Bu o deməkdir ki, agent bütün açarlarda quraşdırılmalı və ən son versiya olmalıdır. Əgər açarlarınızdan bəziləri bir versiyanı, bəziləri isə digərini dəstəkləyirsə, siz onlara PE agentinin yeni versiyasını quraşdırmalı olacaqsınız ki, onların hamısı eyni SCM sistemində işləyə bilsin.

Ansible Tower sistemi fərqli işləyir, çünki onun heç bir agenti yoxdur, lakin Cisco açarlarını və bütün digər açarları dəstəkləyən modullara malikdir. Bu SCM Qubes OS, Linux və 4.NET UTM-i dəstəkləyir. Ansible Tower həmçinin açıq mənbəli Unix əsaslı əməliyyat sistemi olan Illumos nüvəsinə əsaslanan NexentaStore şəbəkə saxlama nəzarətçilərini dəstəkləyir. Bu çox az dəstəkdir, lakin Ansible Tower hər halda bunu edir.

Həm mənim, həm də administrasiyamız üçün çox vacib olan üçüncü arqument istifadənin asanlığıdır. Mən Kukla modullarını və manifest kodunu mənimsəməyə 10 il sərf etdim, lakin bir həftə ərzində Ansible-ı öyrəndim, çünki bu SCM ilə işləmək daha asandır. Əgər siz icra edilə bilən faylları işlədirsinizsə, əlbəttə ki, lazımsız yerə bunu etməsəniz, ağıllı və həssas işləyicilər onlarla işləyir. YAML əsaslı oyun kitablarını öyrənmək asandır və istifadəsi tezdir. YAML haqqında heç vaxt eşitməyənlər sadəcə olaraq skriptləri oxuya və onun necə işlədiyini asanlıqla anlaya bilərlər.

Düzünü desəm, Kukla bir tərtibatçı kimi işinizi daha da çətinləşdirir, çünki o, Kukla Ustasından istifadəyə əsaslanır. Bu, Kukla agentləri ilə əlaqə saxlamağa icazə verilən yeganə maşındır. Əgər siz manifestdə hər hansı dəyişiklik etmisinizsə və kodunuzu yoxlamaq istəyirsinizsə, siz Kukla Ustası üçün kodu yenidən yazmalı, yəni Kukla Ustası /etc/hosts faylını bütün müştəriləri birləşdirmək və Kukla Server xidmətini işə salmaq üçün konfiqurasiya etməlisiniz. Yalnız bundan sonra bir hostda şəbəkə avadanlıqlarının işini sınaqdan keçirə biləcəksiniz. Bu kifayət qədər ağrılı prosedurdur.
Ansible-da hər şey daha sadədir. Sizə lazım olan tək şey sınaq altında olan host ilə SSH vasitəsilə əlaqə saxlaya bilən maşın üçün kod hazırlamaqdır. Bununla işləmək daha asandır.

Ansible Tower-ın növbəti böyük üstünlüyü, mövcud dəstək sisteminizdən istifadə etmək və mövcud aparat konfiqurasiyanızı saxlamaq imkanıdır. Bu SCM heç bir əlavə addım atmadan infrastrukturunuz və aparatınız, virtual maşınlarınız, serverləriniz və s. haqqında bütün mövcud məlumatlardan istifadə edir. O, RH Satellite serverlərinizlə danışa bilər, əgər varsa, və sizə Puppet ilə heç vaxt əldə edə bilməyəcəyiniz inteqrasiyalar verir.

Başqa bir vacib şey ətraflı nəzarətdir. Bilirsiniz ki, Kukla modul sistemdir, o, müştəri-server tətbiqidir, ona görə də bütün maşınlarınızın mövcud aspektlərini bir uzun manifestdə müəyyən etməlisiniz. Bu halda, sistemin hər bir fərdi elementinin vəziyyəti hər yarım saatda sınaqdan keçirilməlidir - bu, standart müddətdir. Puppet belə işləyir.

Tower sizi bundan xilas edir. Siz məhdudiyyətsiz müxtəlif avadanlıqlarda müxtəlif prosesləri idarə edə bilərsiniz, əsas işləri görə, digər vacib prosesləri idarə edə, təhlükəsizlik sistemi qura və verilənlər bazası ilə işləyə bilərsiniz. Puppet Enterprise-də çətin olan hər şeyi edə bilərsiniz. Beləliklə, əgər siz onu bir hostda konfiqurasiya etmisinizsə, dəyişikliklərin qalan hostlarda qüvvəyə minməsi üçün vaxt lazımdır. Ansible-da bütün dəyişikliklər eyni vaxtda qüvvəyə minir.

Nəhayət, təhlükəsizlik moduluna baxaq. Ansible Tower onu sadəcə heyrətamiz şəkildə, böyük dəqiqlik və qayğı ilə həyata keçirir. Siz istifadəçilərə xüsusi xidmətlərə və ya xüsusi hostlara giriş imkanı verə bilərsiniz. Mən bunu Windows-da işləməyə öyrəşmiş işçilərimlə edirəm, onların Linux qabığına girişini məhdudlaşdırıram. Mən onların Tower-ə çıxışının olmasını təmin edirəm ki, onlar yalnız işləri görə bilsinlər və yalnız onlara aid olan xidmətləri işlətsinlər.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Ansible Tower-ə keçidinizi asanlaşdırmaq üçün əvvəlcədən etməli olduğunuz şeylərə baxaq. Əvvəlcə avadanlıqlarınızı hazırlamalısınız. Əgər infrastrukturunuzun bəzi elementləri artıq verilənlər bazasında yoxdursa, onları ora əlavə etməlisiniz. Öz xüsusiyyətlərini dəyişdirməyən və buna görə də Kukla verilənlər bazasında olmayan sistemlər var, lakin Tower-ə keçməzdən əvvəl onları ora əlavə etməsəniz, bir sıra üstünlüklərinizi itirəcəksiniz. Bu, "çirkli", ilkin verilənlər bazası ola bilər, lakin orada mövcud olan bütün avadanlıqlar haqqında məlumat olmalıdır. Buna görə də, bütün infrastruktur dəyişikliklərini avtomatik olaraq verilənlər bazasına köçürəcək dinamik hardware skripti yazmalısınız, sonra Ansible yeni sistemdə hansı hostların olması lazım olduğunu biləcək. Bu SCM-ə hansı hostları əlavə etdiyinizi və hansı hostların artıq mövcud olmadığını söyləməyə ehtiyac olmayacaq, çünki o, bütün bunları avtomatik biləcək. Verilənlər bazasında nə qədər çox məlumat varsa, Ansible bir o qədər faydalı və çevik olacaq. O, sadəcə verilənlər bazasından hardware statusunun ştrix kodunu oxuyan kimi işləyir.

Ansible-da komanda xətti ilə tanış olmaq üçün bir az vaxt sərf edin. Avadanlıq skriptini sınamaq üçün bəzi xüsusi əmrləri işə salın, bəzi sadə, lakin faydalı oyun kitabı skriptlərini yazın və işlədin, lazım olduqda Jinja2 şablonlarından istifadə edin. Ümumi, tez-tez rast gəlinən aparat konfiqurasiyasından istifadə edərək mürəkkəb, çox mərhələli proses üçün rol və skript yazmağa çalışın. Bu şeylərlə oynayın, necə işlədiyini yoxlayın. Bu yolla siz Tower-də istifadə olunan kitabxana yaratma vasitələrindən necə istifadə edəcəyinizi öyrənəcəksiniz. Artıq dedim ki, keçidə hazırlaşmaq üçün 3 aya yaxın vaxt lazım olub. Düşünürəm ki, təcrübəmə əsaslanaraq, siz bunu daha tez bacaracaqsınız. Bu vaxtın boşa getdiyini düşünməyin, çünki sonradan görülən işin bütün faydalarını yaşayacaqsınız.

Sonra, Ansible Tower-dan nə gözlədiyinizə, bu sistemin sizin üçün nə etməli olduğuna qərar verməlisiniz.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Sistemi çılpaq aparatlarda, çılpaq virtual maşınlarda yerləşdirməyə ehtiyacınız varmı? Yoxsa mövcud avadanlıqların orijinal iş şəraitini və parametrlərini saxlamaq istəyirsiniz? Bu, ictimai şirkətlər üçün çox vacib bir cəhətdir, ona görə də siz Ansible-ı mövcud konfiqurasiyanızda köçürə və yerləşdirə biləcəyinizə əmin olmalısınız. Avtomatlaşdırmaq istədiyiniz müntəzəm inzibati prosesləri müəyyənləşdirin. Yeni sistemdə xüsusi proqram və xidmətləri yerləşdirməli olduğunuzu öyrənin. Etmək istədiyiniz işlərin siyahısını tərtib edin və onlara üstünlük verin.

Sonra tamamlamağı planlaşdırdığınız tapşırıqları təmin edəcək skript kodunu və rolları yazmağa başlayın. Onları müvafiq oyun kitablarının məntiqi toplusu olan Layihələrdə birləşdirin. Hər bir Layihə, istifadə etdiyiniz kod menecerindən asılı olaraq ayrıca Git deposuna və ya fərqli bir depoya aid olacaq. Siz oyun kitabı skriptlərini və kitab kataloqlarını Tower serverində Layihə Əsas Yoluna əl ilə yerləşdirməklə və ya kitabçanı Git, Subversion, Mercurial və Red Hat daxil olmaqla Tower tərəfindən dəstəklənən hər hansı mənbə kodu idarəetmə (SCM) sisteminə yerləşdirməklə idarə edə bilərsiniz. Anlayışlar. Bir Layihə çərçivəsində siz istədiyiniz qədər skript yerləşdirə bilərsiniz. Məsələn, mən RedHat əsas elementləri üçün skript, Linux nüvəsi üçün skript və qalan əsas xətlər üçün skript yerləşdirdiyim bir əsas Layihə yaratdım. Beləliklə, bir layihədə bir Git deposundan idarə olunan müxtəlif rollar və ssenarilər var idi.

Bütün bunları komanda xətti ilə yerinə yetirmək onların funksionallığını yoxlamaq üçün yaxşı bir yoldur. Bu, sizi Qüllənin quraşdırılmasına hazırlayacaq.

Gəlin Kukla manifestinin kodlaşdırılması haqqında bir az danışaq, çünki mən əslində nə etmək lazım olduğunu anlayana qədər buna çox vaxt sərf etdim.

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 1-ci hissə

Daha əvvəl dediyim kimi, Kukla bütün parametrləri və aparat seçimlərini bir uzun manifestdə saxlayır və bu manifest bu SCM-nin etməli olduğu hər şeyi saxlayır. Keçid edərkən, bütün tapşırıqlarınızı bir siyahıya yığmağa ehtiyac yoxdur, bunun əvəzinə yeni sistemin strukturu haqqında düşünün: rollar, skriptlər, etiketlər, qruplar və orada nə olmalıdır. Bəzi avtonom şəbəkə elementləri skriptlərin yaradıla biləcəyi qruplarda qruplaşdırılmalıdır. Çoxlu sayda resurs, o cümlədən müstəqil siniflər cəlb edən daha mürəkkəb infrastruktur elementləri rollarda birləşdirilə bilər. Köçmədən əvvəl bu barədə qərar verməlisiniz. Bir ekrana sığmayan böyük rollar və ya ssenarilər yaradırsınızsa, infrastrukturun xüsusi hissələrini tutmaq üçün teqlərdən istifadə etməlisiniz.

18:00

İpləri kəsmək: Kukla Müəssisəsindən Ansible Tower-ə köçmək. 2-ci hissə

Bəzi reklamlar 🙂

Bizimlə qaldığınız üçün təşəkkür edirik. Məqalələrimiz xoşunuza gəlirmi? Daha maraqlı məzmun görmək istəyirsiniz? Sifariş verməklə və ya dostlarınıza tövsiyə etməklə bizə dəstək olun, developers üçün bulud VPS 4.99 dollardan, Sizin üçün bizim tərəfimizdən icad edilmiş giriş səviyyəli serverlərin unikal analoqu: VPS (KVM) E5-2697 v3 (6 nüvəli) 10GB DDR4 480GB SSD 1Gbps haqqında 19 dollardan bütün həqiqət və ya serveri necə paylaşmaq olar? (RAID1 və RAID10, 24 nüvəyə qədər və 40 GB DDR4 ilə mövcuddur).

Dell R730xd Amsterdamdakı Equinix Tier IV məlumat mərkəzində 2 dəfə ucuzdur? Yalnız burada 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV 199$-dan başlayan qiymətlərlə Hollandiyada! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 dollardan! haqqında oxuyun İnfrastruktur korporasiyasını necə qurmaq olar. bir qəpik üçün 730 avro dəyərində Dell R5xd E2650-4 v9000 serverlərinin istifadəsi ilə sinif?

Mənbə: www.habr.com

Добавить комментарий