Laga soo bilaabo "bilawga" ilaa kumanaan adeegayaal ah oo ku jira darsin xarumo xogeed. Sida aan u daba galnay kobaca kaabayaasha Linux

Haddii kaabayaasha IT-gaagu ay si dhakhso ah u koraan, mar dhow ama hadhow waxaad wajihi doontaa doorasho: si toos ah u kordhi kheyraadka aadanaha si aad u taageerto ama u bilowdo automation. Ilaa waqti qaar ka mid ah, waxaan ku noolayn in jaantuska ugu horeysay, ka dibna waxaa bilowday dariiqa dheer ee kaabayaasha-sida-Code.

Laga soo bilaabo "bilawga" ilaa kumanaan adeegayaal ah oo ku jira darsin xarumo xogeed. Sida aan u daba galnay kobaca kaabayaasha Linux

Dabcan, NSPK ma aha bilawga, laakiin jawiga noocan oo kale ah ayaa ku xukumay shirkadda sannadihii ugu horreeyay ee jiritaankeeda, kuwaas oo ahaa sannado aad u xiiso badan. Magacaygu waa Kornyakov Dmitry, Waxaan ku taageerayay kaabayaasha Linux shuruudo la heli karo oo sarreeya in ka badan 10 sano. Waxa uu ku biiray kooxda NSPK bishii Janaayo 2016, nasiib daro, ma uusan arkin bilawgii hore ee jiritaanka shirkadda, laakiin wuxuu ku yimid marxalad isbedel weyn.

Guud ahaan, waxaan dhihi karnaa kooxdayadu waxay soo saartaa 2 badeeco shirkadda. Midda koowaad waa kaabayaasha dhaqaalaha. Boostada waa inay shaqeysaa, DNS waa inuu shaqeeyaa, koontaroolayaasha domain waa inay kuu oggolaadaan adeegayaasha aan shil ku dhicin. Muuqaalka IT-ga shirkadu waa mid weyn! Kuwani waa nidaamyada ganacsiga iyo howlgalka muhiimka ah, shuruudaha helitaanka qaarkood waa 99,999. Alaabta labaad waa server-yada laftooda, muuqaal ahaan iyo muuqaal ahaanba. Kuwa hadda jira waxay u baahan yihiin in lala socdo, kuwa cusubna waa in si joogto ah loo gaarsiiyaa macaamiisha waaxyo badan. Maqaalkan waxaan rabaa in aan diirada saaro sida aan u horumarinay kaabayaasha ka masuulka ah wareegga nolosha serverka.

Bilaabidda safarka

Bilawgii safarkayagii, kaydka tignoolajiyadayadu waxay u ekaayeen sidan:
OS CentOS 7
Xakamaynta Domain-ka ee FreeIPA
Automation - Macquul ah (+Tower), Cobbler

Waxaas oo dhami waxay ku yaalay 3 goobood, oo ku baahsan dhawr xarumood oo xogeed. Mid ka mid ah xarumaha xogta waxaa jira nidaamyo xafiisyo iyo goobo imtixaan, inta soo hartay waxaa jira PROD.

Samaynta server-yada hal mar ayaa u ekaa sidan:

Laga soo bilaabo "bilawga" ilaa kumanaan adeegayaal ah oo ku jira darsin xarumo xogeed. Sida aan u daba galnay kobaca kaabayaasha Linux

Qaabka VM-ka, CentOS waa ugu yar oo waxa ugu yar ee loo baahan yahay waa sida saxda ah /etc/resolv.conf, inta soo hartay waxay ku timaadaa mid macquul ah.

CMDB - Excel.

Haddii serverku yahay mid jireed, ka dib halkii laga koobi lahaa mashiinka farsamada, OS ayaa lagu rakibay iyada oo la adeegsanayo Cobbler - cinwaanada MAC ee server-ka bartilmaameedka ah ayaa lagu daraa qaabka Cobbler, serverku wuxuu helayaa ciwaanka IP-ga DHCP, ka dibna OS-ga ayaa lagu daray.

