Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

SDSM ir beidzies, bet nevaldāmā vēlme rakstīt paliek.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Daudzus gadus mÅ«su brālis cieta no ikdieniŔķa darba veikÅ”anas, sakrustoja pirkstus pirms apņemÅ”anās un miega trÅ«kuma dēļ ikvakara atkāpÅ”anās.
Bet tumŔie laiki tuvojas beigām.

Ar Å”o rakstu es sākÅ”u sēriju par to, kā mani parādās automatizācija.
Pa ceļam mēs sapratÄ«sim automatizācijas posmus, mainÄ«go glabāŔanu, dizaina formalizāciju, RestAPI, NETCONF, YANG, YDK, un mēs veiksim daudz programmÄ“Å”anas.
Man nozīmē, ka a) tā nav objektīva patiesība, b) tā nav beznosacījumu labākā pieeja, c) mans viedoklis, pat virzoties no pirmā uz pēdējo rakstu, var mainīties - ja godīgi, no uzmetuma stadijas līdz publikāciju, es visu pilnībā pārrakstīju divas reizes.

saturs

  1. Mērķi
    1. Tīkls ir kā viens organisms
    2. Konfigurācijas pārbaude
    3. VersionēŔana
    4. Pakalpojumu uzraudzība un paŔatveseļoŔanās

  2. Fondi
    1. Inventāra sistēma
    2. IP telpas pārvaldības sistēma
    3. Tīkla pakalpojumu aprakstu sistēma
    4. Ierīces inicializācijas mehānisms
    5. Pārdevēja-agnostiskā konfigurācijas modelis
    6. Pārdevēja specifiska draivera saskarne
    7. Mehānisms konfigurācijas piegādei ierīcei
    8. CI / CD
    9. Mehānisms dublÄ“Å”anai un noviržu meklÄ“Å”anai
    10. Uzraudzības sistēma

  3. Secinājums

Es mēģināŔu veikt ADSM formātā, kas nedaudz atŔķiras no SDSM. Turpinās parādÄ«ties lieli, detalizēti, numurēti raksti, un starp tiem publicÄ“Å”u nelielas piezÄ«mes no ikdienas pieredzes. Es centÄ«Å”os Å”eit cÄ«nÄ«ties ar perfekcionismu un nelaizÄ«t katru no viņiem.

Cik jocīgi, ka otro reizi jāiet pa to paŔu ceļu.

Sākumā man paÅ”am bija jāraksta raksti par tÄ«kliem, jo ā€‹ā€‹tie nebija RuNet.

Tagad es nevarēju atrast visaptveroÅ”u dokumentu, kas sistematizētu automatizācijas pieejas un analizētu iepriekÅ” minētās tehnoloÄ£ijas, izmantojot vienkārÅ”us praktiskus piemērus.

Iespējams, es kļūdos, tāpēc, lÅ«dzu, sniedziet saites uz noderÄ«giem resursiem. Tomēr tas nemainÄ«s manu apņēmÄ«bu rakstÄ«t, jo galvenais mērÄ·is ir paÅ”am kaut ko iemācÄ«ties, un dzÄ«ves atviegloÅ”ana citiem ir patÄ«kams bonuss, kas glāsta pieredzes dalÄ«Å”anas gēnu.

Mēģināsim paņemt vidēja izmēra LAN DC datu centru un izstrādāt visu automatizācijas shēmu.
Dažas lietas es darīŔu kopā ar jums gandrīz pirmo reizi.

Es nebÅ«Å”u oriÄ£ināls Å”eit aprakstÄ«tajās idejās un instrumentos. Dmitrijam Figolam ir izcils kanāls ar straumēm par Å”o tēmu.
Raksti pārklāsies ar tiem daudzos aspektos.

LAN DC ir 4 DC, aptuveni 250 slēdži, pusducis marÅ”rutētāju un pāris ugunsmÅ«ri.
Nevis Facebook, bet pietiekami, lai jūs dziļi padomātu par automatizāciju.
Tomēr pastāv viedoklis, ka, ja jums ir vairāk nekā 1 ierÄ«ce, automatizācija jau ir nepiecieÅ”ama.
Patiesībā ir grūti iedomāties, ka ikviens tagad var dzīvot bez vismaz ceļgalu skriptu komplekta.
Lai gan dzirdēju, ka ir biroji, kur IP adreses tiek glabātas programmā Excel, un katra no tÅ«kstoÅ”iem tÄ«kla ierīču tiek konfigurēta manuāli un tai ir sava unikāla konfigurācija. To, protams, var nosaukt par moderno mākslu, taču inženiera jÅ«tas noteikti tiks aizskartas.

Mērķi

