Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Å is ir runas atÅ”ifrējums DevopsConf 2019-10-01 Šø SPbLUG 2019-09-25.

Å is ir stāsts par projektu, kurā tika izmantota paÅ”rakstÄ«ta konfigurācijas pārvaldÄ«bas sistēma, un kāpēc pāreja uz Ansible ilga 18 mēneÅ”us.

Diena Nr. -Š„Š„Š„: Pirms sākuma

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Sākotnēji infrastruktÅ«ra sastāvēja no daudziem atseviŔķiem saimniekdatoriem, kuros darbojas Hyper-V. Lai izveidotu virtuālo maŔīnu, bija jāveic vairākas darbÄ«bas: disku ievietoÅ”ana pareizajā vietā, DNS reÄ£istrÄ“Å”ana, DHCP rezervÄ“Å”ana, VM konfigurācijas ievietoÅ”ana git repozitorijā. Å is process bija daļēji mehanizēts, taču, piemēram, virtuālās maŔīnas starp saimniekiem tika sadalÄ«tas ar roku. Bet, piemēram, izstrādātāji var labot VM konfigurāciju git un lietot to, pārstartējot virtuālo maŔīnu.

Pielāgotas konfigurācijas pārvaldības risinājums

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Man ir aizdomas, ka sākotnējā ideja tika iecerēta kā IaC: daudzas bezvalsts virtuālās maŔīnas, kas atiestata savu stāvokli uz nulli, kad tās tiek restartētas. Kas bija VM konfigurācijas pārvaldÄ«ba? Shematiski tas izskatās vienkārÅ”i:

  1. Virtuālajai maŔīnai tika izveidots statisks MAC.
  2. Virtuālajai maŔīnai tika pievienots ISO ar CoreOS un sāknÄ“Å”anas disks.
  3. CoreOS palaiž pielāgoÅ”anas skriptu, lejupielādējot to no WEB servera, pamatojoties uz tā IP.
  4. Skripts lejupielādē VM konfigurāciju, izmantojot SCP, pamatojoties uz IP adresi.
  5. Tiek palaists Systemd vienību failu un bash skriptu aizsargs.

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Šim risinājumam bija daudzas acīmredzamas problēmas:

  1. CoreOS ISO ir novecojis.
  2. Daudz sarežģītu automatizētu darbÄ«bu un burvju, migrējot/veidojot virtuālās maŔīnas.
  3. GrÅ«tÄ«bas ar atjaunināŔanu un gadÄ«jumiem, kad ir nepiecieÅ”ama noteikta programmatÅ«ras versija. Vēl jautrāk ar kodola moduļiem.
  4. VM nebija tik iegūti bez datiem, t.i. Tika parādītas virtuālās maŔīnas ar disku ar pievienotiem papildu lietotāja datiem.
  5. Kāds pastāvÄ«gi izjaukja sistēmas vienÄ«bu atkarÄ«bas, un CoreOS pārstartÄ“Å”anas laikā sastinga. Bija grÅ«ti to uztvert, izmantojot CoreOS pieejamos rÄ«kus.
  6. Noslēpumu pārvaldība.
  7. CM nebija. CoreOS bija bash un YML konfigurācijas.

Lai lietotu virtuālās maŔīnas konfigurāciju, tā ir jārestartē, taču tā var netikt atsāknēta. Å Ä·iet, ka problēma ir acÄ«mredzama, taču pastāvÄ«gu disku nav - nav kur saglabāt žurnālus. Nu labi, mēģināsim pievienot kodola ielādes opciju, lai žurnāli tiktu nosÅ«tÄ«ti. Bet nē, cik tas viss ir sarežģīti.