Markii hore waxaan xitaa isku daynay inaan ku sameyno nooc ka mid ah maareynta qaabeynta gudaha Cobbler. Laakiin wakhti ka dib, tani waxay bilawday inay keento dhibaatooyin la qaadis ah oo qaabaynta labadaba xarumaha kale ee xogta iyo koodhka macquulka ah ee diyaarinta VM-yada.

Waqtigaas, qaar badan oo naga mid ah ayaa u arkayay suurtogalnimada in ay tahay kordhin ku habboon Bash oo aanaan ku dhaafin nashqadaynta iyada oo la adeegsanayo qolof iyo sed. Guud ahaan Bashsible. Tani waxay ugu dambeyntii keentay xaqiiqda ah in haddii buug-ciyaareedka sababo jira uusan ka shaqeynin server-ka, way fududahay in la tirtiro server-ka, hagaajinta buug-gacmeedka oo mar kale dib loo furo. Dhab ahaantii ma jirin nuqul qoraal ah, ma jirin wax la qaadi karo oo habayn ah.

Tusaale ahaan, waxaan rabnay inaan bedelno qaar ka mid ah qaabeynta dhammaan server-yada:

  1. Waxaan bedelnaa qaabeynta server-yada jira ee qaybta macquulka ah/xarunta xogta. Mararka qaarkood ma aha hal maalin gudaheed - shuruudaha gelitaanka iyo sharciga tirada badan ma ogola in dhammaan isbeddelada la isticmaalo hal mar. Isbeddellada qaarkoodna waa kuwo wax burburin kara waxayna u baahan yihiin dib-u-billow wax - laga bilaabo adeegyada ilaa OS laftiisa.
  2. Hagaajinta in Aansible
  3. Waxaan ku hagaajinaa Cobbler
  4. Ku celi wakhtiyada N ee qayb kasta/xarun xogeed kasta

Si dhammaan isbeddeladu u socdaan si habsami leh, waxay ahayd lagama maarmaan in la tixgeliyo arrimo badan, isbeddelkuna si joogto ah ayuu u dhacaa.

  • Dib-u-soo-celinta koodka macquulka ah, faylasha qaabeynta
  • Beddelidda hababka ugu wanaagsan ee gudaha
  • Isbeddellada ku salaysan natiijooyinka falanqaynta shilalka/ shilalka
  • Beddelidda heerarka amniga, gudaha iyo dibaddaba. Tusaale ahaan, PCI DSS waxa lagu cusboonaysiiyaa shuruudo cusub sannad kasta

Kobcinta kaabayaasha dhaqaalaha iyo bilowga safarka

Tirada server-yada / xayndaabyada macquulka ah / xarumaha xogta ayaa koray, iyo iyaga oo leh tirada khaladaadka qaabeynta. Mar mar, waxaanu nimid saddex jiho oo maamulka qaabaynta loo baahan yahay in la horumariyo:

  1. Automation Khaladka bini'aadamka ee hawlgallada soo noqnoqda waa in laga fogaadaa intii suurtagal ah.
  2. Ku celcelinta Aad bay u fududahay in la maareeyo kaabayaasha marka la saadaalin karo. Qaabeynta server-yada iyo qalabka loogu talagalay diyaarintooda waa inay isku mid noqdaan meel kasta. Tani waxay sidoo kale muhiim u tahay kooxaha wax soo saarka - ka dib imtixaanka, codsiga waa in la dammaanad qaado inuu ku dhamaanayo jawi wax soo saar oo loo qaabeeyey si la mid ah jawiga tijaabada.
  3. Fududnaanta iyo daah-furnaanta samaynta isbeddelka maareynta qaabeynta.

Way hadhay in lagu daro laba qalab.

Waxaan u dooranay GitLab CE sida kaydka koodkayaga, ugu yaraan qaybaha CI/CD ee ku dhex dhisan.