Tagad mēs noteiksim abstraktākos mērķus:

  • TÄ«kls ir kā viens organisms
  • Konfigurācijas pārbaude
  • TÄ«kla stāvokļa versiju noteikÅ”ana
  • Pakalpojumu uzraudzÄ«ba un paÅ”atveseļoÅ”anās

Vēlāk Å”ajā rakstā apskatÄ«sim, kādus lÄ«dzekļus izmantosim, un turpmāk detalizēti aplÅ«kosim mērÄ·us un lÄ«dzekļus.

Tīkls ir kā viens organisms

Sērijas noteicoŔā frāze, lai gan no pirmā acu uzmetiena tā var neŔķist tik nozÄ«mÄ«ga: mēs konfigurēsim tÄ«klu, nevis atseviŔķas ierÄ«ces.
Pēdējos gados mēs esam pieredzējuÅ”i, ka uzsvars ir mainÄ«jies uz tÄ«klu kā vienotu vienÄ«bu, tāpēc ProgrammatÅ«ras definēts tÄ«kls, Ar nolÅ«ku vadÄ«ti tÄ«kli Šø Autonomie tÄ«kli.
Galu galā, kas lietojumprogrammām globāli vajadzīgs no tīkla: savienojamība starp punktiem A un B (labi, dažreiz + B-Z) un izolācija no citām lietojumprogrammām un lietotājiem.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Un tāds ir mÅ«su uzdevums Å”ajā sērijā izveidot sistēmu, saglabājot paÅ”reizējo konfigurāciju viss tÄ«kls, kas jau ir sadalÄ«ta faktiskajā konfigurācijā katrā ierÄ«cē atbilstoÅ”i tās lomai un atraÅ”anās vietai.
Sistēma tīkla pārvaldība nozīmē, ka, lai veiktu izmaiņas, mēs ar to sazināmies, un tā, savukārt, aprēķina katrai ierīcei vēlamo stāvokli un konfigurē to.
Tādā veidā mēs samazinām manuālu piekļuvi CLI lÄ«dz gandrÄ«z nullei ā€” jebkuras izmaiņas ierÄ«ces iestatÄ«jumos vai tÄ«kla dizainā ir jāformalizē un jādokumentē ā€” un tikai pēc tam jāievieÅ” nepiecieÅ”amie tÄ«kla elementi.

Tas ir, piemēram, ja mēs nolemtu, ka no Ŕī brīža statÄ«va slēdžiem Kazaņā ir jāpaziņo par diviem, nevis vienam tÄ«klam, mēs

  1. Vispirms mēs dokumentējam izmaiņas sistēmās
  2. Visu tÄ«kla ierīču mērÄ·a konfigurācijas Ä£enerÄ“Å”ana
  3. Mēs palaižam tÄ«kla konfigurācijas atjaunināŔanas programmu, kas aprēķina, kas katrā mezglā ir jānoņem, kas jāpievieno, un novieto mezglus vēlamajā stāvoklÄ«.

Tajā paŔā laikā izmaiņas manuāli veicam tikai pirmajā darbÄ«bā.

Konfigurācijas pārbaude

Zināmska 80% problēmu rodas konfigurācijas maiņas laikā - netieÅ”s pierādÄ«jums tam ir tas, ka Jaungada brÄ«vdienās parasti viss ir mierÄ«gi.
Esmu personÄ«gi pieredzējis desmitiem globālas dÄ«kstāves cilvēka kļūdu dēļ: nepareiza komanda, konfigurācija tika izpildÄ«ta nepareizajā filiālē, kopiena aizmirsa, MPLS tika globāli nojaukts marÅ”rutētājā, tika konfigurētas piecas aparatÅ«ras daļas, bet kļūda nebija. pamanÄ«ts sestajā, tika veiktas vecas citas personas veiktas izmaiņas. Ir ļoti daudz scenāriju.

Automatizācija ļaus mums pieļaut mazāk kļūdu, bet plaŔākā mērogā. Tādā veidā jÅ«s varat bloķēt ne tikai vienu ierÄ«ci, bet visu tÄ«klu vienlaikus.

KopÅ” neatminamiem laikiem mÅ«su vectēvi ar vērÄ«gu aci pārbaudÄ«ja veikto izmaiņu pareizÄ«bu, tērauda lodÄ«tes un tÄ«kla funkcionalitāti pēc to izvilkÅ”anas.
Tie vectēvi, kuru darbs noveda pie dīkstāves un katastrofāliem zaudējumiem, atstāja mazāk pēcnācēju un ar laiku tiem vajadzētu izmirt, taču evolūcija ir lēns process, un tāpēc ne visi joprojām vispirms pārbauda izmaiņas laboratorijā.
Tomēr progresa priekÅ”galā ir tie, kas automatizējuÅ”i konfigurācijas testÄ“Å”anas procesu un tās turpmāko pielietoÅ”anu tÄ«klā. Citiem vārdiem sakot, es aizņēmos CI/CD procedÅ«ru (Nepārtraukta integrācija, nepārtraukta izvietoÅ”ana) no izstrādātājiem.
Vienā no daļām apskatīsim, kā to īstenot, izmantojot versiju kontroles sistēmu, iespējams, Github.