0. diena: atpazīstiet problēmu

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Tā bija parastā izstrādes infrastruktÅ«ra: jenkins, testa vides, uzraudzÄ«ba, reÄ£istrs. CoreOS bija paredzēts k8s klasteru mitināŔanai, t.i. problēma bija tā, kā tika izmantota CoreOS. Pirmais solis bija kaudzes izvēle. Mēs izlēmām:

  1. CentOS kā bāzes sadalÄ«jums, jo Å is ir ražoÅ”anas vidēm tuvākais izplatÄ«Å”anas veids.
  2. Iespējams konfigurācijas pārvaldÄ«bai, jo par to tika veikta plaÅ”a pārbaude.
  3. Jenkins kā ietvaru esoÅ”o procesu automatizÄ“Å”anai, jo tas jau ir aktÄ«vi izmantots izstrādes procesos
  4. Hyper-V kā virtualizācijas platforma. Ir vairāki iemesli, kas pārsniedz stāsta jomu, bet īsumā - mēs nevaram izmantot mākoņus, mums ir jāizmanto sava aparatūra.

30. diena: EsoŔo līgumu laboŔana - Līgumi kā kodekss

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Kad steka bija skaidra, sākās gatavoŔanās gājienam. EsoŔo līgumu laboŔana koda veidā (Līgumi kā kodekss!). Pāreja roku darbs -> mehanizācija -> automatizācija.

1. VM konfigurÄ“Å”ana

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Ansible paveic lielisku darbu. Veicot minimālas Ä·ermeņa kustÄ«bas, varat kontrolēt virtuālās maŔīnas konfigurācijas:

  1. Izveidojiet git repozitoriju.
  2. Mēs ievietojam virtuālo maŔīnu sarakstu inventārā, konfigurācijas rokasgrāmatās un lomās.
  3. Mēs izveidojam Ä«paÅ”u jenkins vergu, no kura jÅ«s varat palaist Ansible.
  4. Mēs izveidojam darbu un konfigurējam Dženkinsu.

Pirmais process ir gatavs. Līgumi ir fiksēti.

2. Izveidojiet jaunu virtuālo maŔīnu

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Å eit viss nebija Ä«paÅ”i ērti. Nav Ä«paÅ”i ērti izveidot virtuālās maŔīnas uz Hyper-V no Linux. Viens no mēģinājumiem mehanizēt Å”o procesu bija:

  1. Ansbile savienojas ar Windows saimniekdatoru, izmantojot WinRM.
  2. Ansible palaiž Powershell skriptu.
  3. Powershell skripts izveido jaunu virtuālo maŔīnu.
  4. Izmantojot Hyper-V/ScVMM, veidojot virtuālo maŔīnu viesa operētājsistēmā, tiek konfigurēts saimniekdatora nosaukums.
  5. Atjauninot DHCP nomu, VM nosūta tā resursdatora nosaukumu.
  6. Standarta ddns un dhcp integrācija domēna kontrollera pusē konfigurē DNS ierakstu.
  7. Varat pievienot VM savam krājumam un konfigurēt to, izmantojot Ansible.

3. Izveidojiet VM veidni

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Viņi Å”eit neko neizgudroja - viņi paņēma iepakotāju.

  1. Pievienojiet pakotāju, kickstart konfigurāciju git repozitorijai.
  2. ÄŖpaÅ”a jenkins verga iestatÄ«Å”ana ar hyper-v un Packer.
  3. Mēs izveidojam darbu un konfigurējam Dženkinsu.

Kā Ŕī saite darbojas:

  1. Packer izveido tukÅ”u virtuālo maŔīnu un paņem ISO.
  2. VM sāknÄ“Å”ana, pakotājs ievada komandu sāknÄ“Å”anas ielādētājā, lai izmantotu mÅ«su starta failu no disketes vai http.
  3. Anaconda tiek palaista ar mūsu konfigurāciju, un sākotnējā OS konfigurācija ir pabeigta.
  4. Iepakotājs gaida, kamēr virtuālā maŔīna kļūs pieejama.
  5. Iepakotājs virtuālajā maŔīnā darbojas vietējā režīmā.
  6. Ansible izmanto tieŔi tās paŔas lomas, kuras darbojas 1. darbībā.
  7. Packer eksportē VM veidni.

