{"id":35972,"date":"2019-10-31T22:08:54","date_gmt":"2019-10-31T19:08:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\/"},"modified":"2019-10-31T22:08:54","modified_gmt":"2019-10-31T19:08:54","slug":"avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","title":{"rendered":"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>SDSM on l\u00f5ppenud, kuid kontrollimatu soov kirjutada on j\u00e4\u00e4nud. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/0\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/2da9a566e92a782cf1205a6da716d4c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Pikki aastaid on meie vend kannatanud rutiinse t\u00f6\u00f6 t\u00e4itmise alla, paludes s\u00f5rmedega edu enne kommitimist ja saamata und \u00f6iste rollback'ide t\u00f5ttu.<br \/>\nAga pimedatele aegadele tuleb l\u00f5p.<\/p>\n<p>Selle artikliga alustan seeriat teemal, kuidas <i>mulle<\/i> n\u00e4ib automatiseerimine. <br \/>\nLiikudes edasi, vaatame \u00fcle automatiseerimise etapid, muutujate salvestamise, disaini formaliseerimise, RestAPI, NETCONF, YANG, YDK ning programmeerime v\u00e4ga palju. <br \/>\n<i>Minu<\/i> t\u00e4hendab, et a) see ei ole objektiivne t\u00f5de, b) mitte absoluutne parim l\u00e4henemine, c) minu arvamus v\u00f5ib isegi liikuda esimesest viimaseni artiklini \u2014 ausalt \u00f6eldes, olen ma mustandist avaldamiseni k\u00f5ik kaks korda t\u00e4ielikult \u00fcmber kirjutanud. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Sisukord<\/h1>\n<p><\/p>\n<ol>\n<li> <b>Eesm\u00e4rgid<\/b>\n<ol>\n<li>V\u00f5rk \u2014 nagu \u00fcks organism<\/li>\n<li>Konfiguratsiooni testimine<\/li>\n<li>Versioonihaldus<\/li>\n<li>Teenuste j\u00e4lgimine ja iseparandamine<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>T\u00f6\u00f6riistad<\/b>\n<ol>\n<li>Inventari s\u00fcsteem<\/li>\n<li>IP-ruumi haldamise s\u00fcsteem<\/li>\n<li>V\u00f5rguteenuste kirjelduss\u00fcsteem<\/li>\n<li>Seadmete initsialiseerimise mehhanism<\/li>\n<li>Tarnet\u00f6\u00f6stuse agnostiline konfiguratsioonimudel<\/li>\n<li>Tarnet\u00f6\u00f6stuse spetsiifiline draiver<\/li>\n<li>Konfiguratsiooni seadmele edastamise mehhanism<\/li>\n<li>CI\/CD<\/li>\n<li>Konfiguratsiooni varundamise ja k\u00f5rvalekallete leidmise mehhanism<\/li>\n<li>J\u00e4lgimiss\u00fcsteem<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>Kokkuv\u00f5te<\/b>\n <\/li>\n<\/ol>\n<p>\nP\u00fc\u00fcan viia ADSMi veidi teistsugusesse formaati v\u00f5rreldes SDSMiga. Suured \u00fcksikasjalikud artiklid ilmuvad endiselt, kuid nende vahepeal avaldan v\u00e4ikeseid m\u00e4rkmeid igap\u00e4evasest kogemusest. P\u00fc\u00fcan siin v\u00f5idelda perfektsionismi vastu ja mitte iga\u00fcks neist \u00fcle n\u00fchkida. <\/p>\n<blockquote><p> Kuidas on naljakas, et teist korda peab l\u00e4bima sama teed.<\/p>\n<p> Esialgu pidin ma ise kirjutama artikleid v\u00f5rkudest, sest neid ei olnud venemaal.<\/p>\n<p> N\u00fc\u00fcd ei suutnud ma leida ulatuslikku dokumenti, mis s\u00fcsteematiseeriks automatiseerimise l\u00e4henemised ja anal\u00fc\u00fcsiks eespool nimetatud tehnoloogiaid lihtsate praktiliste n\u00e4idete abil.<\/p>\n<p> V\u00f5ib-olla eksin, seega visake linke v\u00e4\u00e4rtuslikele ressurssidele. Kuid see ei muuda minu otsust kirjutada, sest peamine eesm\u00e4rk on ikkagi enda \u00f5ppimine ja teiste elu lihtsustamine on meeldiv boonus, mis paitab kogemuse levitamise geeni.\n<\/p><\/blockquote>\n<p>P\u00fc\u00fcame v\u00f5tta keskmise suurusega andmekeskuse LAN DC ja t\u00f6\u00f6tada v\u00e4lja kogu automatiseerimise skeem. <br \/>\nM\u00f5ningate asjade tegemine on mul praktiliselt esmakordselt koos teiega. <\/p>\n<blockquote><p> Selles artiklis k\u00e4sitletud ideedes ja t\u00f6\u00f6riistades ei ole ma originaalne. Dmitri Figoli kanalil on suurep\u00e4rased <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=MLeiShwb7Qo&amp;list=PLSwGHYY8t8JiGI9powOXDHTAXDSs7FZqt\">vood, mis k\u00e4sitlevad seda teemat<\/a><\/noindex>. <br \/>\n Artiklid sageli kattuvad nendega mitmes aspektis. \n<\/p><\/blockquote>\n<p>LAN DC-s on 4 andmekeskust, umbes 250 l\u00fclitit, pool tosinat ruuterit ja paar tulem\u00fc\u00fcri. <br \/>\nSee ei ole Facebook, kuid piisab, et s\u00fcgavalt m\u00f5elda automatiseerimisele. <br \/>\nKuid on arvamus, et kui teil on rohkem kui 1 seade, on automatiseerimine juba vajalik. <br \/>\nTegelikult on raske ette kujutada, et keegi suudab elada ilma v\u00e4hemalt p\u00e4eva jagu skripte. <br \/>\nKuigi ma olen kuulnud, et on selliseid ettev\u00f5tteid, kus IP-aadresside arvestust hoitakse Excelis ja iga tuhande v\u00f5rgu seadme seadistamine toimub k\u00e4sitsi, iga\u00fchel on oma ainulaadne konfiguratsioon. Seda v\u00f5ib muidugi m\u00fc\u00fca kui kaasaegset kunsti, kuid inseneri tunded saavad kindlasti solvatud. <\/p>\n<h1>Eesm\u00e4rgid<\/h1>\n<p>\nN\u00fc\u00fcd seame maksimaalselt abstraktsed eesm\u00e4rgid:<\/p>\n<ul>\n<li>V\u00f5rk \u2014 nagu \u00fcks organism<\/li>\n<li>Konfiguratsiooni testimine<\/li>\n<li>V\u00f5rgu oleku versioonimine<\/li>\n<li>Teenuste j\u00e4lgimine ja iseparandamine<\/li>\n<\/ul>\n<p>\nHiljem selles artiklis vaatame, milliseid vahendeid me kasutame, ning j\u00e4rgmistes artiklites eesm\u00e4rke ja vahendeid \u00fcksikasjalikult.<\/p>\n<h2>V\u00f5rk \u2014 nagu \u00fcks organism<\/h2>\n<p>\nM\u00e4\u00e4rav fraas ts\u00fckli kohta, kuigi esmapilgul v\u00f5ib see tunduda mitte nii oluline: <b>me seadistame v\u00f5rku, mitte eraldi seadmeid<\/b>. <br \/>\nViimastel aastatel oleme n\u00e4inud suundi, et hakkame k\u00e4sitlema v\u00f5rku kui \u00fchtset tervikut, sealt ka tuuakse meie ellu <i>Tarkvara m\u00e4\u00e4ratletud v\u00f5rgundus<\/i>, <i>Intent Driven Networks<\/i> ja <i>Autonomous Networks<\/i>. <br \/>\nSest mida rakendused v\u00f5rult globaalset vajavad: \u00fchendus punktide A ja B vahel (ja m\u00f5nikord +B-J) ning isolatsioon teistest rakendustest ja kasutajatest. <\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/f8b43928ccc6d487722ce7724f5c4829.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa seega on meie \u00fclesanne selles seerias - <b>luua s\u00fcsteem<\/b>, mis toetab aktuaarseid konfiguratsioone <b>kogu v\u00f5rgus<\/b>, mis jaguneb juba aktuaarseks konfiguratsiooniks igas seadmes vastavalt tema rollile ja asukohale. <br \/>\n<b>S\u00fcsteem<\/b> v\u00f5rgu juhtimine t\u00e4hendab, et muudatuste tegemiseks p\u00f6\u00f6rdume selle poole, ning see omakorda arvutab vajaliku oleku iga seadme jaoks ja seadistab selle. <br \/>\nNii minimeerime peaaegu nulli k\u00e4sitsi CLI-s k\u00e4imist \u2014 k\u00f5ik seadistuste v\u00f5i v\u00f5rgu disaini muutused peavad olema formalisatsioonitud ja dokumenteritud \u2014 ning alles siis saavad nad rakenduda v\u00f5rgu vajalikele elementidele. <\/p>\n<blockquote><p> N\u00e4iteks, kui me oleme otsustanud, et alates n\u00fc\u00fcd peavad rack-l\u00fclitid Kazanis kuulutama kahte v\u00f5rku \u00fche asemel, siis<\/p>\n<ol>\n<li>Dokumenteerime esmalt muudatused s\u00fcsteemides<\/li>\n<li>Loome k\u00f5ikide v\u00f5rgu seadmete eesm\u00e4rgip\u00e4rase konfiguratsiooni<\/li>\n<li>K\u00e4ivitame v\u00f5rgu konfiguratsiooni v\u00e4rskendamise programmi, mis arvutab v\u00e4lja, mida igast s\u00f5lmpunktist eemaldada, mida lisada, ning viib s\u00f5lmed soovitud olekusse.<\/li>\n<\/ol>\n<p>\n Sellegipoolest teeme k\u00e4tega muudatusi ainult esimeses etapis.\n<\/p><\/blockquote>\n<h2>Konfiguratsiooni testimine<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.wikisummaries.org\/wiki\/Visible_Ops\">On teada<\/a><\/noindex>, et 80% probleemidest tekib konfiguratsiooni muutmise ajal \u2014 kaudne t\u00f5estus sellele on see, et uusaastap\u00fchade ajal on tavaliselt k\u00f5ik rahulik. <br \/>\nOlen isiklikult olnud pealtn\u00e4gija k\u00fcmnetele laiaulatuslikele seiskumistele inimliku vea t\u00f5ttu: vale k\u00e4sk, vale konfiguratsiooniharu, unustatud kogukond, kustutatud MPLS globaalselt marsruuteril, seadistatud viis seadet, kuid kuuendal ei m\u00e4rgatud viga, commit\u2019itud vanad muudatused, mille tegi keegi teine. Stsenaariume on tohutult. <\/p>\n<p>Automaatika v\u00f5imaldab meil teha v\u00e4hem vigu, kuid suuremas ulatuses. Nii saab \u00fche seadme asemel kogu v\u00f5rku segamini ajada. <\/p>\n<p>Aja jooksul on meie vanaisad kontrollinud sisseviidud muudatuste \u00f5igsust terava vaatamise, rauast munade ja v\u00f5rgu t\u00f6\u00f6v\u00f5ime abil p\u00e4rast nende kasutuselev\u00f5ttu. <br \/>\nNeed vanaisad, kelle t\u00f6\u00f6 t\u00f5i kaasa seiskumist ja katastroofilisi kahjusid, j\u00e4tavad v\u00e4hem j\u00e4reltulijaid ja peaksid aja jooksul v\u00e4lja surema, kuid evolutsioon on aeglane protsess, ja seet\u00f5ttu ei kontrolli k\u00f5ik muudetud kohandusi eelnevalt laboris. <br \/>\nKuid edusammude tipus on need, kes automatiseerivad konfiguratsiooni testimise protsessi ning selle edasise rakendamise v\u00f5rku. Teisis\u00f5nu \u2014 laenatud CI\/CD protseduur (<noindex><a rel=\"nofollow\" href=\"https:\/\/img.devrant.com\/devrant\/rant\/r_1535091_ErSUL.jpg\">Continuous Integration, Continuous Deployment<\/a><\/noindex>) arendajatelt.<br \/>\n\u00dches osas vaatame, kuidas seda teostada versioonihalduss\u00fcsteemi abil, t\u00f5en\u00e4oliselt Githubi kaudu. <\/p>\n<blockquote><p> Niipea kui olete harjunud m\u00f5ttega v\u00f5rgu CI\/CD-st, tundub konfiguratsiooni kontrollimise meetod selle rakendamise kaudu t\u00f6\u00f6v\u00f5rgus t\u00f5eliselt varajanes keskaja ilmalikkusena. Umbes nagu l\u00fc\u00fca haamriga tuumapead.\n<\/p><\/blockquote>\n<p>Ideede loomulik j\u00e4tk v\u00f5rgu juhtimisest ja CI\/CD-st on t\u00e4ielik konfiguratsiooni versioonihaldus. <b>s\u00fcsteemi<\/b> toimub. <\/p>\n<h2>Versioonihaldus<\/h2>\n<p>\nMe v\u00f5tame arvesse, et igasuguste muudatuste korral, isegi k\u00f5ige v\u00e4hematel, isegi \u00fchel n\u00e4htamatul seadmel, liigub kogu v\u00f5rk \u00fche oleku pealt teise.<br \/>\nJa me ei tee kunagi k\u00e4sku seadmes, me muudame v\u00f5rgu seisundit. <br \/>\nKuidas nimetame neid olekuid versioonideks?<\/p>\n<p>Oletame, et praegune versioon on 1.0.0.<br \/>\nKas Loopback-liidese IP-aadress muutus \u00fche ToR-i peal? See on v\u00e4ike versioon - saab numbri 1.0.1.<br \/>\nKui muutsime BGP-s marsruutide impordi poliitikaid - see on juba t\u00f5sisem - 1.1.0.<br \/>\nOtsustasime loobuda IGP-st ja minna ainult BGP-le - see on juba radikaalne disaini muutus - 2.0.0.<\/p>\n<p>Samuti v\u00f5ivad erinevatel andmekeskustel olla erinevad versioonid - v\u00f5rk areneb, paigaldatakse uus varustus, kuskil lisatakse uusi spine-tasemeid, kuskil - mitte jne.<\/p>\n<p>K\u00fcsimus <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\">semantiline versioonimine<\/a><\/noindex> me r\u00e4\u00e4gime sellest eraldi artiklis.<\/p>\n<p>Korrutan - iga muutmine (v\u00e4lja arvatud silumise k\u00e4sud) on versiooni uuendamine. Administraatorid peavad olema teavitatud muudatustest kehtivast versioonist.<\/p>\n<p>Sama kehtib muudatuste tagasiv\u00f5tmise kohta - see ei t\u00e4henda viimaste k\u00e4skude t\u00fchistamist, see ei ole seadme operatsioonis\u00fcsteemi kaudu rollback - see t\u00e4hendab, et kogu v\u00f5rk viiakse uude (vana) versiooni. <\/p>\n<h2>Teenuste j\u00e4lgimine ja iseparandamine<\/h2>\n<p>\nSee iseeneslik \u00fclesanne kaasaegsetes v\u00f5rkudes j\u00f5uab uuele tasemele.<br \/>\nTihti praktiseerivad suured teenusepakkujad l\u00e4henemist, et kukkunud teenus tuleb v\u00e4ga kiiresti l\u00f5petada ja uus k\u00e4ivitada, selle asemel, et selgitada v\u00e4lja, mis juhtus.<br \/>\n\u00abV\u00e4ga\u00bb t\u00e4hendab, et igast k\u00fcljest tuleb rikkalikult katta j\u00e4lgimisega, mis leiab sekundite jooksul isegi k\u00f5ige v\u00e4iksemad k\u00f5rvalekalded normist.<br \/>\nJa siin ei piisa enam harilikest m\u00f5\u00f5tmetest, nagu liidese koormus v\u00f5i s\u00f5lme k\u00e4ttesaadavus. Ka ei piisa jaamas j\u00e4lgimise k\u00e4sitsi j\u00e4lgimisest.<br \/>\nPaljude asjade jaoks peaks olema <noindex><a rel=\"nofollow\" href=\"https:\/\/www.irisns.com\/self-healing-network-tomorrow-look-like\/\">Self-Healing<\/a><\/noindex> \u2014 j\u00e4lgimised s\u00fcttisid punaselt ja l\u00e4ksid ise plaastrit viima sinna, kus valutab.<\/p>\n<p>Ja siin me j\u00e4lgime mitte ainult \u00fcksikute seadmete, vaid ka kogu v\u00f5rgu tervist, ja nii valgekarbiga, mis on suhteliselt arusaadav, kui ka musta karbiga, mis on juba keerulisem.<\/p>\n<p>\nMida meil on vaja selliste ambitsioonikate plaanide elluviimiseks?<\/p>\n<ul>\n<li>Omada k\u00f5igi v\u00f5rgus olevate seadmete nimekirja, nende asukohti, rolle, mudeleid, tarkvara versioone. <br \/>\n <i>kazan-leaf-1.lmu.net, Kazan, leaf, Juniper QFX 5120, R18.3.<\/i>\n <\/li>\n<li>Omada v\u00f5rguteenuste kirjeldamise s\u00fcsteemi. <br \/>\n <i>IGP, BGP, L2\/3VPN, Policy, ACL, NTP, SSH.<\/i><\/li>\n<li>Oskama seadme algk\u00e4ivitamiseks. <br \/>\n <i>Hostname, Mgmt IP, Mgmt Route, Users, RSA-Keys, LLDP, NETCONF<\/i><\/li>\n<li>Seadme konfigureerimine ja konfiguratsiooni viimine soovitud (sealhulgas ka varasema) versioonini.<\/li>\n<li>Konfiguratsiooni testimine<\/li>\n<li>Perioodiliselt kontrollida k\u00f5ikide seadmete olekut, et tuvastada k\u00f5rvalekaldeid aktuaalsest ning teavitada vastavaid osapoole.<br \/>\n <i>\u00d6\u00f6sel lisas keegi vaikselt reegli ACL-i.<\/i>.<\/li>\n<li>J\u00e4lgida t\u00f6\u00f6kindlust.<\/li>\n<\/ul>\n<p><\/p>\n<h1>T\u00f6\u00f6riistad<\/h1>\n<p>\nTundub piisavalt keeruline, et alustada projekti dekomponeerimist komponentideks.<\/p>\n<p>Ja neid on k\u00fcmme:<\/p>\n<ol>\n<li>Inventari s\u00fcsteem<\/li>\n<li>IP-ruumi haldamise s\u00fcsteem<\/li>\n<li>V\u00f5rguteenuste kirjelduss\u00fcsteem<\/li>\n<li>Seadmete initsialiseerimise mehhanism<\/li>\n<li>Tarnet\u00f6\u00f6stuse agnostiline konfiguratsioonimudel<\/li>\n<li>Tarnet\u00f6\u00f6stuse spetsiifiline draiver<\/li>\n<li>Konfiguratsiooni seadmele edastamise mehhanism<\/li>\n<li>CI\/CD<\/li>\n<li>Konfiguratsiooni varundamise ja k\u00f5rvalekallete leidmise mehhanism<\/li>\n<li>J\u00e4lgimiss\u00fcsteem<\/li>\n<\/ol>\n<blockquote><p> See on muide n\u00e4ide sellest, kuidas on muutunud arusaam ts\u00fckli eesm\u00e4rkidest \u2014 komponente k\u00e4sitlevas mustandis oli neid neli.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/91132e29d359a4042b213529511f6d7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIllustreerimisel kujutasin ma ette k\u00f5iki komponente ning seadmet. <br \/>\n\u00dcksikute komponente omavahel suhtlevad. <br \/>\nMida suurem on plokk, seda rohkem t\u00e4helepanu tuleb sellele komponendile p\u00f6\u00f6rata. <\/p>\n<p><\/p>\n<h2>Komponent 1. Inventeerimiss\u00fcsteem<\/h2>\n<p>\nIlmselgelt tahame me teada, milline varustus kus asub ja millele on see \u00fchendatud. <br \/>\nInventeerimiss\u00fcsteem on igasuguste ettev\u00f5tete jaoks h\u00e4davajalik osa. <br \/>\nSageli on ettev\u00f5ted seotud spetsiifiliste \u00fclesannete lahendamiseks erineva inventeerimiss\u00fcsteemiga, mis on m\u00f5eldud v\u00f5rguseadmetele. <br \/>\nArtiklite ts\u00fckli kontekstis nimetame seda DCIM-iks \u2014 Andmekeskuse infrastruktuuri haldamine. Kuigi DCIM m\u00f5iste h\u00f5lmab rangelt v\u00f5ttes palju rohkem.<\/p>\n<p>Meie \u00fclesannete jaoks salvestame siin j\u00e4rgmised andmed seadme kohta:<\/p>\n<ul>\n<li>Inventeerimisnumber<\/li>\n<li>Nimi\/kuva <\/li>\n<li>Mudel (<i>Huawei CE12800, Juniper QFX5120 jt<\/i>)<\/li>\n<li>Iseloomulikud parameetrid (<i>plaadid, liidesed jt<\/i>)<\/li>\n<li>Roll (<i>Leaf, Spine, Border Router jt<\/i>)<\/li>\n<li>Asukoht (<i>regioon, linn, andmekeskus, Rack, unit<\/i>)<\/li>\n<li>Seadmete vaheline interconnect<\/li>\n<li>V\u00f5rgu topoloogia<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/fac708b1bf3640a943f90247bff8216e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn selgelt arusaadav, et ka meie tahame teada kogu seda teavet. <br \/>\nAga kas see aitab automatiseerimise eesm\u00e4rkidel? <br \/>\nIlma tingimata. <br \/>\nN\u00e4iteks teame, et selles andmekeskuses Leaf-l\u00fclititel, kui need on Huawei, peavad krahhi filtreerimiseks ACL-d rakendama VLAN-ide peal, ja kui need on Juniper, siis unit 0 f\u00fc\u00fcsilise liidese peal. <br \/>\nV\u00f5i peab uue Syslog-serveri paigaldama k\u00f5ikidele piirkonna borderitele.<\/p>\n<p>Selles s\u00fcsteemis salvestame me ka virtuaalsed v\u00f5rguseadmed, n\u00e4iteks virtuaalsed marsruuterid v\u00f5i route-reflektorid. V\u00f5ime lisada DNS-serverid, NTP, Syslog ja \u00fcldiselt k\u00f5ike, mis on kuidagi seotud v\u00f5rguga. <\/p>\n<h2>Komponent 2. IP-ruumi haldamise s\u00fcsteem<\/h2>\n<p>\nJah, ka meie ajal on inimesi, kes peavad Exceli faili abil arvestust prefiksite ja IP-aadresside \u00fcle. Kuid kaasaegne l\u00e4henemine on siiski andmebaas, millel on Nginx\/Apache frontend, API ja laiad funktsioonid IP-aadresside ja v\u00f5rkude haldamiseks, jagatuna VRF-ideks.<br \/>\nIPAM \u2014 IP Aadressi Halduse s\u00fcsteem. <\/p>\n<p>Meie vajaduste jaoks salvestame selles j\u00e4rgmise teabe:<\/p>\n<ul>\n<li>VLAN<\/li>\n<li>VRF<\/li>\n<li>V\u00f5rgud\/Alav\u00f5rgud<\/li>\n<li>IP-aadressid<\/li>\n<li>Aadresside sidumine seadmetega, v\u00f5rkude sidumine asukohtade ja VLAN-numbritega<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/6d476d48f95ed663d84cae052a86d129.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJ\u00e4lle on selge, et tahame olla kindlad, et m\u00e4\u00e4rates ToR-i Loopbackile uue IP-aadressi, ei komista me selle \u00fcle, et see on juba kellelegi antud. V\u00f5i et me ei ole sama prefiksi kasutanud kaks korda v\u00f5rgu erinevates otsades. <br \/>\nAga kuidas see aitab automatiseerimisele? <br \/>\nLihtne. <br \/>\nK\u00fcsime s\u00fcsteemist prefiksi, millel on Loopback'i roll ja kus on v\u00e4ljastamiseks vabade IP-aadresside olemasolu \u2014 kui see leitakse, v\u00e4ljastame aadressi, kui ei, k\u00fcsime uue prefiksi loomist. <br \/>\nV\u00f5i seadme konfiguratsiooni loomisel saame samast s\u00fcsteemist teada, millises VRF-is peaks liides olema. <br \/>\nJa kui k\u00e4ivitame uue serveri, l\u00e4heb skript s\u00fcsteemi, et teada saada, millises serveri l\u00fclitises, millises porti ja milline alav\u00f5rk on liidesele m\u00e4\u00e4ratud \u2014 sellest ka v\u00e4ljastatakse serveri aadress. <\/p>\n<p>\nTuleb soov DCIM ja IPAM \u00fchendada \u00fcheks s\u00fcsteemiks, et mitte dubleerida funktsioone ja mitte hooldada kahte sarnast entsyklopaediate. <br \/>\nNii me ka teeme. <\/p>\n<h2>Komponent 3. V\u00f5rguteenuste kirjelduss\u00fcsteem<\/h2>\n<p>\nKui esimesed kaks s\u00fcsteemi salvestavad muutujaid, mida tuleb kuidagi kasutada, siis kolmas kirjeldab igale seadme rollile, kuidas see peaks olema seadistatud. <br \/>\nTasub v\u00e4lja tuua kaks erinevat t\u00fc\u00fcpi v\u00f5rguteenuseid: <\/p>\n<ul>\n<li>Infrastruktuuri<\/li>\n<li>Klienditeenuseid.<\/li>\n<\/ul>\n<p>Esimesed on m\u00f5eldud seadme p\u00f5hiv\u00f5imaluste ja halduse tagamiseks. Siia kuuluvad VTY, SNMP, NTP, Syslog, AAA, marsruutimisprotokollid, CoPP jne. <br \/>\nTeised korraldavad kliendile teenuse: MPLS L2\/L3VPN, GRE, VXLAN, VLAN, L2TP jne. <br \/>\nMuidugi on ka piirjuhtumeid \u2014 kuhu liigitada MPLS LDP, BGP? Ja marsruutimisprotokolle v\u00f5ivad kasutada kliendid. Kuid see pole p\u00f5him\u00f5tteline. <\/p>\n<p>M\u00f5lemad teenuste t\u00fc\u00fcbid jaotuvad konfiguratsiooni primitiivideks:<\/p>\n<ul>\n<li>f\u00fc\u00fcsilised ja loogilised liidesed (tag, anteg, mtu)<\/li>\n<li>IP-aadressid ja VRF (IP, IPv6, VRF)<\/li>\n<li>ACL ja liikluse t\u00f6\u00f6tlemise poliitikad<\/li>\n<li>Protokollid (IGP, BGP, MPLS)<\/li>\n<li>Marsruutimise poliitikad (prefiksilisted, kogukonnad, ASN-filtrid).<\/li>\n<li>Teenindavad teenused (SSH, NTP, LLDP, Syslog\u2026)<\/li>\n<li>Itd.<\/li>\n<\/ul>\n<p>\nKuidas me seda t\u00e4pselt teeme, selle \u00fcle pole mul veel aimugi. R\u00e4\u00e4gime sellest eraldi artiklis.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/092bc3a4b875f4a6422ee13fb580ba4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui n\u00fc\u00fcd pisut elul\u00e4hedasemalt r\u00e4\u00e4kida, siis v\u00f5iksime kirjeldada, et<br \/>\nLeaf-l\u00fcliti peab omama BGP-seansse k\u00f5igi \u00fchendatud Spine-l\u00fclititega, importima protsessi \u00fchendatud v\u00f5rgud, v\u00f5tma Spine-l\u00fclititelt vastu ainult teatud prefiksiga v\u00f5rke. Piirama CoPP IPv6 ND kuni 10 pps jne. <br \/>\nSpines omakorda hoiab seansse k\u00f5igi \u00fchendatud lehtede kanssa, toimides juurreflektoritena, ja v\u00f5tab neilt vastu ainult teatud pikkusega marsruute ja teatud kogukonnaga.<\/p>\n<h2>Komponent 4. Seadme initsialiseerimise mehhanism<\/h2>\n<p>\nSelle pealkirja all koondan mitmeid tegevusi, mis peavad toimuma, et seade ilmuks radaritele ja sellele saaks kaugelt ligi p\u00e4\u00e4seda.<\/p>\n<ol>\n<li>Seadmise seadme varude s\u00fcsteemi.<\/li>\n<li>Eraldada haldust IP-aadress.<\/li>\n<li>Seada seadmele sissep\u00e4\u00e4s: <br \/>\nHostname, haldus IP-aadress, marsruut haldusv\u00f5rku, kasutajad, SSH-v\u00f5tmed, protokollid \u2014 telnet\/SSH\/NETCONF<\/li>\n<\/ol>\n<p>Siin on kolm l\u00e4henemist:<\/p>\n<ul>\n<li>T\u00e4ielikult k\u00e4sitsi. Seade toimetatakse stendile, kus tavainimene sisestab selle s\u00fcsteemidesse, \u00fchendab konsooli ja seadistab. See v\u00f5ib t\u00f6\u00f6tada v\u00e4ikestes staatilistes v\u00f5rkudes.<\/li>\n<li>ZTP \u2014 Zero Touch Provisioning. Riistvara tuli, seisis paigal, sai DHCP kaudu aadressi, l\u00e4ks spetsiaalsele serverile ja seadistus automaatselt. <\/li>\n<li>Konsoliserverite infrastruktuur, kus esialgne seadistamine toimub automaatre\u017eiimis konsoolipordi kaudu.<\/li>\n<\/ul>\n<p>K\u00f5ik kolm arutame eraldi artiklis.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/6d8d061e53b508edbbcbd98fe496ca91.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 5. Tootjast s\u00f5ltumatu konfiguratsioonimudel<\/h2>\n<p>\nSenini olid k\u00f5ik s\u00fcsteemid killustatud t\u00fckkidest, mis andsid muutlikke ja deklaratiivseid kirjelduse sellest, mida me v\u00f5rgus n\u00e4ha tahame. Kuid varem v\u00f5i hiljem tuleb tegeleda konkreetsusega. <br \/>\nSellel etapil kombineeritakse iga konkreetse seadme jaoks primitiivid, teenused ja muutujad konfiguratsioonimudeliks, mis kirjeldab tegelikku kogu konfiguratsiooni konkreetse seadme jaoks, vaid tootjast s\u00f5ltumatus vormis. <br \/>\nMida see samm annab? Miks mitte kohe luua seadme konfiguratsiooni, mille saab lihtsalt laadida? <br \/>\nTegelikult v\u00f5imaldab see lahendada kolm \u00fclesannet:<\/p>\n<ol>\n<li> \u00c4ra kohanda ennast konkreetse seadme suhtlusliidese j\u00e4rgi. \u00dcksk\u00f5ik, kas see on CLI, NETCONF, RESTCONF, SNMP \u2014 mudel j\u00e4\u00e4b samaks.<\/li>\n<li> \u00c4ra hoia mallide\/skripti arvu vastavalt v\u00f5rgu tarnijatele, ja juhul kui disain muutub, muuda \u00fches ja samas kohas mitmes kohas.<\/li>\n<li> Laadi seadme konfiguratsioon (varukoopiast), paiguta see t\u00e4pselt sellisesse mudelisse ja compare the target configuration with the existing one to calculate the delta and prepare the configuration patch that will modify only those parts that are necessary or to identify deviations.<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/a154c42ebe7978fcc5b2ce4f235516c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle etapi tulemusena saame tarnijast s\u00f5ltumatu konfiguratsiooni.<\/p>\n<h2>Komponent 6. Tarnijale spetsiifiline liidese draiver<\/h2>\n<p>\n\u00c4rge looge endale illusioone, et kunagi saab Cisco seadistada samamoodi nagu Juniperit, saates neile t\u00e4iesti identsed k\u00e4sud. Hoolimata valge kastiga seadmete kasvavast populaarsusest ning NETCONF-i, RESTCONF-i ja OpenConfigi toetuse ilmumisest, ei ole nende protokollide kaudu edastatav konkreetne sisu eri tootjate vahel identsed ning see on \u00fcks nende konkurentsieelistest, millest nad h\u00f5lpsasti loobuda ei kavatse. <br \/>\nSee on umbes sama, nagu OpenContrail ja OpenStack, milles REST API on nende NorthBound-liidese peamine rusikas, ootavad t\u00e4iesti erinevaid kutsungeid. <\/p>\n<p>Nii et viienda sammu k\u00e4igus peab tarnijast s\u00f5ltumatu mudel v\u00f5tma kujul, milles see edasi l\u00e4heb riistvarale. <br \/>\nJa siin on k\u00f5ik vahendid head (ei ole): CLI, NETCONF, RESTCONF, SNMP lihtsalt mitte.<\/p>\n<p>Seet\u00f5ttu vajame draiverit, mis eelneva sammu tulemuse sisestab konkreetse tarnija vajaliku formaati: CLI k\u00e4skude kogum, XML struktuur.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/6ed8e935183075fda60a209477f84937.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 7. Konfiguratsiooni edastamise mehhanism seadmele<\/h2>\n<p>\nMe oleme konfiguratsiooni genereerinud, kuid see tuleb seadmetesse edastada \u2014 ja ilmselgelt mitte k\u00e4sitsi. <br \/>\n<b>Esiteks<\/b>, see seab meie ees k\u00fcsimuse, millist transporti kasutame? Ja valik t\u00e4nap\u00e4eval on juba suur:<\/p>\n<ul>\n<li>CLI (telnet, ssh)<\/li>\n<li>SNMP<\/li>\n<li>NETCONF<\/li>\n<li>RESTCONF<\/li>\n<li>REST API<\/li>\n<li>OpenFlow (kuigi see j\u00e4\u00e4b nimekirjast v\u00e4lja, kuna see on viis edastada FIB, mitte konfigureerimist)<\/li>\n<\/ul>\n<p>Selgitame siin asjad selgeks. CLI on p\u00e4rand. SNMP\u2026 khette.<br \/>\nRESTCONF \u2014 veel teadmata asi, REST API-d toetab peaaegu keegi. Seet\u00f5ttu keskendume ts\u00fcklis NETCONF-ile.<\/p>\n<p>Nagu lugeja juba m\u00f5istis, oleme selle hetkeks liidese osas juba otsuse teinud \u2014 eelmise sammu tulemus on esitatud valitud liidese formaadis.<\/p>\n<p><b>Teiseks<\/b>, aga milliste t\u00f6\u00f6riistade abil me seda teeme?<br \/>\nSiin on valik samuti suur:<\/p>\n<ul>\n<li>Oma skript v\u00f5i platvorm. Varustame end ncclient ja asyncIO\u2019ga ning teeme k\u00f5ik ise. Mis takistab meil s\u00fcsteemi deploy\u2019imist nullist?<\/li>\n<li>Ansible oma rikka v\u00f5rgumoodulite raamatukoguga.<\/li>\n<li>Salt, mis teeb v\u00f5rgu osas vaevalt midagi ja seondub Napalmiga.<\/li>\n<li>Isegi Napalm, mis tunneb paar tarnijat ja k\u00f5ik, head aega.<\/li>\n<li>Nornir \u2014 veel \u00fcks loom, kelle me tulevikus dissekteerime.<\/li>\n<\/ul>\n<p>Siin pole veel lemmik valitud \u2014 uurime.<\/p>\n<p>Mis on siin veel oluline? Konfiguratsiooni rakendamise tagaj\u00e4rjed. <br \/>\nOlgu see edukas v\u00f5i mitte. Kas juurdep\u00e4\u00e4s seadmele on s\u00e4ilinud v\u00f5i mitte. <br \/>\nTundub, et siin aitab commit koos kinnitamise ja seadmele laadimise valideerimisega. <br \/>\nSee koos \u00f5ige NETCONF\u2019i rakendamisega kitsendab sobivate seadmete ringi \u2014 tavalised commit\u2019id ei toeta palju tootjaid. Kuid see on lihtsalt \u00fcks vajalik tingimus RFP\u2019s. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81_%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F\">. L\u00f5ppude l\u00f5puks ei muretse keegi selle p\u00e4rast, et \u00fckski Venemaa tootja ei sobi 32*100GE liidese tingimustega. V\u00f5i muretseb?<\/a><\/noindex>Komponent 8. CI\/CD<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/59d8ad3b55b9c107642550bb06fc759a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Selleks hetkeks on meil juba k\u00f5ikide v\u00f5rguseadmete konfiguratsioon valmis.<\/h2>\n<p>\nMa \u00fctlen \u00abk\u00f5ikide\u00bb, sest r\u00e4\u00e4gime v\u00f5rguseisundi versioonimisest. Ja isegi kui on vajalik muuta ainult \u00fche l\u00fcliti seadeid, arvutatakse muudatused kogu v\u00f5rgu jaoks. Ilmselgelt v\u00f5ivad need enamikus s\u00f5lmedes olla nullid.<br \/>\nKuid nagu juba mainitud, me ei ole ju barbarid, et k\u00f5ik kohe tootmisse saata.<\/p>\n<p>Genereeritud konfiguratsioon peab esmalt l\u00e4bi minema Pipeline CI\/CD\u2019st. <br \/>\nCI\/CD t\u00e4hendab Continuous Integration, Continuous Deployment. See on l\u00e4henemine, kus meeskond ei postita uut suuremat versiooni iga kuue kuu tagant, asendades t\u00e4ielikult vana, vaid rakendab pidevalt j\u00e4rkj\u00e4rgulisi uusi funktsioone v\u00e4ikestes osades, millest iga\u00fcht testitakse p\u00f5hjalikult \u00fchilduvuse, turvalisuse ja t\u00f6\u00f6kindluse osas.<\/p>\n<blockquote><p>CI\/CD t\u00e4hendab pidevat integreerimist ja pidevat juurutamist. See on l\u00e4henemine, kus meeskond ei avalda uut peamist versiooni iga kuue kuu tagant, asendades t\u00e4ielikult vana, vaid rakendab regulaarselt j\u00e4rkj\u00e4rguliselt uut funktsionaalsust v\u00e4ikeste osade kaupa, millest iga\u00fcht testitakse p\u00f5hjalikult \u00fchilduvuse, turvalisuse ja toimivuse osas.\n<\/p><\/blockquote>\n<p>Selle jaoks on meil versioonihalduss\u00fcsteem, mis j\u00e4lgib konfiguratsiooni muudatusi, laboratoorium, kus testitakse, kas klienditeenus ei katke, j\u00e4lgimiss\u00fcsteem, mis kontrollib seda ja viimane samm - muudatuste juurutamine tootmisv\u00f5rku.<\/p>\n<p>V\u00e4lja arvatud silumisv\u00f5imalused, peavad k\u00f5ik muudatused v\u00f5rgus l\u00e4bima CI\/CD torujuhtme - see on meie rahu ja pikka ja \u00f5nnelikku karj\u00e4\u00e4ri tagatis.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/101a5ff87c7a9c7b6776aca9daf762a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 9. Varundus- ja k\u00f5rvalekaldumise tuvastamise s\u00fcsteem<\/h2>\n<p>\nVarundustest ei ole m\u00f5tet \u00fcleliia r\u00e4\u00e4kida. <br \/>\nLihtsalt salvestame need kas cron'i j\u00e4rgi v\u00f5i konfiguratsiooni muutuse korral git'i.<\/p>\n<p>Kuid teine osa on huvitavam - nende varukoopiate eest peab keegi j\u00e4lgima. Ja m\u00f5nel juhul peab see keegi minema ja taastama k\u00f5ik nagu enne, teistes aga \u00fctlema kellelegi, et midagi on valesti. <br \/>\nN\u00e4iteks, kui tekib uus kasutaja, keda ei ole muutujaid kirja pandud, peab ta olema eemaldatud v\u00f5imalikult kaugele h\u00e4kkimisest. Ja kui uus tulem\u00fc\u00fcri reegel - parem mitte puutuda, v\u00f5ib-olla on keegi lihtsalt silumise sisse l\u00fclitanud v\u00f5i on uus teenus, kes ei ole regulatiivselt kirja pannud, kuid keegi on juba temaga liitunud.<\/p>\n<p>M\u00f5ningatest v\u00e4ikestest k\u00f5rvalekaldumistest kogu v\u00f5rgu ulatuses me ei p\u00e4\u00e4se, vaatamata mis tahes automatiseerimiss\u00fcsteemidele ja tugevale juhtimisele. Probleemide silumiseks ei hakka keegi konfigureerimist s\u00fcsteemidesse viima. R\u00e4\u00e4kimata sellest, et neid v\u00f5ib isegi konfigureerimis mudel v\u00e4lja ei n\u00e4ha. <\/p>\n<blockquote><p>N\u00e4iteks, tulem\u00fc\u00fcri reegel teatud IP-dega pakettide arvu arvestamiseks, probleemi lokaliseerimiseks - t\u00e4iesti tavaline ajutine konfiguratsioon.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/390f78139d336f1fc2c60573bccfe76c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 10. J\u00e4lgimiss\u00fcsteem<\/h2>\n<p>\nAlguses ei kavatsenud ma j\u00e4lgimisteemat k\u00e4sitleda - see on mahukas, vaieldav ja keeruline teema. Kuid protsessi k\u00e4igus osutus see automatiseerimise lahutamatuks osaks. Ja mitte mingil juhul ei saa seda t\u00f5husalt ignoreerida. <\/p>\n<p>M\u00f5tte arendamine - see on orgaaniline osa CI\/CD protsessist. P\u00e4rast konfiguratsiooni juurutamist v\u00f5rgus peame olema suutlikud m\u00e4\u00e4rama, kas k\u00f5ik on n\u00fc\u00fcd korras. <br \/>\nJa jutt ei ole ainult ja mitte niiv\u00f5rd liideste kasutamise graafikutest v\u00f5i s\u00f5lmede k\u00e4ttesaadavusest, vaid peenemates asjades - vajalike marsruutide olemasolu, nende atribuudid, BGP sessioonide arv, OSPF naabrid, end-to-end funktsionaalsus k\u00f5rgema taseme teenustes.<br \/>\nKas te ei ole l\u00f5petanud logide kogumist v\u00e4liserverisse, kas SFlow-agent ei ole katki l\u00e4inud, kas j\u00e4rjekordades ei ole hakanud dropid kasvama ja kas m\u00f5ni prefiksite paar ei ole kaotanud \u00fchendust?<\/p>\n<p>Me m\u00f5tleme selle \u00fcle eraldi artiklis.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/08aeee4939081abb21e61abadd0ce5de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/13c186070c85fd00f7b6923df154f1b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h1>Kokkuv\u00f5te<\/h1>\n<p>\nAluseks valisin \u00fche t\u00e4nap\u00e4eva andmekeskuse v\u00f5rgudisaini \u2014 L3 Clos Fabric BGP marsruutimisprotokolliga.<br \/>\nSeekord ehitame v\u00f5rku Juniperi p\u00f5hjal, sest n\u00fc\u00fcd on JunOSi liides sarnane vaniljele.<\/p>\n<p>Teeme oma elu keerulisemaks, kasutades ainult avatud l\u00e4htekoodiga t\u00f6\u00f6riistu ja mitme tarnija v\u00f5rku \u2013 seet\u00f5ttu valin juhuslikult veel \u00fche \u00f5nneliku m\u00fc\u00fcja lisaks Juniperile.<\/p>\n<p>L\u00e4hitulevikus plaanid on j\u00e4rgmised:<br \/>\nEsiteks r\u00e4\u00e4gin virtuaalv\u00f5rkudest. Esiteks, sest ma soovin seda, ja teiseks, sest ilma selleta ei ole infrastruktuuri v\u00f5rgu disain v\u00e4ga arusaadav.<br \/>\nSiis r\u00e4\u00e4gime v\u00f5rgu disainist: topoloogiast, marsruutimisest ja poliitikatest.<br \/>\nKogume laboriseina.<br \/>\nM\u00f5tleme ja v\u00f5ib-olla harjutame seadme sisse seadmist v\u00f5rgus.<br \/>\nJa p\u00e4rast r\u00e4\u00e4gin igast komponendist intiimsetes detailides.<\/p>\n<p>Ja jah, ma ei lubanud elegantset l\u00f5petamist selle sarja valmislahendusega. \ud83d\ude42<\/p>\n<h5>Kasulikud lingid<\/h5>\n<p><\/p>\n<ul>\n<li>Enne s\u00fcvenemist seeriasse on soovitatav lugeda Natasha Samoylenko raamatut <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.gitbook.io\/pyneng\/\">Python v\u00f5rguinseneridele<\/a><\/noindex>. V\u00f5ib-olla v\u00f5iks ka l\u00e4bida <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.github.io\/pyneng-online\/\">kursus<\/a><\/noindex>.<\/li>\n<li>Kasulik oleks lugeda ka <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7938\">RFC<\/a><\/noindex> Facebooki andmekeskuse tehastest artiklit Peeter Lapukhovi autorilt.<\/li>\n<li>Overlay SDN-i toimimisest annab \u00fclevaate dokumentatsioon arhitektuuri kohta. <noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/Tungsten-Fabric-Architecture.html\">Tungsten Fabric<\/a><\/noindex> (varem Open Contrail).<\/li>\n<\/ul>\n<h5>Ait\u00e4h<\/h5>\n<p>\nRoman Gorge. T\u00e4nu kommentaaride ja paranduste eest.<br \/>\nArtyom Chernobai. KDPV eest.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/453516\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c. \u0414\u043e\u043b\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u043d\u0430\u0448 \u0431\u0440\u0430\u0442 \u0441\u0442\u0440\u0430\u0434\u0430\u043b \u043e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043b \u043f\u0430\u043b\u044c\u0446\u044b \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u043d\u0435\u0434\u043e\u0441\u044b\u043f\u0430\u043b \u0438\u0437-\u0437\u0430 \u043d\u043e\u0447\u043d\u044b\u0445 \u0440\u043e\u043b\u0431\u044d\u043a\u043e\u0432. \u041d\u043e \u0442\u0451\u043c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0435\u0446. \u042d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u044f \u043d\u0430\u0447\u043d\u0443 \u0441\u0435\u0440\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0441 RestAPI, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26891,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u0430\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosa. Planeerimine | ProHoster","description":"SDSM on l\u00f5ppenud, kuid kontrollimatu soov kirjutada on j\u00e4\u00e4nud.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u0430\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 | ProHoster","og:description":"\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:08:54+00:00","article:modified_time":"2019-10-31T19:08:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35972","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 01:28:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 09:58:22","updated":"2026-01-22 01:28:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=35972"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35972\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/26891"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=35972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=35972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=35972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}