Kad esat pieradis pie tÄ«kla CI/CD idejas, vienas nakts konfigurācijas pārbaudes metode, piemērojot to ražoÅ”anas tÄ«klam, ŔķitÄ«s agrÄ«nu viduslaiku neziņa. LÄ«dzÄ«gi kā ar āmuru trāpÄ«t pa kaujas galviņu.

Organisks ideju turpinājums par sistēma tīkla pārvaldība un CI/CD kļūst par pilnu konfigurācijas versiju.

VersionēŔana

Mēs pieņemsim, ka ar jebkādām izmaiņām, pat visniecīgākajām, pat vienā nepamanāmā ierīcē viss tīkls pāriet no viena stāvokļa uz otru.
Un mēs vienmēr neizpildām komandu ierīcē, mēs mainām tīkla stāvokli.
Tātad sauksim Ŕos Ŕtatus par versijām?

Pieņemsim, ka paÅ”reizējā versija ir 1.0.0.
Vai ir mainījusies atgriezeniskās saites interfeisa IP adrese vienā no uzdevumiem? Šī ir neliela versija, un tai būs 1.0.1.
Mēs pārskatÄ«jām politiku marÅ”rutu importÄ“Å”anai BGP ā€” nedaudz nopietnāk ā€” jau 1.1.0
Mēs nolēmām atbrīvoties no IGP un pāriet tikai uz BGP - tā jau ir radikāla dizaina maiņa - 2.0.0.

Tajā paŔā laikā dažādiem DC var bÅ«t dažādas versijas - tÄ«kls attÄ«stās, tiek uzstādÄ«ts jauns aprÄ«kojums, kaut kur tiek pievienoti jauni muguriņu lÄ«meņi, citos ne utt.

uz semantiskā versiju veidoÅ”ana mēs runāsim atseviŔķā rakstā.

Es atkārtoju - jebkuras izmaiņas (izņemot atkļūdoÅ”anas komandas) ir versijas atjauninājums. Administratoriem ir jābrÄ«dina par jebkādām novirzēm no paÅ”reizējās versijas.

Tas pats attiecas uz izmaiņu atcelÅ”anu ā€” tā nav pēdējo komandu atcelÅ”ana, tā nav atcelÅ”ana, izmantojot ierÄ«ces operētājsistēmu ā€” tas nozÄ«mē, ka viss tÄ«kls tiek atjaunots jaunā (vecā) versijā.

Pakalpojumu uzraudzība un paŔatveseļoŔanās

Šis paŔsaprotamais uzdevums mūsdienu tīklos ir sasniedzis jaunu līmeni.
Bieži vien lielie pakalpojumu sniedzēji izmanto pieeju, ka nokrituÅ”ais pakalpojums ir ļoti ātri jālabo un jāceļ jauns, nevis jāizdomā, kas noticis.
ā€œÄ»otiā€ nozÄ«mē, ka jums no visām pusēm ir jābÅ«t dāsni pārklātam ar uzraudzÄ«bu, kas dažu sekunžu laikā atklās mazākās novirzes no normas.
Un Å”eit vairs nepietiek ar parastajiem rādÄ«tājiem, piemēram, saskarnes ielādi vai mezglu pieejamÄ«bu. Nepietiek arÄ« ar dežuranta veiktu to manuālu uzraudzÄ«bu.
Daudzām lietām vajadzētu bÅ«t PaÅ”dziedināŔana ā€” novēroÅ”anas gaismas iedegās sarkanas un mēs gājām un paÅ”i uzklājām ceļmallapu, kur sāpēja.

Un Å”eit mēs arÄ« uzraugām ne tikai atseviŔķas ierÄ«ces, bet arÄ« visa tÄ«kla veselÄ«bu, gan whitebox, kas ir salÄ«dzinoÅ”i saprotams, gan blackbox, kas ir sarežģītāks.

