{"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. Nullosaline. Planeerimine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>SDSMi l\u00f5ppes, aga 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. Nullosaline. 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 tegemise all, ristunud s\u00f5rmed enne commit'i ja unetuks j\u00e4\u00e4nud \u00f6iste rollback'ide t\u00f5ttu.<br \/>\nAga tumedatele aegadele tuleb l\u00f5pp.<\/p>\n<p>Selle artikliga alustan seeriat sellest, kuidas <i>mulle<\/i> automaatika paistab. <br \/>\nTeeme \u00fcle etapid automaatikas, muutuja salvestamise, disaini formaliseerimise, RestAPI, NETCONF, YANG, YDK ja programmeerime palju. <br \/>\n<i>Minu<\/i> t\u00e4hendab, et a) see pole objektiivne t\u00f5de, b) mitte absoluutne parim l\u00e4henemine c) minu vaated v\u00f5ivad isegi liikuda esimesest artiklist viimase juurde \u2014 ausalt \u00f6eldes, mustandist avaldamiseni olen k\u00f5ik t\u00e4ielikult kaks korda \u00fcmber kirjutanud. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Sisu<\/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>Versioonimine<\/li>\n<li>Teenuste j\u00e4lgimine ja enese taastamine<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>T\u00f6\u00f6riistad<\/b>\n<ol>\n<li>Inventeerimisse s\u00fcsteem<\/li>\n<li>IP-ruumi haldamise s\u00fcsteem<\/li>\n<li>V\u00f5rguteenuste kirjeldamise s\u00fcsteem<\/li>\n<li>Seadmete initsialiseerimise mehhanism<\/li>\n<li>M\u00fc\u00fcgi s\u00f5ltumatu konfiguratsioonimudel<\/li>\n<li>M\u00fc\u00fcja-spetsiifiline seadme draiver<\/li>\n<li>Konfiguratsiooni seadmesse saatmise mehhanism<\/li>\n<li>CI\/CD<\/li>\n<li>Andmete varundamise ja k\u00f5rvalekallete otsimise mehhanism<\/li>\n<li>J\u00e4lgimisseade<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>Kokkuv\u00f5te<\/b>\n <\/li>\n<\/ol>\n<p>\nProovin ADSMi juhtida veidi erinevas formaadis kui SDMS. Suured, p\u00f5hjalikud numbrilised lood j\u00e4tkuvad, kuid nende vahele avaldan igap\u00e4evaelust v\u00e4ikeseid m\u00e4rkmeid. P\u00fc\u00fcan ka siin perfektsionismiga v\u00f5idelda ja mitte iga\u00fcht liiga palju lihvida. <\/p>\n<blockquote><p> On naljakas, et teist korda tuleb l\u00e4bida sama teed.<\/p>\n<p> Alguses pidin ise kirjutama artikleid v\u00f5rkude kohta, sest neid ei olnud venekeelses internetis.<\/p>\n<p> N\u00fc\u00fcd ei suutnud ma leida \u00fchtegi p\u00f5hjalikku dokumenti, mis s\u00fcsteemiliselt k\u00e4sitleks automatiseerimise l\u00e4henemisviise ning tutvustaks eeltoodud tehnoloogiaid lihtsate praktiliste n\u00e4idete abil.<\/p>\n<p> V\u00f5ib-olla ma eksin, seega saatke lingid headest ressurssidest. Siiski ei muuda see minu otsust kirjutada, sest peamine eesm\u00e4rk on ikkagi \u00f5ppida midagi ise, ja l\u00e4hedaste elu lihtsustamine on meeldiv boonus, mis hellitab kogemuste levimise geeni.\n<\/p><\/blockquote>\n<p>P\u00fc\u00fcdleme keskmise suurusega LAN DC andmekeskuse poole ja t\u00f6\u00f6tame v\u00e4lja kogu automatiseerimise skeemi. <br \/>\n\u0414\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0449\u0438 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0432\u0430\u043c\u0438. <\/p>\n<blockquote><p> \u0412 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0442\u0443\u0442 \u0438\u0434\u0435\u044f\u0445 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u044f \u0431\u0443\u0434\u0443 \u043d\u0435 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0435\u043d. \u0423 \u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0424\u0438\u0433\u043e\u043b\u044f \u0435\u0441\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=MLeiShwb7Qo&amp;list=PLSwGHYY8t8JiGI9powOXDHTAXDSs7FZqt\">\u043a\u0430\u043d\u0430\u043b \u0441\u043e \u0441\u0442\u0440\u0438\u043c\u0430\u043c\u0438 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443<\/a><\/noindex>. <br \/>\n \u0421\u0442\u0430\u0442\u044c\u0438 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0441 \u043d\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f. \n<\/p><\/blockquote>\n<p>\u0412 LAN DC 4 \u0414\u0426, \u043e\u043a\u043e\u043b\u043e 250 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440\u043e\u0432, \u043f\u043e\u043b\u0434\u044e\u0436\u0438\u043d\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043f\u0430\u0440\u0430 \u0444\u0430\u0439\u0440\u0432\u043e\u043b\u043e\u0432. <br \/>\n\u041d\u0435 \u0444\u0435\u0439\u0441\u0431\u0443\u043a, \u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f \u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. <br \/>\n\u0411\u044b\u0442\u0443\u0435\u0442, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u043c\u043d\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 1 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0443\u0436\u0435 \u043d\u0443\u0436\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. <br \/>\n\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u044f\u0436\u0435\u043b\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u0442\u043e-\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0436\u0438\u0442\u044c \u0431\u0435\u0437 \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u0430\u0447\u043a\u0438 \u043d\u0430\u043a\u043e\u043b\u0435\u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. <br \/>\n\u0425\u043e\u0442\u044f \u044f \u0441\u043b\u044b\u0448\u0430\u043b, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u043e\u0440\u044b, \u0433\u0434\u0435 \u0443\u0447\u0451\u0442 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u0432 \u044d\u043a\u0441\u0435\u043b\u0435, \u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u0442\u044b\u0441\u044f\u0447 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u044e \u043d\u0435\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043c\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e. \u042d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0430\u0442\u044c \u0437\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e, \u043d\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u043e\u0441\u043a\u043e\u0440\u0431\u043b\u0435\u043d\u044b. <\/p>\n<h1>Eesm\u00e4rgid<\/h1>\n<p>\n\u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u0446\u0435\u043b\u0438:<\/p>\n<ul>\n<li>V\u00f5rk \u2014 nagu \u00fcks organism<\/li>\n<li>Konfiguratsiooni testimine<\/li>\n<li>\u0412\u0435\u0440\u0441\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0435\u0442\u0438<\/li>\n<li>Teenuste j\u00e4lgimine ja enese taastamine<\/li>\n<\/ul>\n<p>\n\u041f\u043e\u0437\u0436\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043a\u0430\u043a\u0438\u0435 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430, \u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438 \u0446\u0435\u043b\u0438 \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445.<\/p>\n<h2>V\u00f5rk \u2014 nagu \u00fcks organism<\/h2>\n<p>\nM\u00e4\u00e4rav ts\u00fckkel, kuigi esmapilgul v\u00f5ib see tunduda mitte nii oluline: <b>me seadistame v\u00f5rku, mitte eraldiseisvaid seadmeid<\/b>. <br \/>\nViimastel aastatel oleme m\u00e4rganud suunda, kus v\u00f5rku k\u00e4sitletakse kui \u00fchtset \u00fcksust, seet\u00f5ttu ilmuvad meie ellu <i>Tarkvara M\u00e4\u00e4ratud V\u00f5rgud<\/i>, <i>Intent Driven Networks<\/i> ja <i>Autonoomsed v\u00f5rgud<\/i>. <br \/>\nMida rakendused v\u00f5rgu puhul globaalsetel eesm\u00e4rkidel vajavad: \u00fchendus punktide A ja B vahel (m\u00f5nikord ka +B-Y) ja isolatsioon teiste rakenduste ja kasutajate eest. <\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/f8b43928ccc6d487722ce7724f5c4829.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeega on meie \u00fclesanne selles seerias \u2014 <b>ehitada s\u00fcsteem<\/b>, mis toetab aktuaarset konfiguratsiooni <b>kogu v\u00f5rgu<\/b>, mis juba dekomponeeritakse aktuaalsesse konfiguratsiooni igas seadmes vastavalt selle rollile ja asukohale. <br \/>\n<b>S\u00fcsteem<\/b> v\u00f5rgu haldamine t\u00e4hendab, et muudatuste tegemiseks p\u00f6\u00f6rdume selle poole, ning see arvutab vajalikku olekut igas seadmes ja seadistab selle. <br \/>\nNii v\u00e4hendame praktiliselt nullini k\u00e4sitsi CLI-s liikumise \u2014 k\u00f5ik seadmete seadistustes v\u00f5i v\u00f5rgu disainis tehtavad muudatused peavad olema formaliseeritud ja dokumenteeritud \u2014 ja alles siis rakendatakse need vajalikele v\u00f5rgu elementidele. <\/p>\n<blockquote><p> See, for example, if we decided that from now on, the rack switches in Kazan should announce two networks instead of one, we<\/p>\n<ol>\n<li>First, we document the changes in the systems<\/li>\n<li>We generate the target configuration for all network devices<\/li>\n<li>We launch the network configuration update program, which calculates what needs to be removed on each node, what to add, and brings the nodes to the desired state.<\/li>\n<\/ol>\n<p>\n At the same time, we manually make changes only at the first step.\n<\/p><\/blockquote>\n<h2>Konfiguratsiooni testimine<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.wikisummaries.org\/wiki\/Visible_Ops\">It is known<\/a><\/noindex>, that 80% of problems occur during configuration changes \u2014 an indirect indication is that during the New Year holidays, everything is usually calm. <br \/>\nI have personally witnessed dozens of global downtimes due to human error: running an incorrect command, executing it in the wrong configuration branch, forgetting to notify the community, globally deleting MPLS on a router, configuring five devices, and missing an error on the sixth, committing old changes made by someone else. The scenarios are countless. <\/p>\n<p>Automation will allow us to make fewer mistakes, but on a larger scale. This way, we can brick not just one device, but the entire network at once. <\/p>\n<p>Aegade jooksul on meie vanaisad kontrollinud muudatuste \u00f5igsust terava silmaga, tipptehnoloogia ja v\u00f5rgu t\u00f6\u00f6kindluse abil p\u00e4rast nende juurutamist. <br \/>\nNeed vanaisad, kelle t\u00f6\u00f6d t\u00f5id kaasa seiskamisi ja katastroofilisi kahjusid, j\u00e4tsid v\u00e4hem j\u00e4rglasi ja pidid ajaga v\u00e4lja surema, kuid evolutsiooniprotsess on aeglane ning seet\u00f5ttu ei kontrolli k\u00f5ik siiani muudatusi laboratooriumis ette. <br \/>\nKuid progressi tipus on need, kes automatiseerisid 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\u00dcks osa k\u00e4sitleb, kuidas seda rakendada versioonihalduss\u00fcsteemiga, t\u00f5en\u00e4oliselt GitHubiga. <\/p>\n<blockquote><p> Kui olete harjunud m\u00f5ttega v\u00f5rgu CI\/CD-st, tundub teise konfiguratsiooni kontrollimise meetod selle rakendamise kaudu t\u00f6\u00f6sse v\u00f5rku \u00fchel hetkel varakeskaegse inimesena. Umbes nagu l\u00fc\u00fca haamriga tuumarelvade kallale.\n<\/p><\/blockquote>\n<p>Ideede loogiline j\u00e4tk <b>s\u00fcsteemile<\/b> v\u00f5rgu juhtimise ja CI\/CD osas on t\u00e4ielik konfiguratsiooni versioonimine. <\/p>\n<h2>Versioonimine<\/h2>\n<p>\nKujutame ette, et iga muudatuse korral, isegi k\u00f5ige v\u00e4hesema, isegi \u00fchel m\u00e4rkamatul seadmel, muutub kogu v\u00f5rk \u00fchest olekust teise.<br \/>\nJa me ei t\u00e4ida kunagi k\u00e4sku seadmes, me muutume v\u00f5rgustikku. <br \/>\nKuidas kutsuda neid olekuid versioonideks?<\/p>\n<p>Oletame, et praegune versioon on 1.0.0.<br \/>\n\u041f\u043e\u043c\u0435\u043d\u044f\u043b\u0441\u044f IP-\u0430\u0434\u0440\u0435\u0441 Loopback-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 ToR&#8217;\u043e\u0432? \u042d\u0442\u043e \u043c\u0438\u043d\u043e\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043d\u043e\u043c\u0435\u0440 1.0.1.<br \/>\nMuutisime BGP-s marsruudi impordi poliitikaid \u2014 pisut t\u00f5sisem \u2014 juba 1.1.0.<br \/>\nOtsustasime loobuda IGP-st ja minna ainult BGP peale \u2014 see on juba radikaalne disainimuudatus \u2014 2.0.0.<\/p>\n<p>Erinevate andmekeskuste versioonid v\u00f5ivad olla erinevad \u2014 v\u00f5rk areneb, paigaldatakse uus varustus, kuskil lisanduvad uued spina tasemed, kuskil \u2014 ei, jne.<\/p>\n<p>Umbes <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\">semantiline versioneerimine<\/a><\/noindex> me r\u00e4\u00e4gime sellest eraldi artiklis.<\/p>\n<p>Kordan \u2014 iga muudatus (v\u00e4lja arvatud silumis k\u00e4sud) on versiooniuuendus. K\u00f5ikest k\u00f5rvalekaldumistest kehtivast versioonist peavad administraatorid olema teavitatud.<\/p>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0430\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u2014 \u044d\u0442\u043e \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u044d\u0442\u043e \u043d\u0435 rollback \u0441\u0438\u043b\u0430\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u0441\u0435\u0442\u0438 \u043a \u043d\u043e\u0432\u043e\u0439 (\u0441\u0442\u0430\u0440\u043e\u0439) \u0432\u0435\u0440\u0441\u0438\u0438. <\/p>\n<h2>Teenuste j\u00e4lgimine ja enese taastamine<\/h2>\n<p>\n\u042d\u0442\u043e \u0441\u0430\u043c\u043e\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c.<br \/>\n\u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0445\u043e\u0434, \u0447\u0442\u043e \u0443\u043f\u0430\u0432\u0448\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0430\u0434\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0434\u043e\u0431\u0438\u0442\u044c \u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0439, \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e.<br \/>\n\u00ab\u041e\u0447\u0435\u043d\u044c\u00bb \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u0440\u043e\u043d \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u043c\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0430\u0442 \u043c\u0430\u043b\u0435\u0439\u0448\u0438\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u043e\u0442 \u043d\u043e\u0440\u043c\u044b.<br \/>\n\u0418 \u0437\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a, \u0432\u0440\u043e\u0434\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0443\u0437\u043b\u0430. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0441\u043b\u0435\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \u0437\u0430 \u043d\u0438\u043c\u0438.<br \/>\n\u0414\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0432\u0435\u0449\u0435\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/www.irisns.com\/self-healing-network-tomorrow-look-like\/\">Self-Healing<\/a><\/noindex> \u2014 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0438 \u0437\u0430\u0436\u0433\u043b\u0438\u0441\u044c \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0438 \u043f\u043e\u0448\u043b\u0438 \u0441\u0430\u043c\u0438 \u043f\u043e\u0434\u043e\u0440\u043e\u0436\u043d\u0438\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u043b\u0438, \u0433\u0434\u0435 \u0431\u043e\u043b\u0438\u0442.<\/p>\n<p>\u0418 \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0442\u043e\u0436\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u043e \u0438 \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0441\u0435\u0442\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043f\u0440\u0438\u0447\u0451\u043c \u043a\u0430\u043a \u0432\u0430\u0439\u0442\u0431\u043e\u043a\u0441, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0442\u0430\u043a \u0438 \u0431\u043b\u044d\u043a\u0431\u043e\u043a\u0441, \u0447\u0442\u043e \u0443\u0436\u0435 \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<\/p>\n<p>\n\u0427\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u0438\u0445 \u0430\u043c\u0431\u0438\u0446\u0438\u043e\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u043d\u043e\u0432?<\/p>\n<ul>\n<li>Ole k\u00f5ikide v\u00f5rgu seadmete loend, nende asukohad, rollid, mudelid ja tarkvaraversioonid. <br \/>\n <i>kazan-leaf-1.lmu.net, Kazan, leaf, Juniper QFX 5120, R18.3.<\/i>\n <\/li>\n<li>Ole s\u00fcsteem, mis kirjeldab v\u00f5rgu teenuseid. <br \/>\n <i>IGP, BGP, L2\/3VPN, Poliitika, ACL, NTP, SSH.<\/i><\/li>\n<li>Osata seadet initsialiseerida. <br \/>\n <i>Hostname, Mgmt IP, Mgmt Route, Kasutajad, RSA-v\u00f5tmed, LLDP, NETCONF<\/i><\/li>\n<li>Seadistada seade ja viia konfiguratsioon soovitud (ka vanemasse) versiooni.<\/li>\n<li>Testida konfiguratsiooni<\/li>\n<li>Perioodiliselt kontrollida k\u00f5ikide seadmete seisukorda, et tuvastada k\u00f5rvalekaldeid ja informeerida vajalikku isikut.<br \/>\n <i>\u00d6\u00f6sel lisas keegi vaikselt reeglile ACL.<\/i>.<\/li>\n<li>J\u00e4lgida t\u00f6\u00f6korrasolekut.<\/li>\n<\/ul>\n<p><\/p>\n<h1>T\u00f6\u00f6riistad<\/h1>\n<p>\nTundub piisavalt keeruline, et alustada projekti komponente dekomponeerimist.<\/p>\n<p>Ja neid on k\u00fcmme:<\/p>\n<ol>\n<li>Inventeerimisse s\u00fcsteem<\/li>\n<li>IP-ruumi haldamise s\u00fcsteem<\/li>\n<li>V\u00f5rguteenuste kirjeldamise s\u00fcsteem<\/li>\n<li>Seadmete initsialiseerimise mehhanism<\/li>\n<li>M\u00fc\u00fcgi s\u00f5ltumatu konfiguratsioonimudel<\/li>\n<li>M\u00fc\u00fcja-spetsiifiline seadme draiver<\/li>\n<li>Konfiguratsiooni seadmesse saatmise mehhanism<\/li>\n<li>CI\/CD<\/li>\n<li>Andmete varundamise ja k\u00f5rvalekallete otsimise mehhanism<\/li>\n<li>J\u00e4lgimisseade<\/li>\n<\/ol>\n<blockquote><p> See on muide n\u00e4ide sellest, kuidas vaade ts\u00fckli eesm\u00e4rkidele on aja jooksul muutunud \u2014 komponentide mustandis oli neli.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/91132e29d359a4042b213529511f6d7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIllustratsioonil olen v\u00e4lja joonistanud k\u00f5ik komponendid ja seadme. <br \/>\n\u00dcksteisega suhtlevad \u00fcksteisega kattuvad komponendid. <br \/>\nMida suurem on plokk, seda rohkem t\u00e4helepanu tuleb sellele komponendile p\u00f6\u00f6rata. <\/p>\n<p><\/p>\n<h2>Komponent 1. Inventariseerimiss\u00fcsteem<\/h2>\n<p>\nIlmselgelt tahame teada, milline varustus kus asub ja millega see on \u00fchendatud. <br \/>\nInventariseerimiss\u00fcsteem on iga ettev\u00f5tte lahutamatu osa. <br \/>\nTavaliselt on ettev\u00f5ttel erinev inventeerimiss\u00fcsteem v\u00f5rguseadmete jaoks, mis lahendab spetsiifilisemaid \u00fclesandeid. <br \/>\nArtiklite seerias nimetame seda DCIM-iks \u2014 Data Center Infrastructure Management. Kuigi termin DCIM h\u00f5lmab rangelt v\u00f5ttes palju rohkem.<\/p>\n<p>Oma \u00fclesannetes hoiame seal j\u00e4rgmisi seadme kohta k\u00e4ivaid andmeid:<\/p>\n<ul>\n<li>Inventarinumber<\/li>\n<li>Nimi\/description <\/li>\n<li>Mudel (<i>Huawei CE12800, Juniper QFX5120 jne.<\/i>)<\/li>\n<li>Iseloomulikud parameetrid (<i>plaadid, liidesed jne.<\/i>)<\/li>\n<li>Roll (<i>Leaf, Spine, Border Router jne.<\/i>)<\/li>\n<li>Asukoht (<i>region, linn, andmekeskus, rack, unit<\/i>)<\/li>\n<li>Seadmete vahelised interkonektid<\/li>\n<li>V\u00f5rgu topoloogia<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/fac708b1bf3640a943f90247bff8216e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn t\u00e4iesti arusaadav, et tahame ise k\u00f5ike seda teada. <br \/>\nKuid kas see aitab automatiseerimise eesm\u00e4rkidel? <br \/>\nIlmselgelt. <br \/>\nN\u00e4iteks teame, et antud andmekeskuses Leaf-l\u00fclititel, kui need on Huawei, tuleks ACL filtreerimiseks rakendada VLAN-is, ja kui need on Juniper, siis f\u00fc\u00fcsilise liidese unit 0-l. <br \/>\nV\u00f5i tuleb levitada uus Syslog-server k\u00f5igile regiooni piirdele.<\/p>\n<p>Selle eesm\u00e4rgi jaoks hoiame me virtuaalseid v\u00f5rgu seadmeid, n\u00e4iteks virtuaalseid ruutereid v\u00f5i rutreflektoreid. Saame lisada DNS-servereid, NTP, Syslog ja \u00fcldiselt k\u00f5ike, mis on v\u00f5rguga seotud. <\/p>\n<h2>Komponent 2. IP-ruumi haldamise s\u00fcsteem<\/h2>\n<p>\nJah, meie ajal on endiselt gruppe inimesi, kes peavad IP-e ja prefikseid Exceli failides. Kuid kaasaegne l\u00e4henemine on ikkagi andmebaas, millel on frontend nginxi\/apache'i, API ja laiad funktsioonid IP-aadresside ja v\u00f5rkude arvestamiseks, jagatuna VRF-ideks.<br \/>\nIPAM \u2014 IP Aadressi Halduse s\u00fcsteem. <\/p>\n<p>Meie vajaduste jaoks hoiame selles j\u00e4rgmisi andmeid:<\/p>\n<ul>\n<li>VLAN<\/li>\n<li>VRF<\/li>\n<li>V\u00f5rgud\/Subv\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. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/6d476d48f95ed663d84cae052a86d129.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041e\u043f\u044f\u0442\u044c \u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e, \u0432\u044b\u0434\u0435\u043b\u044f\u044f \u043d\u043e\u0432\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u043b\u0443\u043f\u0431\u044d\u043a\u0430 ToR&#8217;\u0430, \u043c\u044b \u043d\u0435 \u0441\u043f\u043e\u0442\u043a\u043d\u0451\u043c\u0441\u044f \u043e \u0442\u043e, \u0447\u0442\u043e \u043e\u043d \u0443\u0436\u0435 \u0431\u044b\u043b \u043a\u043e\u043c\u0443-\u0442\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d. \u0418\u043b\u0438 \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u0432\u0430\u0436\u0434\u044b \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0446\u0430\u0445 \u0441\u0435\u0442\u0438. <br \/>\nAga kuidas see aitab automatiseerimisel? <br \/>\nLihtne. <br \/>\nK\u00fcsimiseks loodud s\u00fcsteemis prefiks, millel on Loopbacks roll, kus on saadaval m\u00e4\u00e4ramiseks IP-aadressid \u2014 kui leiatakse, m\u00e4\u00e4rame aadressi, kui ei, k\u00fcsime uue prefiksi loomist. <br \/>\nV\u00f5i seadme konfigureerimise loomisel saame samast s\u00fcsteemist teada, millises VRF-is peaks liides asuma. <br \/>\nJa kui uus server k\u00e4ivitub, siis skript kontrollib s\u00fcsteemis, millises serveri l\u00fclitises, millises porti ja milline alamv\u00f5rk on liidesele m\u00e4\u00e4ratud \u2014 sellest v\u00e4ljastatakse serveri aadress. <\/p>\n<p>\nTuleb soov DCIM ja IPAM \u00fchendada \u00fchte s\u00fcsteemi, et mitte dubleerida funktsioone ja mitte teenindada kahte sarnast subjekt. <br \/>\nNii me ka teeme. <\/p>\n<h2>Komponent 3. V\u00f5rguteenuste kirjeldamise s\u00fcsteem.<\/h2>\n<p>\nKui esimesed kaks s\u00fcsteemi salvestavad muutujaid, mida tuleb kuidagi kasutada, siis kolmas kirjeldab iga seadme rolli jaoks, kuidas see peaks olema seadistatud. <br \/>\nTasub esile tuua kaks erinevat t\u00fc\u00fcpi v\u00f5rguteenuseid: <\/p>\n<ul>\n<li>Infrastruktuuri<\/li>\n<li>Klienditeenused.<\/li>\n<\/ul>\n<p>Esimesed on m\u00f5eldud p\u00f5hiliidese ja seadme haldamise tagamiseks. Siia kuuluvad VTY, SNMP, NTP, Syslog, AAA, marsruutimisprotokollid, CoPP jne. <br \/>\nTeised korraldavad kliendi teenust: MPLS L2\/L3VPN, GRE, VXLAN, VLAN, L2TP jne. <br \/>\nMuidugi on ka piiritapjuhud \u2014 kuhu liigitada MPLS LDP, BGP? Ja marsruutimisprotokolle v\u00f5ib kasutada ka klientide jaoks. Kuid see ei ole p\u00f5him\u00f5tteline. <\/p>\n<p>M\u00f5lemad teenust\u00fc\u00fcbid jagunevad konfigureeritavateks primitiivideks:<\/p>\n<ul>\n<li>f\u00fc\u00fcsilised ja loogilised liidesed (tahvel\/antahvel, 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>Marsruudistamise poliitikad (prefikside loendid, kogukonnad, ASN-filterid).<\/li>\n<li>Teenused (SSH, NTP, LLDP, Syslog\u2026)<\/li>\n<li>jne.<\/li>\n<\/ul>\n<p>\nKuidas me seda t\u00e4pselt teeme, ei oska praegu \u00f6elda. Tegeleme sellega eraldi artiklis.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/092bc3a4b875f4a6422ee13fb580ba4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuid kui minna reaalsuse l\u00e4hedale, v\u00f5iksime kirjeldada, et<br \/>\nLehe l\u00fcliti peab olema BGP-seansid k\u00f5ikide \u00fchendatud Spine-l\u00fclititega, importima \u00fchendatud v\u00f5rke ja aktsepteerima Spine-l\u00fclititest ainult kindlatest prefiksidest v\u00f5rke. Piirama CoPP IPv6 ND-d 10 pps jne. <br \/>\nSpine-l\u00fclitid peavad omakorda hoidma seansse k\u00f5igi \u00fchendatud lehtedega, toimides juurepeegeldajatena, ja aktsepteerima nendelt ainult teatud pikkusega marsruute ja teatud kogukonnaga.<\/p>\n<h2>Komponent 4. Seadmestiku initsialiseerimise mehhanism<\/h2>\n<p>\nSelle pealkirja all \u00fchendame mitmeid tegevusi, mis peavad toimuma, et seade ilmuks radaritele ja et sellele saaks kaugjuhtimisse siseneda.<\/p>\n<ol>\n<li>Seade tuleb registreerida inventeerimiss\u00fcsteemis.<\/li>\n<li>Halda juhte IP-aadress.<\/li>\n<li>Seadista sellele p\u00f5hjuurdep\u00e4\u00e4s: <br \/>\nHostname, juhte IP-aadress, haldusv\u00f5rgu marsruut, kasutajad, SSH-v\u00f5tmed, protokollid \u2014 telnet\/SSH\/NETCONF<\/li>\n<\/ol>\n<p>Siin on kolm l\u00e4henemist:<\/p>\n<ul>\n<li>K\u00f5ik teha k\u00e4sitsi. Seade tuuakse lauale, kus tavaline inimene siseneb s\u00fcsteemidesse, \u00fchendub konsooliga ja seadistab. See v\u00f5ib t\u00f6\u00f6tada v\u00e4ikestes staatilistes v\u00f5rkudes.<\/li>\n<li>ZTP \u2014 Zero Touch Provisioning. Riistvara on kohal, paigaldatud, DNS-i saab DHCP-lt ja l\u00e4heb eraldi serverisse, et ise seadistuda. <\/li>\n<li>Konsooli serverite infrastruktuur, kus esmase seadistamise teeb automaatne konsoolipordist.<\/li>\n<\/ul>\n<p>K\u00d5IK kolm neist arutame eraldi artiklis.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/6d8d061e53b508edbbcbd98fe496ca91.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 5. Tarnija-agnostiline konfiguratsioonimudel<\/h2>\n<p>\nSiiani on k\u00f5ik s\u00fcsteemid olnud killustunud t\u00fckid, andes muutlikku ja deklareerivat kirjeldust sellest, mida me sooviksime n\u00e4ha v\u00f5rgus. Kuid varem v\u00f5i hiljem tuleb tegeleda konkreetse asjaga. <br \/>\nSelles etapis kombineeritakse iga konkreetse seadme jaoks primitiivid, teenused ja muutujaid konfiguratsioonimudeliks, mis tegelikult kirjeldab konkreetse seadme t\u00e4ielikku konfiguratsiooni tootjaspetsiifiliselt s\u00f5ltumatul viisil. <br \/>\nMida annab see samm? Miks mitte kohe luua seadme konfiguratsioon, mille lihtsalt \u00fcles laadida? <br \/>\nTegelikult v\u00f5imaldab see lahendada kolm \u00fclesannet:<\/p>\n<ol>\n<li> Ei pea kohanduma konkreetse seadme suhtlusliidese j\u00e4rgi. Olgu see CLI, NETCONF, RESTCONF, SNMP \u2014 mudel j\u00e4\u00e4b samaks.<\/li>\n<li> Ei pea hoidma \u0161ablonite\/skripte arvu vastavalt v\u00f5rgus olevate tootjate arvule, ning disaini muutumisel, tuleb korraga muuta sama asja mitmes kohas.<\/li>\n<li> Laadida seadmest konfiguratsioon (varukoopia), hajutada see t\u00e4pselt sellesse mudelisse ja otseselt v\u00f5rrelda sihtkonfiguratsiooni olemasolevaga, et arvutada delta ja valmistada meie valmistatav konfiguratsioonipatch, mis muudab ainult neid osi, mis on vajalikud v\u00f5i k\u00f5rvalekallete tuvastamiseks.<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/a154c42ebe7978fcc5b2ce4f235516c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle etapi tulemusena saame tootjaspetsiifiliselt s\u00f5ltumatu konfiguratsiooni.<\/p>\n<h2>Komponent 6. Tootjaspetsiifiline liidese draiver<\/h2>\n<p>\n\u041d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0442\u0435\u0448\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u043d\u0430\u0434\u0435\u0436\u0434\u0430\u043c\u0438 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0446\u0438\u0441\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0434\u0436\u0443\u043d\u0438\u043f\u0435\u0440, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0432 \u043d\u0430 \u043d\u0438\u0445 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c whitebox&#8217;\u044b \u0438 \u043d\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 NETCONF, RESTCONF, OpenConfig, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u0438\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u043a \u0432\u0435\u043d\u0434\u043e\u0440\u0443, \u0438 \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438\u0437 \u0438\u0445 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u044b\u0445 \u043e\u0442\u043b\u0438\u0447\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d\u0438 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441\u0434\u0430\u0434\u0443\u0442. <br \/>\nSee on umbes sama, kuidas OpenContrail ja OpenStack, mis kasutavad RestAPI-d kui oma p\u00f5hiliidest, ootavad t\u00e4iesti erinevaid k\u00e4sklusi. <\/p>\n<p>Nii et viiendaks sammuks peab tootjavaba mudel v\u00f5tma kuju, millega see j\u00f5uab riistvarani. <br \/>\nJa siin on k\u00f5ik viisid head (mitte t\u00f5esti): CLI, NETCONF, RESTCONF, SNMP ja niisugused lihtsad lahendused.<\/p>\n<p>Seega vajame draiverit, mis eelmist sammu tulemus viib \u00f5iges formaadis konkreetse tootja jaoks: CLI k\u00e4skude komplekt, XML struktuur.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/6ed8e935183075fda60a209477f84937.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 7. Konfiguratsiooni edastamise mehhanism seadmesse.<\/h2>\n<p>\nKonfiguratsioon on genereeritud, kuid see tuleb seadmetesse ka veel toimetada \u2014 ja selgelt mitte k\u00e4sitsi. <br \/>\n<b>Esiteks<\/b>, meil on k\u00fcsimus, millist transporti kasutame? Ja valik on t\u00e4nap\u00e4eval juba p\u00e4ris 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 on nimekirjast v\u00e4lja j\u00e4etud, kuna see on meetod FIB-i edastamiseks, mitte seadistamiseks)<\/li>\n<\/ul>\n<p>Kohandame siin m\u00f5ned punktid. CLI on vananenud. SNMP\u2026 ahem.<br \/>\nRESTCONF on veel tundmatu loom, REST API-d toetab peaaegu keegi. Seega keskendume ts\u00fcklis NETCONF-ile.<\/p>\n<p>Tegelikult, nagu lugeja on t\u00f5en\u00e4oliselt m\u00f5istnud, oleme selle hetkel juba liidese valguses selgusele j\u00f5udnud \u2014 eelneva sammu tulemus on juba esitatud valitud liidese formaadis.<\/p>\n<p><b>Teiseks<\/b>, aga milliste t\u00f6\u00f6riistadega me seda teeme?<br \/>\nSiin on valik samuti suur:<\/p>\n<ul>\n<li>Kohandatud skript v\u00f5i platvorm. Vaatame ncclienti ja asyncIO-d ning teeme ise k\u00f5ik \u00e4ra. Mis takistab meil s\u00fcsteemi juurutamist nullist?<\/li>\n<li>Ansible oma rikkaliku v\u00f5rgumoodulite kogumiga.<\/li>\n<li>Salt, mille v\u00f5rgut\u00f6\u00f6 on miskitki napp ja seotud Napalmiga.<\/li>\n<li>Isegi Napalm, kes tunneb paar tootjat ja see ongi k\u00f5ik, head aega.<\/li>\n<li>Nornir \u2014 veel \u00fcks loom, keda me tulevikus uurime.<\/li>\n<\/ul>\n<p>Siin pole veel lemmik v\u00e4lja valitud \u2014 hakkame uurima.<\/p>\n<p>Mis siin veel oluline on? Konfiguratsiooni rakendamise tagaj\u00e4rjed. <br \/>\nKas \u00f5nnestub v\u00f5i mitte. Kas juurdep\u00e4\u00e4s seadmele on s\u00e4ilinud v\u00f5i mitte. <br \/>\nTundub, et siin aitab commit koos kinnitamise ja valideerimisega selle kohta, mis seadmesse laaditi. <br \/>\nSee koos \u00f5igesti rakendatud NETCONF-iga oluliselt kitsendab sobivate seadmete valikut \u2014 normaalsed commit'id ei toeta nii palju tootjaid. Kuid see on lihtsalt \u00fcks tingimus, mis peab olema RFP-s. <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\">RFP<\/a><\/noindex>. L\u00f5ppkokkuv\u00f5ttes ei muretse keegi selle \u00fcle, et \u00fckski Venemaa tarnija ei vasta 32*100GE liidese n\u00f5udele. V\u00f5i muretsevad?<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/59d8ad3b55b9c107642550bb06fc759a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Komponent 8. CI\/CD<\/h2>\n<p>\nSelleks ajaks on meil juba k\u00f5ikide v\u00f5rgu seadmete konfiguratsioon valmis.<br \/>\nKirjutan \"k\u00f5ikide\", sest r\u00e4\u00e4gime v\u00f5rgu oleku versioonist. Ja isegi kui on vaja muuta ainult \u00fche l\u00fcliti seadeid, arvutatakse muudatused kogu v\u00f5rgu jaoks. Ilmselgelt v\u00f5ivad need samal ajal olla nullid enamikus s\u00f5lmedes.<\/p>\n<p>Kuid nagu juba varem \u00f6eldud, ei ole me ju mingid barbarid, et k\u00f5ik kohe tootmisse saata. <br \/>\nGenereritud konfiguratsioon peab esmalt l\u00e4bima Pipeline CI\/CD.<\/p>\n<blockquote><p>CI\/CD t\u00e4hendab pidevat integreerimist ja pidevat juurutamist. See on l\u00e4henemine, kus meeskond ei avalda uut p\u00f5hiversiooni kord kuue kuu jooksul, asendades t\u00e4ielikult vana, vaid juurutab pidevalt uusimat funktsionaalsust v\u00e4ikeste osade kaupa, millest iga\u00fcht testitakse p\u00f5hjalikult \u00fchilduvuse, turvalisuse ja funktsionaalsuse osas.\n<\/p><\/blockquote>\n<p>Selleks on meil versioonihalduss\u00fcsteem, mis j\u00e4lgib konfiguratsiooni muutusi, laboratoorium, kus kontrollitakse, et kliendiservice ei riku, j\u00e4lgimisseade, mis kontrollib seda, ja viimane samm \u2014 muudatuste tegemine tootmisv\u00f5rgus.<\/p>\n<p>V\u00e4lja arvatud silumis k\u00e4sud, peavad k\u00f5ik muudatused v\u00f5rgus l\u00e4bima CI\/CD torujuhtme \u2014 see on meie rahuliku elu ja pika \u00f5nneliku karj\u00e4\u00e4ri garantii.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/101a5ff87c7a9c7b6776aca9daf762a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 9. Varunduss\u00fcsteem ja k\u00f5rvalekallete leidmine<\/h2>\n<p>\nBackup'idest ei ole m\u00f5tet liialt r\u00e4\u00e4kida. <br \/>\nPaneme need lihtsalt kas cron'i j\u00e4rgi v\u00f5i konfiguratsiooni muutuse korral git'i.<\/p>\n<p>Teine osa on huvitavam \u2014 nende varukoopiate \u00fcle peab keegi silma peal hoidma. \u00dches olukorras peab see keegi minema ja taastama k\u00f5ik tagasi, teises aga peab ta kellelegi kellestki teavitama, et asjad ei ole korras. <br \/>\nN\u00e4iteks kui tuleb uus kasutaja, kes ei ole m\u00e4\u00e4ratud muutujates, tuleb ta h\u00e4kkimise eest eemaldada. Kui on uus tulem\u00fc\u00fcrireegel \u2014 parem seda mitte puudutada, \u00e4kki on keegi lihtsalt silumiseks selle sisse l\u00fclitanud, v\u00f5i v\u00f5ib-olla on uus teenus, karjus, m\u00e4\u00e4ranud selle valesti, ja n\u00fc\u00fcd on sinna juba inimesi tulnud.<\/p>\n<p>Mingist v\u00e4ikesest erinevusest kogu v\u00f5rgu kontekstis ei p\u00e4\u00e4se me hoolimata k\u00f5igist automatiseerimiss\u00fcsteemidest ja raudk\u00e4est juhtimises. Probleemide lahendamiseks ei hakka keegi ikkagi s\u00fcsteemidesse konfiguratsiooni tegema. Veel enam, et nende jaoks ei pruugi isegi konfiguratsioonimudelit ette n\u00e4ha. <\/p>\n<blockquote><p>N\u00e4iteks paketihulga arvu j\u00e4lgimise tulem\u00fc\u00fcrireegel teatud IP jaoks, et probleemi lokaliseerida \u2014 t\u00e4iesti tavaline ajutine konfiguratsioon.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/390f78139d336f1fc2c60573bccfe76c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 10. Monitorings\u00fcsteem<\/h2>\n<p>\nAlguses ei olnud mul plaanis teemat j\u00e4lgimisest k\u00e4sitleda - see on siiski ulatuslik, vaieldav ja keeruline teema. Kuid protsessi k\u00e4igus selgus, et see on h\u00e4davajalik osa automatiseerimisest. Selle \u00fcmbersidumine praktikata on v\u00f5imatu. <\/p>\n<p>Arendades m\u00f5tet - see on orgaaniline osa CI\/CD protsessist. P\u00e4rast konfiguratsiooni rakendamist v\u00f5rgus peame suutma kindlaks teha, kas k\u00f5ik on n\u00fc\u00fcd korras. <br \/>\nJa jutt ei ole ainult ja mitte niiv\u00f5rd graafikutest, vaid ka kasutajaliidete v\u00f5i s\u00f5lmpunktide k\u00e4ttesaadavusest, vaid ka keerukamatest asjadest - vajalikest marsruutidest, nende atribuutidest, BGP sessioonide arvust, OSPF naabritest, teenuste end-to-end t\u00f6\u00f6kindlusest.<br \/>\nKas logid ei lakka kogumast v\u00e4lisele serverile, kas SFlow-agent ei ole katki, kas k\u00f5ikuvus ei ole suurenenud j\u00e4rjekordades, kas mingite prefiksi paaride vahel ei ole rikkumist?<\/p>\n<p>Erinevas artiklis arutame ka selle \u00fcle.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiseerimine k\u00f5ige v\u00e4iksematele. Nullosaline. 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. Nullosaline. Planeerimine\" src=\"\/wp-content\/uploads\/2019\/07\/13c186070c85fd00f7b6923df154f1b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h1>Kokkuv\u00f5te<\/h1>\n<p>\nP\u00f5hjaks valisin t\u00e4nap\u00e4evase andakeskuse v\u00f5rgu kujunduse - L3 Clos Fabric koos BGP-ga marsruutimisprotokollina.<br \/>\nSeekord ehitame v\u00f5rku Juniperil, sest n\u00fc\u00fcd on JunOs liidese kasutamine standart.<\/p>\n<p>Teeme endale elu keerulisemaks, kasutades ainult avatud l\u00e4htekoodiga t\u00f6\u00f6riistu ja mitme m\u00fc\u00fcja v\u00f5rku \u2014 seet\u00f5ttu valin lisaks Juniperile veel \u00fche \u00f5nneliku.<\/p>\n<p>Tulevaste avaldamiste plaan on umbes selline:<br \/>\nEsiteks r\u00e4\u00e4gin virtuaalsetest v\u00f5rkudest. Esiteks seet\u00f5ttu, et ma tahan, ja teiseks seet\u00f5ttu, et ilma selleta pole infrastruktuuri v\u00f5rgu kujundamine eriti arusaadav.<br \/>\nSiis r\u00e4\u00e4gime v\u00f5rgukujundusest: topoloogiast, marsruutimisest, poliitikatest.<br \/>\nKogume laboriseina.<br \/>\nM\u00f5tleme j\u00e4rele ja v\u00f5ib-olla harjutame seadme v\u00f5rku k\u00e4ivitamist.<br \/>\nJa edasi iga kompoondi intiimsetes detailides.<\/p>\n<p>Ja jah, ma ei lubanud selle ts\u00fckli kenasti l\u00f5petada valmis lahendusega. \ud83d\ude42<\/p>\n<h5>Kasulikud lingid<\/h5>\n<p><\/p>\n<ul>\n<li>Enne s\u00fcvenemist seeriasse, tasub lugeda Natasha Samojlenko raamatut <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.gitbook.io\/pyneng\/\">Python seadmeinseneridele<\/a><\/noindex>. Ja v\u00f5ib-olla ka l\u00e4bida <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.github.io\/pyneng-online\/\">kursus<\/a><\/noindex>.<\/li>\n<li>Samuti on kasulik lugeda <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7938\">RFC<\/a><\/noindex> Facebooki andmekeskuse tehaste kujundamist Peeter Lapukhovi autorluses.<\/li>\n<li>\u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Overlay&#8217;\u043d\u044b\u0439 SDN \u0432\u0430\u043c \u0434\u0430\u0441\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/Tungsten-Fabric-Architecture.html\">Tungsten Fabric<\/a><\/noindex> (varasem Open Contrail).<\/li>\n<\/ul>\n<h5>Ait\u00e4h<\/h5>\n<p>\nRoman Gorgi. Kommentaaride ja paranduste eest.<br \/>\nArtyom Chornobay. 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 4.9.10 - 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. \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,\" \/>\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) 4.9.10\" \/>\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. \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,\" \/>\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 noorematele. Nullosa. Planeerimine | ProHoster","description":"SDSMi on l\u00e4bi, kuid kontrollimatu soov kirjutada j\u00e4i. Pikki aastaid kannatas meie vend rutiinse t\u00f6\u00f6 tegemise all, s\u00f5lmis s\u00f5rmed enne kohandamist ja magas v\u00e4he \u00f6iste tagasiv\u00f5tmiste t\u00f5ttu. Kuid tumedatele aegadele tuleb l\u00f5pp. Selle artikliga alustan sarja selle kohta, kuidas ma n\u00e4en automatiseerimist. Teel selgitatakse automatiseerimise etappe, muutujaid, disaini formaliseerimist, RestAPI-d,","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. \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,","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"},"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}]}}