Kaydka siraha - Hashicorp Vault, oo ay ku jiraan. API weyn.

Tijaabada qaabaynta iyo doorarka macquulka ah - Molecule+Testinfra. Tijaabooyinku aad bay u dhaqso badan yihiin haddii aad ku xidho mitogen la awoodi karo. Isla mar ahaantaana, waxaan bilownay inaan qorno CMDB noo gaar ah iyo orchestertor si toos ah loo geeyo (sawirka kore ee Cobbler), laakiin tani waa sheeko gabi ahaanba ka duwan, taas oo saaxiibkay iyo horumarinta ugu weyn ee nidaamyadan ay sheegi doonaan mustaqbalka.

Doorashadayada:

Molecule + Testinfra
Macquul ah + Tower + AWX
World of Servers + DITNET (horumar gaar ah)
Kabare
Gitlab + GitLab orodyahan
Hal qayb oo ka mid ah Hashicorp Vault

Laga soo bilaabo "bilawga" ilaa kumanaan adeegayaal ah oo ku jira darsin xarumo xogeed. Sida aan u daba galnay kobaca kaabayaasha Linux

By habka, ku saabsan doorarka macquulka ah. Markii hore waxaa jiray hal kaliya, laakiin dhowr dib-u-habeyn ka dib waxaa jiray 17 ka mid ah. Waxaan si adag ugu talinayaa in la jebiyo monolith doorarka awoodda leh, taas oo markaa si gaar ah loo bilaabi karo; Intaa waxaa dheer, waxaad ku dari kartaa tags. Doorarka waxaan u qaybinay hawlkarnimo - shabakad, qorid, xirmo, qalab, molecule iwm. Guud ahaan, waxaan raacnay xeeladda hoose. Kuma adkaysanayo in tani ay tahay runta kaliya, laakiin way noo shaqeysay.

  • Ka koobiyeynta server-yada "sawirka dahabiga ah" waa shar!Khasaaraha ugu weyni waa inaadan si sax ah u garanayn gobolka sawiradu hadda, iyo in dhammaan isbeddelada ay ku iman doonaan dhammaan sawirada dhammaan beeraha farsamada.
  • Isticmaal faylalka qaabeynta caadiga ah ugu yaraan oo ku raac waaxyada kale inaad mas'uul ka tahay faylasha nidaamka guud, tusaale ahaan:
    1. Ka tag /etc/sysctl.conf maran, habayntu waa inay ku jiraan kaliya /etc/sysctl.d/. Kalsoonidaada hal fayl, caadada u ah codsiga mid kale.
    2. Isticmaal faylasha la tirtiro si aad u saxdo unugyada habaysan.
  • Samee dhammaan qaab-dhismeedka oo ku dar gebi ahaan; haddii ay suurtagal tahay, ma jiraan sed ama analogues-yada ku jira buugaagta ciyaarta
  • Dib-u-habaynta koodhka nidaamka maaraynta qaabaynta:
    1. U kala qaybso hawlaha oo u kala qaybso qaybo macquul ah oo dib ugu qor monolith door
    2. Isticmaal xargaha! Maangal-lint, yaml-lint, iwm
    3. Beddel habkaaga! Ma jiro wax bash-bash ah. Waa lagama maarmaan in la qeexo xaaladda nidaamka
  • Dhammaan doorarka macquulka ah waxaad u baahan tahay inaad ku qorto imtixaanada molecule oo aad soo saarto warbixino hal mar maalintii.
  • Xaaladeena, ka dib diyaarinta imtixaanada (kuwaas oo ay jiraan in ka badan 100), qiyaastii 70000 qalad ayaa la helay. Waxay qaadatay dhowr bilood in la hagaajiyo.Laga soo bilaabo "bilawga" ilaa kumanaan adeegayaal ah oo ku jira darsin xarumo xogeed. Sida aan u daba galnay kobaca kaabayaasha Linux