Kas mums bÅ«s nepiecieÅ”ams, lai Ä«stenotu tik vērienÄ«gus plānus?

  • Ir visu tÄ«klā esoÅ”o ierīču saraksts, to atraÅ”anās vieta, lomas, modeļi, programmatÅ«ras versijas.
    kazan-leaf-1.lmu.net, Kazaņa, lapa, Kadiķis QFX 5120, R18.3.
  • Ir sistēma tÄ«kla pakalpojumu aprakstÄ«Å”anai.
    IGP, BGP, L2/3VPN, politika, ACL, NTP, SSH.
  • Jāprot inicializēt ierÄ«ci.
    Resursdatora nosaukums, Mgmt IP, Mgmt marÅ”ruts, lietotāji, RSA atslēgas, LLDP, NETCONF
  • Konfigurējiet ierÄ«ci un konfigurējiet vajadzÄ«go (ieskaitot veco) versiju.
  • Testa konfigurācija
  • Periodiski pārbaudiet visu ierīču statusu, vai nav novirzes no paÅ”reizējā, un ziņojiet, kam tam vajadzētu bÅ«t.
    Pa nakti kāds klusi pievienoja noteikumu ACL.
  • UzraudzÄ«t veiktspēju.

Fondi

Tas izklausās pietiekami sarežģīti, lai sāktu projektu sadalīt komponentos.

Un no tiem būs desmit:

  1. Inventāra sistēma
  2. IP telpas pārvaldības sistēma
  3. Tīkla pakalpojumu aprakstu sistēma
  4. Ierīces inicializācijas mehānisms
  5. Pārdevēja-agnostiskā konfigurācijas modelis
  6. Pārdevēja specifiska draivera saskarne
  7. Mehānisms konfigurācijas piegādei ierīcei
  8. CI / CD
  9. Mehānisms dublÄ“Å”anai un noviržu meklÄ“Å”anai
  10. Uzraudzības sistēma

Šis, starp citu, ir piemērs tam, kā mainījās skatījums uz cikla mērķiem - projektā bija 4 komponenti.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Ilustrācijā es attēloju visas sastāvdaļas un paÅ”u ierÄ«ci.
KrustojoŔie komponenti mijiedarbojas viens ar otru.
Jo lielāks bloks, jo lielāka uzmanÄ«ba jāpievērÅ” Å”im komponentam.

1. komponents: uzskaites sistēma

Acīmredzot mēs gribam zināt, kāda tehnika kur atrodas, kam pieslēgta.
Inventāra sistēma ir jebkura uzņēmuma neatņemama sastāvdaļa.
Visbiežāk uzņēmumam ir atseviŔķa tÄ«kla ierīču uzskaites sistēma, kas atrisina specifiskākas problēmas.
Å Ä«s rakstu sērijas ietvaros mēs to sauksim par DCIM ā€” datu centra infrastruktÅ«ras pārvaldÄ«bu. Lai gan pats termins DCIM, stingri ņemot, ietver daudz vairāk.

MÅ«su vajadzÄ«bām mēs tajā glabāsim Ŕādu informāciju par ierÄ«ci:

  • Inventāra numurs
  • Nosaukums/Apraksts
  • Modelis (Huawei CE12800, Juniper QFX5120 utt.)
  • RaksturÄ«gie parametri (plates, saskarnes utt.)
  • Loma (Lapa, mugurkauls, apmales marÅ”rutētājs utt.)
  • AtraÅ”anās vieta (reÄ£ions, pilsēta, datu centrs, plaukts, vienÄ«ba)
  • Savienojumi starp ierÄ«cēm
  • TÄ«kla topoloÄ£ija

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Ir pilnÄ«gi skaidrs, ka mēs paÅ”i vēlamies to visu zināt.
Bet vai tas palīdzēs automatizācijas nolūkos?
Protams.
Piemēram, mēs zinām, ka konkrētā datu centrā Leaf slēdžos, ja tas ir Huawei, ACL, lai filtrētu noteiktu trafiku, ir jāpiemēro VLAN, un, ja tas ir Juniper, tad fiziskās saskarnes 0. vienībā.
Vai arī jums ir jāizlaiž jauns Syslog serveris visās reģiona robežās.

Tajā mēs glabāsim virtuālās tÄ«kla ierÄ«ces, piemēram, virtuālos marÅ”rutētājus vai saknes reflektorus. Mēs varam pievienot DNS serverus, NTP, Syslog un vispār visu, kas vienā vai otrā veidā attiecas uz tÄ«klu.

2. komponents: IP telpas pārvaldÄ«bas sistēma

Jā, un mÅ«sdienās ir cilvēku komandas, kas izseko prefiksus un IP adreses Excel failā. Taču mÅ«sdienu pieeja joprojām ir datu bāze ar nginx/apache priekÅ”galu, API un plaŔām funkcijām IP adreÅ”u un tÄ«klu ierakstÄ«Å”anai, kas sadalÄ«ti VRF.
IPAM - IP adreŔu pārvaldība.