75. diena: atjaunojiet vienoÅ”anos, nepārkāpjot = pārbaudiet iespējas + Testkitchen

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Var nepietikt ar konvenciju tverÅ”anu kodā. Galu galā, ja procesa smalkumos vēlaties kaut ko mainÄ«t, varat kaut ko salauzt. Tāpēc infrastruktÅ«ras gadÄ«jumā parādās tieÅ”i Ŕīs infrastruktÅ«ras testÄ“Å”ana. Lai sinhronizētu zināŔanas komandā, mēs sākām testēt Ansible lomas. Es neiedziļināŔos, jo... ir raksts, kurā aprakstÄ«ti notikumi tajā brÄ«dÄ« Pārbaudi mani, vai vari vai YML programmētāji sapņo par Ansible testÄ“Å”anu?(spoileris Ŕī nebija galÄ«gā versija un vēlāk viss kļuva sarežģītāk Kā sākt Ansible testÄ“Å”anu, pēc gada pārstrukturējiet projektu un nekļūstiet traki).

130. diena: varbÅ«t CentOS+ansible nav vajadzÄ«gs? varbÅ«t openshift?

Jāsaprot, ka infrastruktÅ«ras ievieÅ”anas process nebija vienÄ«gais un bija blakus apakÅ”projekti. Piemēram, tika saņemts pieprasÄ«jums palaist mÅ«su lietojumprogrammu Openshift, un tā rezultātā tika veikti pētÄ«jumi vairāk nekā vienu nedēļu Mēs palaižam lietojumprogrammu Openshift un salÄ«dzinām esoÅ”os rÄ«kus kas palēnināja pārvietoÅ”anās procesu. Rezultāts izrādÄ«jās, ka openshift neaptver visas vajadzÄ«bas, jums ir nepiecieÅ”ama Ä«sta aparatÅ«ra vai vismaz iespēja spēlēt ar kodolu.

170. diena: Openshift nav piemērots, pieņemsim iespēju ar Windows Azure Pack?

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Hyper-V nav Ä«paÅ”i draudzÄ«gs, SCVMM to Ä«paÅ”i nepadara. Bet ir tāda lieta kā Windows Azure Pack, kas ir SCVMM papildinājums un atdarina Azure. Bet patiesÄ«bā produkts izskatās pamests: dokumentācijā ir bojātas saites, un tā ir ļoti maza. Taču viņi to arÄ« aplÅ«koja, pētot mÅ«su mākoņa darbÄ«bas vienkārÅ”oÅ”anas iespējas.

250. diena: Windows Azure pakotne nav ļoti laba. Mēs paliekam SCVMM

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Windows Azure Pack izskatÄ«jās daudzsoloÅ”i, taču tika nolemts neienest sistēmā WAP ar tās sarežģītÄ«bu, lai radÄ«tu nevajadzÄ«gas iespējas, un palika pie SCVMM.

360. diena: ziloņa Ä“Å”ana pa gabalam

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Tikai gadu vēlāk platforma pārcelÅ”anās vietai bija gatava un sākās pārvākÅ”anās process. Å im nolÅ«kam tika uzstādÄ«ts SMART uzdevums. Mēs pārbaudÄ«jām visas virtuālās maŔīnas un sākām izdomāt konfigurāciju pa vienam, aprakstÄ«t to Ansible un pārklāt to ar testiem.

450. diena: kāda veida sistēmu jÅ«s ieguvāt?

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Pats process nav interesants. Tā ir rutÄ«na, var atzÄ«mēt, ka lielākā daļa konfigurāciju bija salÄ«dzinoÅ”i vienkārÅ”as vai izomorfas un saskaņā ar Pareto principu 80% VM konfigurāciju prasÄ«ja 20% laika. Pēc tāda paÅ”a principa 80% laika tika pavadÄ«ti gājiena sagatavoÅ”anai un tikai 20% paÅ”ai kustÄ«bai.

540. diena: fināls

Iespējama: 120 VM konfigurācijas migrÄ“Å”ana no CoreOS uz CentOS 18 mēneÅ”os

Kas notika 18 mēneÅ”u laikā?

  1. Līgumi kļuva par kodeksu.
  2. Roku darbs -> Mehanizācija -> Automatizācija.

Avots: www.habr.com

Pievieno komentāru