Hirgelinteena

Sidaa darteed, doorarka macquulka ah waxay ahaayeen diyaar, qaabeeyey oo lagu hubiyay linters. Iyo xitaa gits meel walba waa la kiciyaa. Laakiin su'aasha ah bixinta koodhka lagu kalsoonaan karo ee qaybaha kala duwan ayaa weli furan. Waxa aanu go'aansanay in aanu la midayno qoraalada. Waxay u egtahay sidan:

Laga soo bilaabo "bilawga" ilaa kumanaan adeegayaal ah oo ku jira darsin xarumo xogeed. Sida aan u daba galnay kobaca kaabayaasha Linux

Ka dib marka isbeddelku yimaado, CI waa la bilaabay, adeegaha tijaabada ayaa la abuuray, doorarka ayaa la soo saaray, oo lagu tijaabiyay molecule. Haddii wax walba ay hagaagsan yihiin, koodka wuxuu tagayaa laanta prod. Laakiin kuma dabaqno kood cusub server-yada ka jira mishiinka. Tani waa nooc ka mid ah joojinta lagama maarmaanka u ah helitaanka sare ee nidaamyadayaga. Marka kaabayaasha dhaqaalaha ay noqdaan kuwo weyn, sharciga tirada badan ayaa soo galaya - xitaa haddii aad hubto in isbeddelku aanu waxyeello lahayn, waxay keeni kartaa cawaaqib xun.

Waxa kale oo jira fursado badan oo lagu abuurayo server. Waxaan ku soo afjarnay doorashada qoraallada Python ee caadada u ah. Iyo CI macquul ah:

- name: create1.yml - Create a VM from a template
  vmware_guest:
    hostname: "{{datacenter}}".domain.ru
    username: "{{ username_vc }}"
    password: "{{ password_vc }}"
    validate_certs: no
    cluster: "{{cluster}}"
    datacenter: "{{datacenter}}"
    name: "{{ name }}"
    state: poweredon
    folder: "/{{folder}}"
    template: "{{template}}"
    customization:
      hostname: "{{ name }}"
      domain: domain.ru
      dns_servers:
        - "{{ ipa1_dns }}"
        - "{{ ipa2_dns }}"
    networks:
      - name: "{{ network }}"
        type: static
        ip: "{{ip}}"
        netmask: "{{netmask}}"
        gateway: "{{gateway}}"
        wake_on_lan: True
        start_connected: True
        allow_guest_control: True
    wait_for_ip_address: yes
    disk:
      - size_gb: 1
        type: thin
        datastore: "{{datastore}}"
      - size_gb: 20
        type: thin
        datastore: "{{datastore}}"

Tani waa waxa aan u nimid, nidaamku wuxuu sii wadaa inuu noolaado oo horumariyo.

  • 17 Doorarka macquulka ah ee dejinta serverka. Mid kasta oo ka mid ah doorarka waxaa loo qaabeeyey in lagu xalliyo hawl macquul ah oo gooni ah (qorista, xisaabinta, oggolaanshaha isticmaalaha, la socodka, iwm.).
  • Tijaabada doorka Molecule + TestInfra.
  • Horumarinta u gaar ah: CMDB + Orchestrator.
  • Waqtiga abuurista adeegaha waa ~ 30 daqiiqo, iswada oo si toos ah uga madax banaan safka hawsha.
  • Isla gobolka/magacaabidda kaabayaasha ee dhammaan qaybaha --buugaag-ciyaaraha, kaydinta, canaasiyha abuurista.
  • Hubinta maalinlaha ah ee heerka server-ka iyada oo la adeegsanayo abuurista warbixinno ku saabsan khilaafaadyada heerka

Waxaan rajeynayaa in sheekadeyda ay faa'iido u yeelan doonto kuwa ku jira bilowga safarkooda. Waa maxay kaydka otomaatiga ah ee aad isticmaasho?

Source: www.habr.com