MÅ«su vajadzÄ«bām mēs tajā glabāsim Ŕādu informāciju:

  • VLAN
  • VRF
  • TÄ«kli/apakÅ”tÄ«kli
  • IP adreses
  • AdreÅ”u saistÄ«Å”ana ar ierÄ«cēm, tÄ«klu ar atraÅ”anās vietām un VLAN numuriem

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Atkal ir skaidrs, ka mēs vēlamies pārliecināties, ka, pieŔķirot jaunu IP adresi ToR cilpai, mēs nepaklupsim par to, ka tā kādam jau ir pieŔķirta. Vai arÄ« mēs divreiz izmantojām vienu un to paÅ”u prefiksu dažādos tÄ«kla galos.
Bet kā tas palīdz automatizācijai?
Tas ir vienkārŔi.
Sistēmā pieprasām prefiksu ar lomu Loopbacks, kas satur pieŔķirÅ”anai pieejamās IP adreses - ja tiek atrasts, pieŔķiram adresi, ja nē, pieprasām izveidot jaunu prefiksu.
Vai arÄ« veidojot ierÄ«ces konfigurāciju, no tās paÅ”as sistēmas varam noskaidrot, kurā VRF interfeisam jāatrodas.
Un startējot jaunu serveri, skripts ielogojas sistēmā, noskaidro, kurā slēdzÄ« atrodas serveris, kurā portā un kurÅ” apakÅ”tÄ«kls ir pieŔķirts interfeisam - un no tā pieŔķirs servera adresi.

Tas liecina par vēlmi apvienot DCIM un IPAM vienā sistēmā, lai nedublētos funkcijas un neapkalpotu divas līdzīgas vienības.
To mēs darīsim.

3. komponents. TÄ«kla pakalpojumu aprakstÄ«Å”anas sistēma

Ja pirmajās divās sistēmās tiek glabāti mainÄ«gie, kas vēl kaut kā jāizmanto, tad treÅ”ajā katrai ierÄ«ces lomai ir aprakstÄ«ts, kā tā jākonfigurē.
Ir vērts noŔķirt divus dažādus tÄ«kla pakalpojumu veidus:

  • InfrastruktÅ«ra
  • Klients.

Pirmie ir paredzēti, lai nodroÅ”inātu pamata savienojumu un ierÄ«ces vadÄ«bu. Tie ietver VTY, SNMP, NTP, Syslog, AAA, marÅ”rutÄ“Å”anas protokolus, CoPP utt.
Pēdējie organizē pakalpojumu klientam: MPLS L2/L3VPN, GRE, VXLAN, VLAN, L2TP utt.
Protams, ir arÄ« robežgadÄ«jumi - kur iekļaut MPLS LDP, BGP? Jā, un marÅ”rutÄ“Å”anas protokolus var izmantot klientiem. Bet tas nav svarÄ«gi.

Abu veidu pakalpojumi ir sadalīti konfigurācijas primitīvos:

  • fiziskās un loÄ£iskās saskarnes (tag/anteg, mtu)
  • IP adreses un VRF (IP, IPv6, VRF)
  • ACL un trafika apstrādes politikas
  • Protokoli (IGP, BGP, MPLS)
  • MarÅ”rutÄ“Å”anas politikas (prefiksu saraksti, kopienas, ASN filtri).
  • Komunālie pakalpojumi (SSH, NTP, LLDP, Syslog...)
  • utt.

Kā tieÅ”i mēs to darÄ«sim, man vēl nav ne jausmas. Mēs to aplÅ«kosim atseviŔķā rakstā.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Ja mazliet tuvāk dzīvei, tad to varētu aprakstīt
Slēdžam Leaf ir jābÅ«t BGP sesijām ar visiem pievienotajiem Spine slēdžiem, tajā ir jāimportē savienotie tÄ«kli un jāpieņem tikai tÄ«kli no noteikta prefiksa no Spine slēdžiem. Ierobežojiet CoPP IPv6 ND lÄ«dz 10 pps utt.
Savukārt muguriņas rÄ«ko seansus ar visiem savienotajiem novadiem, darbojoties kā sakņu atstarotāji, un pieņem no tiem tikai noteikta garuma marÅ”rutus ar noteiktu kopienu.

4. komponents: ierÄ«ces inicializācijas mehānisms

Šajā virsrakstā es apvienoju daudzas darbības, kas jāveic, lai ierīce tiktu parādīta radarā un tai piekļūtu attālināti.

  1. Ievadiet ierīci uzskaites sistēmā.
  2. Izvēlieties pārvaldības IP adresi.
  3. Iestatiet pamata piekļuvi tai:
    Resursdatora nosaukums, pārvaldÄ«bas IP adrese, marÅ”ruts uz pārvaldÄ«bas tÄ«klu, lietotāji, SSH atslēgas, protokoli - telnet/SSH/NETCONF

Ir trīs pieejas:

  • Viss ir pilnÄ«bā manuāli. IerÄ«ce tiek nogādāta stendā, kur parasts organiskais cilvēks to ievadÄ«s sistēmās, pieslēgsies pie pults un konfigurēs. Var strādāt nelielos statiskos tÄ«klos.
  • ZTP ā€” Zero Touch Provisioning. AparatÅ«ra ieradās, piecēlās, saņēma adresi caur DHCP, devās uz Ä«paÅ”u serveri un konfigurēja sevi.
  • Konsoļu serveru infrastruktÅ«ra, kur sākotnējā konfigurācija notiek caur konsoles portu automātiskajā režīmā.

Par visiem trim mēs runāsim atseviŔķā rakstā.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

5. komponents: pārdevēja-agnostiskā konfigurācijas modelis

LÄ«dz Å”im visas sistēmas ir bijuÅ”as atŔķirÄ«gi ielāpi, kas nodroÅ”ina mainÄ«gos lielumus un deklaratÄ«vu aprakstu par to, ko mēs vēlētos redzēt tÄ«klā. Bet agrāk vai vēlāk jums bÅ«s jātiek galā ar specifiku.
Šajā posmā katrai konkrētai ierīcei primitīvi, pakalpojumi un mainīgie tiek apvienoti konfigurācijas modelī, kas faktiski apraksta visas konkrētas ierīces konfigurāciju, tikai pārdevēja ziņā neitrāli.
Ko dara Å”is solis? Kāpēc gan nekavējoties neizveidot ierÄ«ces konfigurāciju, kuru varat vienkārÅ”i augÅ”upielādēt?
Faktiski tas atrisina trīs problēmas:

  1. Nepielāgojieties noteiktai saskarnei, lai mijiedarbotos ar ierīci. Vai tas būtu CLI, NETCONF, RESTCONF, SNMP - modelis būs tas pats.
  2. Neglabājiet veidņu/skriptu skaitu atbilstoÅ”i pārdevēju skaitam tÄ«klā, un, ja dizains mainās, mainiet to paÅ”u vairākās vietās.
  3. Ielādējiet konfigurāciju no ierÄ«ces (rezerves), ievietojiet to tieÅ”i tajā paŔā modelÄ« un tieÅ”i salÄ«dziniet mērÄ·a konfigurāciju ar esoÅ”o, lai aprēķinātu delta un sagatavotu konfigurācijas ielāpu, kas mainÄ«s tikai tās daļas, kas ir nepiecieÅ”amas, vai lai noteiktu novirzes.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Šī posma rezultātā mēs iegūstam no pārdevēja neatkarīgu konfigurāciju.

6. komponents. Pārdevējam raksturÄ«ga draivera saskarne

Nevajag sevi glaimot ar cerÄ«bām, ka kādu dienu cisku varēs konfigurēt tieÅ”i tāpat kā kadiÄ·i, vienkārÅ”i nosÅ«tot viņiem tieÅ”i tādus paÅ”us zvanus. Neskatoties uz balto kastÄ«Å”u pieaugoÅ”o popularitāti un NETCONF, RESTCONF, OpenConfig atbalsta parādÄ«Å”anos, Å”o protokolu nodroÅ”inātais specifiskais saturs dažādiem pārdevējiem atŔķiras, un Ŕī ir viena no to konkurences atŔķirÄ«bām, no kuras viņi tik viegli nepadosies.
Tas ir aptuveni tāds pats kā OpenContrail un OpenStack, kuru NorthBound interfeiss ir RestAPI, sagaida pilnīgi atŔķirīgus zvanus.

Tātad, piektajā darbībā, no pārdevēja neatkarīgajam modelim ir jāiegūst tāda forma, kādā tas tiks nodots aparatūrai.
Un Ŕeit visi līdzekļi ir labi (nav): CLI, NETCONF, RESTCONF, SNMP vienkārŔi.

Tāpēc mums bÅ«s nepiecieÅ”ams draiveris, kas pārsÅ«tÄ«s iepriekŔējās darbÄ«bas rezultātu konkrēta pārdevēja vajadzÄ«gajā formātā: CLI komandu kopa, XML struktÅ«ra.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Komponents 7. Mehānisms konfigurācijas piegādei ierīcei

Mēs esam Ä£enerējuÅ”i konfigurāciju, taču tā joprojām ir jānogādā ierÄ«cēs - un, protams, ne ar rokām.
Pirmkārt, mēs saskaramies ar jautājumu, kādu transportu izmantosim? Un Å”odien izvēle vairs nav maza:

  • CLI (telnet, ssh)
  • SNMP
  • NETCONF
  • RESTCONF
  • REST API
  • OpenFlow (lai gan tas ir izņēmums, jo tas ir veids, kā nodroÅ”ināt FIB, nevis iestatÄ«jumus)

IezÄ«mēsim Å”eit ar t. CLI ir mantojums. SNMP... klepus klepus.
RESTCONF joprojām ir nezināms dzīvnieks; REST API neatbalsta gandrīz neviens. Tāpēc sērijā koncentrēsimies uz NETCONF.

Faktiski, kā lasÄ«tājs jau saprata, Å”ajā brÄ«dÄ« mēs jau esam izlēmuÅ”i par saskarni - iepriekŔējās darbÄ«bas rezultāts jau ir parādÄ«ts izvēlētā interfeisa formātā.

Otrkārt, un ar kādiem rīkiem mēs to darīsim?
Šeit ir arī liela izvēle:

  • PaÅ”u rakstÄ«ts skripts vai platforma. Apbruņosimies ar ncclient un asyncIO un darÄ«sim visu paÅ”i. Cik mums izmaksā izvietoÅ”anas sistēmas izveide no nulles?
  • Ansible ar bagātÄ«go tÄ«kla moduļu bibliotēku.
  • Sāls ar savu niecÄ«go darbu ar tÄ«klu un savienojumu ar Napalmu.
  • PatiesÄ«bā Napalm, kas pazÄ«st pāris pārdevējus, un viss, ardievu.
  • Nornir ir vēl viens dzÄ«vnieks, kuru mēs turpmāk izpētÄ«sim.

Šeit favorīts vēl nav izvēlēts - meklēsim.

Kas vēl Å”eit ir svarÄ«gs? Konfigurācijas piemēroÅ”anas sekas.
Veiksmīgi vai nē. Vai joprojām ir piekļuve aparatūrai vai nav?
Å Ä·iet, ka commit Å”eit palÄ«dzēs ar apstiprinājumu un apstiprinājumu par to, kas tika lejupielādēts ierÄ«cē.
Tas apvienojumā ar pareizu NETCONF ievieÅ”anu ievērojami saÅ”aurina piemēroto ierīču klāstu - ne daudzi ražotāji atbalsta parastās saistÄ«bas. Bet tas ir tikai viens no priekÅ”noteikumiem RFP. Galu galā neviens neuztraucas, ka neviens Krievijas pārdevējs neatbildÄ«s 32 * 100GE interfeisa nosacÄ«jumam. Vai arÄ« viņŔ ir noraizējies?

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Komponents 8. CI/CD

Šobrīd mums jau ir gatava konfigurācija visām tīkla ierīcēm.
Es rakstu ā€œpar visuā€, jo mēs runājam par tÄ«kla stāvokļa versiju noteikÅ”anu. Un pat tad, ja ir jāmaina tikai viena slēdža iestatÄ«jumi, izmaiņas tiek aprēķinātas visam tÄ«klam. AcÄ«mredzot lielākajai daļai mezglu tie var bÅ«t nulle.

Bet, kā jau tika teikts iepriekÅ”, mēs neesam nekādi barbari, kas vēlas visu virzÄ«t uz ražoÅ”anu.
Ģenerētajai konfigurācijai vispirms ir jāiziet caur Pipeline CI/CD.

CI/CD nozÄ«mē Continuous Integration, Continuous Deployment. Å Ä« ir pieeja, kurā komanda ne tikai ik pēc seÅ”iem mēneÅ”iem izdod jaunu lielu laidienu, pilnÄ«bā aizstājot veco, bet arÄ« regulāri pakāpeniski ievieÅ” (izvieto) jaunu funkcionalitāti nelielās porcijās, no kurām katra tiek visaptveroÅ”i pārbaudÄ«ta saderÄ«bas, droŔības un veiktspēja (Integrācija).

Lai to izdarÄ«tu, mums ir versiju kontroles sistēma, kas uzrauga konfigurācijas izmaiņas, laboratorija, kas pārbauda, ā€‹ā€‹vai klientu apkalpoÅ”ana nav bojāta, uzraudzÄ«bas sistēma, kas pārbauda Å”o faktu, un pēdējais solis ir izmaiņu ievieÅ”ana ražoÅ”anas tÄ«klā.

Izņemot atkļūdoÅ”anas komandas, absolÅ«ti visām izmaiņām tÄ«klā ir jānotiek caur CI/CD cauruļvadu ā€” tā ir mÅ«su klusas dzÄ«ves un ilgas, laimÄ«gas karjeras garantija.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Komponents 9. Rezerves un anomāliju noteikÅ”anas sistēma

Nu, nav vajadzÄ«bas vēlreiz runāt par dublÄ“Å”anu.
Mēs tos vienkārÅ”i ievietosim git atbilstoÅ”i kronim vai konfigurācijas maiņas faktam.

Bet otrā daļa ir interesantāka - kādam vajadzētu pieskatÄ«t Å”os dublējumus. Un dažos gadÄ«jumos Å”im cilvēkam ir jāiet un jāpagriež viss tā, kā tas bija, bet citos ā€“ kādam jāņaud, ka kaut kas nav kārtÄ«bā.
Piemēram, ja ir parādÄ«jies jauns lietotājs, kurÅ” nav reÄ£istrēts mainÄ«gajos lielumos, jums tas ir jānoņem no uzlauÅ”anas. Un, ja labāk neaiztikt jaunu ugunsmÅ«ra kārtulu, varbÅ«t kāds tikko ieslēdza atkļūdoÅ”anu, vai arÄ« jaunais pakalpojums, bungler, nav reÄ£istrēts atbilstoÅ”i noteikumiem, bet cilvēki tam jau ir pievienojuÅ”ies.

Mēs joprojām neizbēgsim no nelielas delta visa tīkla mērogā, neskatoties uz visām automatizācijas sistēmām un stingro vadības roku. Lai atkļūdotu problēmas, neviens sistēmām nepievienos konfigurāciju. Turklāt tie var pat nebūt iekļauti konfigurācijas modelī.

Piemēram, ugunsmÅ«ra noteikums pakeÅ”u skaita skaitÄ«Å”anai uz noteiktu IP, lai lokalizētu problēmu, ir pilnÄ«gi parasta pagaidu konfigurācija.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Komponents 10. Uzraudzības sistēma

Sākumā es negrasÄ«jos aplÅ«kot monitoringa tēmu ā€“ tā joprojām ir apjomÄ«ga, strÄ«dÄ«ga un sarežģīta tēma. Taču, lietas virzoties uz priekÅ”u, izrādÄ«jās, ka tā ir neatņemama automatizācijas sastāvdaļa. Un to nav iespējams apiet pat bez prakses.

Evolving Thought ir CI/CD procesa organiska daļa. Pēc konfigurācijas ievieÅ”anas tÄ«klā mums ir jāspēj noteikt, vai tagad ar to viss ir kārtÄ«bā.
Un mēs runājam ne tikai un ne tik daudz par saskarnes lietoÅ”anas grafikiem vai mezglu pieejamÄ«bu, bet par smalkākām lietām - nepiecieÅ”amo marÅ”rutu esamÄ«bu, atribÅ«tiem uz tiem, BGP sesiju skaitu, OSPF kaimiņiem, veiktspēju no gala lÄ«dz galam. virspakalpojumiem.
Vai ārējā servera syslogs pārtrauca pievienoties, vai SFlow aģents sabojājās, vai rindu skaits sāka pieaugt, vai arī savienojamība starp dažiem prefiksu pāriem sabojājās?

Par to mēs runāsim atseviŔķā rakstā.

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Automatizācija paŔiem mazākajiem. Nulles daļa. PlānoŔana

Secinājums

Par pamatu izvēlējos vienu no mÅ«sdienu datu centru tÄ«kla projektiem - L3 Clos Fabric ar BGP kā marÅ”rutÄ“Å”anas protokolu.
Šoreiz tīklu veidosim uz Juniper, jo tagad JunOs interfeiss ir vanlove.

PadarÄ«sim savu dzÄ«vi grÅ«tāku, izmantojot tikai atvērtā pirmkoda rÄ«kus un vairāku piegādātāju tÄ«klu, tāpēc papildus Juniper es izvēlÄ“Å”os vēl vienu laimÄ«go.

Gaidāmo publikāciju plāns ir apmēram Ŕāds:
Vispirms es runāŔu par virtuālajiem tÄ«kliem. Pirmkārt, tāpēc, ka es gribu, un, otrkārt, tāpēc, ka bez Ŕī infrastruktÅ«ras tÄ«kla projektÄ“Å”ana nebÅ«s Ä«sti skaidra.
Tad par paŔu tīkla dizainu: topoloģija, marŔrutēŔana, politikas.
Saliksim laboratorijas stendu.
Padomāsim par to un varbÅ«t praktizēsim ierÄ«ces inicializÄ“Å”anu tÄ«klā.
Un tad par katru komponentu intīmā detaļā.

Un jā, es nesolu graciozi noslēgt Å”o ciklu ar gatavu risinājumu. šŸ™‚

Noderīgas saites

  • Pirms iedziļināties sērijā, ir vērts izlasÄ«t NataÅ”as Samoiļenko grāmatu Python tÄ«kla inženieriem. Un varbÅ«t pāries kurss.
  • Noderēs arÄ« palasÄ«t RFC par datu centru rÅ«pnÄ«cu dizainu no Facebook, ko veidojis Pēteris Lapuhovs.
  • ArhitektÅ«ras dokumentācija sniegs priekÅ”statu par pārklājuma SDN darbÄ«bu. Volframa audums (agrāk Open Contrail).
Paldies

RomieŔu aiza. Komentāriem un labojumiem.
Artjoms Černobajs. Par KDPV.

Avots: www.habr.com

Pievieno komentāru