{"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\/cs\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","title":{"rendered":"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>SDCM skon\u010dil, ale nezvladateln\u00e1 touha ps\u00e1t z\u016fstala. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/0\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/2da9a566e92a782cf1205a6da716d4c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Dlouh\u00e9 roky n\u00e1\u0161 bratr trp\u011bl kontrolov\u00e1n\u00edm rutinn\u00ed pr\u00e1ce, k\u0159\u00ed\u017eil prsty p\u0159ed commitem a nespal kv\u016fli no\u010dn\u00edm rollback\u016fm.<br \/>\nAle temn\u00fdm obdob\u00edm p\u0159ich\u00e1z\u00ed konec.<\/p>\n<p>Tento \u010dl\u00e1nek zah\u00e1j\u00ed s\u00e9rii o tom, jak <i>mi<\/i> se zd\u00e1 automatizace. <br \/>\nB\u011bhem toho se pod\u00edv\u00e1me na f\u00e1ze automatizace, ukl\u00e1d\u00e1n\u00ed prom\u011bnn\u00fdch, formalizaci designu, z RestAPI, NETCONF, YANG, YDK a budeme hodn\u011b programovat. <br \/>\n<i>Pro m\u011b<\/i> znamen\u00e1, \u017ee a) to nen\u00ed objektivn\u00ed pravda, b) nen\u00ed to bezpodm\u00edne\u010dn\u011b nejlep\u0161\u00ed p\u0159\u00edstup c) m\u016fj pohled se m\u016f\u017ee b\u011bhem p\u0159echodu od prvn\u00edho k posledn\u00edmu \u010dl\u00e1nku m\u011bnit \u2014 up\u0159\u00edmn\u011b \u0159e\u010deno, od f\u00e1ze konceptu do publikace jsem v\u0161echno \u00fapln\u011b p\u0159epsal dvakr\u00e1t. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Obsah<\/h1>\n<p><\/p>\n<ol>\n<li> <b>C\u00edle<\/b>\n<ol>\n<li>S\u00ed\u0165 \u2014 jako jednotn\u00fd organismus<\/li>\n<li>Testov\u00e1n\u00ed konfigurace<\/li>\n<li>Verzov\u00e1n\u00ed<\/li>\n<li>Monitoring a samoobnova slu\u017eeb<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>N\u00e1stroje<\/b>\n<ol>\n<li>Invent\u00e1rn\u00ed syst\u00e9m<\/li>\n<li>Syst\u00e9m spr\u00e1vy IP prostoru<\/li>\n<li>Syst\u00e9m popisu s\u00ed\u0165ov\u00fdch slu\u017eeb<\/li>\n<li>Mechanismus inicializace za\u0159\u00edzen\u00ed<\/li>\n<li>Vendorsky agnostick\u00fd konfigura\u010dn\u00ed model<\/li>\n<li>Vendorsky specifick\u00fd ovlada\u010d<\/li>\n<li>Mechanismus dod\u00e1n\u00ed konfigurace do za\u0159\u00edzen\u00ed<\/li>\n<li>CI\/CD<\/li>\n<li>Mechanismus z\u00e1lohov\u00e1n\u00ed a hled\u00e1n\u00ed odchylek<\/li>\n<li>Syst\u00e9m monitorov\u00e1n\u00ed<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>Z\u00e1v\u011br<\/b>\n <\/li>\n<\/ol>\n<p>\nADSM se pokus\u00edm v\u00e9st v trochu jin\u00e9m form\u00e1tu ne\u017e SDCM. I nad\u00e1le se budou objevovat velk\u00e9 obsa\u017en\u00e9 \u010d\u00edslovan\u00e9 \u010dl\u00e1nky, a mezi nimi budu publikovat mal\u00e9 pozn\u00e1mky z ka\u017edodenn\u00ed zku\u0161enosti. Pokus\u00edm se tu bojovat s perfekcionismem a nevyhlazovat je v\u0161echny. <\/p>\n<blockquote><p> Jak je vtipn\u00e9, \u017ee pot\u0159et\u00ed mus\u00edm proj\u00edt stejnou cestou.<\/p>\n<p> Zpo\u010d\u00e1tku jsem musel ps\u00e1t s\u00e1m \u010dl\u00e1nky o s\u00edt\u00edch, proto\u017ee v ru-netu nebyly.<\/p>\n<p> Te\u010f jsem nena\u0161el komplexn\u00ed dokument, kter\u00fd by systematizoval p\u0159\u00edstupy k automatizaci a rozeb\u00edral v\u00fd\u0161e uveden\u00e9 technologie na jednoduch\u00fdch praktick\u00fdch p\u0159\u00edkladech.<\/p>\n<p> Mo\u017en\u00e1 se m\u00fdl\u00edm, proto pos\u00edlejte odkazy na dobr\u00e9 zdroje. Nicm\u00e9n\u011b to nezm\u011bn\u00ed moje odhodl\u00e1n\u00ed ps\u00e1t, proto\u017ee hlavn\u00edm c\u00edlem je nau\u010dit se n\u011bco s\u00e1m, a usnadn\u011bn\u00ed \u017eivota ostatn\u00edm je p\u0159\u00edjemn\u00fd bonus, kter\u00fd podporuje \u0161\u00ed\u0159en\u00ed zku\u0161enost\u00ed.\n<\/p><\/blockquote>\n<p>Pok\u00fas\u00edme se vz\u00edt st\u0159edn\u011b velk\u00e9 datov\u00e9 centrum LAN DC a prozkoumat celou sch\u00e9ma automatizace. <br \/>\nD\u011blat n\u011bkter\u00e9 v\u011bci budu prakticky poprv\u00e9 s v\u00e1mi. <\/p>\n<blockquote><p> V popisovan\u00fdch my\u0161lenk\u00e1ch a n\u00e1stroj\u00edch nebudu origin\u00e1ln\u00ed. Dmitrij Figol m\u00e1 skv\u011bl\u00fd <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=MLeiShwb7Qo&amp;list=PLSwGHYY8t8JiGI9powOXDHTAXDSs7FZqt\">kan\u00e1l se streamy na toto t\u00e9ma.<\/a><\/noindex>. <br \/>\n \u010cl\u00e1nky se v mnoha aspektech budou p\u0159ekr\u00fdvat s nimi. \n<\/p><\/blockquote>\n<p>V LAN DC 4 DC, kolem 250 p\u0159ep\u00edna\u010d\u016f, p\u016fl tuctu sm\u011brova\u010d\u016f a p\u00e1r firewall\u016f. <br \/>\nNen\u00ed to Facebook, ale dost na to, abychom se hloub\u011bji zamysleli o automatizaci. <br \/>\nExistuje n\u00e1zor, \u017ee pokud m\u00e1te v\u00edce ne\u017e 1 za\u0159\u00edzen\u00ed, ji\u017e pot\u0159ebujete automatizaci. <br \/>\nOpravdu je t\u011b\u017ek\u00e9 si p\u0159edstavit, \u017ee by n\u011bkdo dnes mohl \u017e\u00edt bez alespo\u0148 d\u00e1vky skript\u016f na kolen\u011b. <br \/>\nI kdy\u017e jsem sly\u0161el, \u017ee existuj\u00ed firmy, kde se evidence IP adres vede v Excelu, a ka\u017ed\u00e9 z tis\u00edc\u016f s\u00ed\u0165ov\u00fdch za\u0159\u00edzen\u00ed se nastavuje manu\u00e1ln\u011b a m\u00e1 svou unik\u00e1tn\u00ed konfiguraci. To lze samoz\u0159ejm\u011b prezentovat jako modern\u00ed um\u011bn\u00ed, ale pocity in\u017een\u00fdra budou ur\u010dit\u011b ura\u017een\u00e9. <\/p>\n<h1>C\u00edle<\/h1>\n<p>\nTe\u010f si stanov\u00edme maxim\u00e1ln\u011b abstraktn\u00ed c\u00edle:<\/p>\n<ul>\n<li>S\u00ed\u0165 \u2014 jako jednotn\u00fd organismus<\/li>\n<li>Testov\u00e1n\u00ed konfigurace<\/li>\n<li>Verzov\u00e1n\u00ed stavu s\u00edt\u011b.<\/li>\n<li>Monitoring a samoobnova slu\u017eeb<\/li>\n<\/ul>\n<p>\nPozd\u011bji v tomto \u010dl\u00e1nku probereme, jak\u00e9 n\u00e1stroje budeme pou\u017e\u00edvat, a v n\u00e1sleduj\u00edc\u00edch \u010dl\u00e1nc\u00edch tak\u00e9 c\u00edle a prost\u0159edky podrobn\u011b.<\/p>\n<h2>S\u00ed\u0165 \u2014 jako jednotn\u00fd organismus<\/h2>\n<p>\nUr\u010duj\u00edc\u00ed fr\u00e1ze cyklu, p\u0159esto\u017ee se na prvn\u00ed pohled m\u016f\u017ee zd\u00e1t nev\u00fdznamn\u00e1: <b>budeme nastavovat s\u00ed\u0165, ne jednotliv\u00e1 za\u0159\u00edzen\u00ed.<\/b>. <br \/>\nV\u0161echny posledn\u00ed roky sledujeme posun k tomu, aby se na s\u00ed\u0165 pohl\u00ed\u017eelo jako na jednotnou entitu, odtud i p\u0159ich\u00e1zej\u00edc\u00ed <i>Software Defined Networking<\/i>, <i>Intent Driven Networks<\/i> a <i>Autonomous Networks<\/i>. <br \/>\nNebo\u0165 co glob\u00e1ln\u011b aplikac\u00edm od s\u00edt\u011b pot\u0159ebuj\u00ed: propojen\u00ed mezi body A a B (no ob\u010das +B-Y) a izolaci od ostatn\u00edch aplikac\u00ed a u\u017eivatel\u016f. <\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/f8b43928ccc6d487722ce7724f5c4829.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA tak je na\u0161\u00edm \u00fakolem v t\u00e9to s\u00e9rii \u2014 <b>vybudovat syst\u00e9m<\/b>, kter\u00fd podporuje aktu\u00e1ln\u00ed konfiguraci <b>cel\u00e9 s\u00edt\u011b<\/b>, kter\u00e1 se ji\u017e dekomponuje na aktu\u00e1ln\u00ed konfiguraci na ka\u017ed\u00e9m za\u0159\u00edzen\u00ed podle jeho role a um\u00edst\u011bn\u00ed. <br \/>\n<b>Syst\u00e9m<\/b> spr\u00e1va s\u00edt\u011b p\u0159edpokl\u00e1d\u00e1, \u017ee pro prov\u00e1d\u011bn\u00ed zm\u011bn se obrac\u00edme na ni, a ona na opl\u00e1tku vypo\u010d\u00edt\u00e1 pot\u0159ebn\u00fd stav pro ka\u017ed\u00e9 za\u0159\u00edzen\u00ed a nastav\u00ed ho. <br \/>\nT\u00edmto minimalizujeme t\u00e9m\u011b\u0159 na nulu ru\u010dn\u00ed pou\u017eit\u00ed CLI \u2014 jak\u00e9koli zm\u011bny v nastaven\u00edch za\u0159\u00edzen\u00ed nebo designu s\u00edt\u011b by m\u011bly b\u00fdt formalizov\u00e1ny a zdokumentov\u00e1ny \u2014 a teprve potom zav\u00e1d\u011bny na pot\u0159ebn\u00e9 prvky s\u00edt\u011b. <\/p>\n<blockquote><p> To je, nap\u0159\u00edklad, pokud jsme se rozhodli, \u017ee od tohoto okam\u017eiku by m\u011bly p\u0159ep\u00edna\u010de ve Kazani oznamovat dv\u011b s\u00edt\u011b m\u00edsto jedn\u00e9, my<\/p>\n<ol>\n<li>Nejprve zdokumentujeme zm\u011bny v syst\u00e9mech<\/li>\n<li>Generujeme c\u00edlovou konfiguraci v\u0161ech za\u0159\u00edzen\u00ed s\u00edt\u011b<\/li>\n<li>Spou\u0161t\u00edme program pro aktualizaci konfigurace s\u00edt\u011b, kter\u00fd vypo\u010d\u00edt\u00e1, co je t\u0159eba odstranit na ka\u017ed\u00e9m uzlu, co p\u0159idat, a p\u0159ivede uzly do po\u017eadovan\u00e9ho stavu.<\/li>\n<\/ol>\n<p>\n P\u0159itom zm\u011bny prov\u00e1d\u00edme manu\u00e1ln\u011b pouze v prvn\u00edm kroku.\n<\/p><\/blockquote>\n<h2>Testov\u00e1n\u00ed konfigurace<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.wikisummaries.org\/wiki\/Visible_Ops\">Je zn\u00e1mo<\/a><\/noindex>, \u017ee 80 % probl\u00e9m\u016f nast\u00e1v\u00e1 b\u011bhem zm\u011bny konfigurace \u2014 nep\u0159\u00edm\u00fdm d\u016fkazem toho je, \u017ee v obdob\u00ed v\u00e1no\u010dn\u00edch pr\u00e1zdnin obvykle v\u0161echno prob\u00edh\u00e1 hladce. <br \/>\nOsobn\u011b jsem byl sv\u011bdkem des\u00edtek glob\u00e1ln\u00edch v\u00fdpadk\u016f kv\u016fli lidsk\u00e9 chyb\u011b: nespr\u00e1vn\u00fd p\u0159\u00edkaz, proveden\u00ed na \u0161patn\u00e9 v\u011btvi konfigurace, zapomn\u011bli na komunitu, glob\u00e1ln\u011b smazali MPLS na sm\u011brova\u010di, nastavili p\u011bt za\u0159\u00edzen\u00ed, a na \u0161est\u00e9m chybu nepost\u0159ehli, zavadili o star\u00e9 zm\u011bny, kter\u00e9 provedl n\u011bkdo jin\u00fd. Sc\u00e9n\u00e1\u0159\u016f je spousta. <\/p>\n<p>Automatika n\u00e1m umo\u017en\u00ed ud\u011blat m\u00e9n\u011b chyb, ale ve v\u011bt\u0161\u00edm m\u011b\u0159\u00edtku. Tak lze zablokovat nejen jedno za\u0159\u00edzen\u00ed, ale celou s\u00ed\u0165 najednou. <\/p>\n<p>Odjak\u017eiva na\u0161i p\u0159edkov\u00e9 kontrolovali spr\u00e1vnost prov\u00e1d\u011bn\u00fdch zm\u011bn ostr\u00fdm okem, odoln\u00fdmi koulemi a funk\u010dnost\u00ed s\u00edt\u011b po jejich nasazen\u00ed. <br \/>\nTi p\u0159edkov\u00e9, jejich\u017e pr\u00e1ce vedly k prostoj\u016fm a katastrof\u00e1ln\u00edm ztr\u00e1t\u00e1m, zanech\u00e1vali m\u00e9n\u011b potomstva a m\u011bli by se \u010dasem vyhubit, ale evoluce je pomal\u00fd proces, a proto dosud ne v\u0161ichni p\u0159edem kontroluj\u00ed zm\u011bny v laborato\u0159i. <br \/>\nNa \u0161pici pokroku jsou ti, kdo automatizovali proces testov\u00e1n\u00ed konfigurace a jej\u00ed n\u00e1sledn\u00e9 aplikace na s\u00ed\u0165. Jin\u00fdmi slovy \u2014 p\u0159evzali postup CI\/CD (<noindex><a rel=\"nofollow\" href=\"https:\/\/img.devrant.com\/devrant\/rant\/r_1535091_ErSUL.jpg\">Continuous Integration, Continuous Deployment<\/a><\/noindex>) od v\u00fdvoj\u00e1\u0159\u016f.<br \/>\nV jedn\u00e9 \u010d\u00e1sti se pod\u00edv\u00e1me, jak to realizovat pomoc\u00ed syst\u00e9mu spr\u00e1vy verz\u00ed, pravd\u011bpodobn\u011b GitHubu. <\/p>\n<blockquote><p> Jakmile si zvykn\u011bte na my\u0161lenku s\u00ed\u0165ov\u00e9ho CI\/CD, v jednu chv\u00edli se v\u00e1m metoda kontroly konfigurace aplikov\u00e1n\u00edm na pracovn\u00ed s\u00ed\u0165 bude jevit jako ran\u011b st\u0159edov\u011bk\u00e1 nev\u011bdomost. P\u0159ibli\u017en\u011b jako bouch\u00e1n\u00ed kladivem po hlavici hlavice.\n<\/p><\/blockquote>\n<p>Organick\u00fdm pokra\u010dov\u00e1n\u00edm my\u0161lenek o <b>syst\u00e9mu<\/b> spr\u00e1vy s\u00edt\u011b a CI\/CD se st\u00e1v\u00e1 plnohodnotn\u00e9 verzionov\u00e1n\u00ed konfigurace. <\/p>\n<h2>Verzov\u00e1n\u00ed<\/h2>\n<p>\nBudeme p\u0159edpokl\u00e1dat, \u017ee p\u0159i jak\u00fdchkoli zm\u011bn\u00e1ch, i t\u011bch nejmen\u0161\u00edch, dokonce na jednom nen\u00e1padn\u00e9m za\u0159\u00edzen\u00ed, cel\u00e1 s\u00ed\u0165 p\u0159ech\u00e1z\u00ed z jednoho stavu do druh\u00e9ho.<br \/>\nA my nikdy nespou\u0161t\u00edme p\u0159\u00edkaz na za\u0159\u00edzen\u00ed, ale m\u011bn\u00edme stav s\u00edt\u011b. <br \/>\nTak\u017ee bychom mohli tato stavy naz\u00fdvat verzemi?<\/p>\n<p>P\u0159edpokl\u00e1dejme, \u017ee aktu\u00e1ln\u00ed verze je 1.0.0.<br \/>\nZm\u011bnila se IP adresa smy\u010dkov\u00e9ho rozhran\u00ed na n\u011bkter\u00e9m z ToR? Jedn\u00e1 se o men\u0161\u00ed verzi \u2014 bude m\u00edt \u010d\u00edslo 1.0.1.<br \/>\nP\u0159ekontrolovali jsme politiky importu tras v BGP - to je u\u017e o n\u011bco v\u00e1\u017en\u011bj\u0161\u00ed - u\u017e 1.1.0.<br \/>\nRozhodli jsme se zbavit se IGP a p\u0159ej\u00edt jen na BGP - to u\u017e je radik\u00e1ln\u00ed zm\u011bna designu - 2.0.0.<\/p>\n<p>P\u0159itom r\u016fzn\u00e9 datov\u00e9 centra mohou m\u00edt r\u016fzn\u00e9 verze - s\u00ed\u0165 se vyv\u00edj\u00ed, instaluj\u00ed se nov\u00e1 za\u0159\u00edzen\u00ed, n\u011bkde se p\u0159id\u00e1vaj\u00ed nov\u00e9 \u00farovn\u011b spinal\u016f, jinde ne, atd.<\/p>\n<p>O <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\">semantick\u00e9 verzov\u00e1n\u00ed<\/a><\/noindex> o tom budeme mluvit v samostatn\u00e9m \u010dl\u00e1nku.<\/p>\n<p>Opakuji - jak\u00e1koli zm\u011bna (krom\u011b ladic\u00edch p\u0159\u00edkaz\u016f) je aktualizace verze. O v\u0161ech odchylk\u00e1ch od aktu\u00e1ln\u00ed verze by m\u011bli b\u00fdt informov\u00e1ni administr\u00e1to\u0159i.<\/p>\n<p>Tot\u00e9\u017e plat\u00ed pro vr\u00e1cen\u00ed zm\u011bn - to nen\u00ed zru\u0161en\u00ed posledn\u00edch p\u0159\u00edkaz\u016f, nen\u00ed to rollback pomoc\u00ed opera\u010dn\u00edho syst\u00e9mu za\u0159\u00edzen\u00ed - to je uveden\u00ed cel\u00e9 s\u00edt\u011b do nov\u00e9 (star\u00e9) verze. <\/p>\n<h2>Monitoring a samoobnova slu\u017eeb<\/h2>\n<p>\nToto zjevn\u00e9 zad\u00e1n\u00ed v modern\u00edch s\u00edt\u00edch p\u0159ech\u00e1z\u00ed na novou \u00farove\u0148.<br \/>\n\u010casto u velk\u00fdch poskytovatel\u016f slu\u017eeb panuje p\u0159\u00edstup, \u017ee spadl\u00fd servis je t\u0159eba velmi rychle opravit a vzty\u010dit nov\u00fd, m\u00edsto abychom se sna\u017eili pochopit, co se stalo.<br \/>\n\"Velmi\" znamen\u00e1, \u017ee ze v\u0161ech stran je t\u0159eba se hojn\u011b namazat monitorovac\u00edmi n\u00e1stroji, kter\u00e9 b\u011bhem sekund odhal\u00ed sebemen\u0161\u00ed odchylky od normy.<br \/>\nA nesta\u010d\u00ed zde obvykl\u00e9 metriky, jako je zat\u00ed\u017een\u00ed rozhran\u00ed nebo dostupnost uzlu. Nen\u00ed dostate\u010dn\u00e9 ani ru\u010dn\u00ed sledov\u00e1n\u00ed pohotovostn\u00edho pracovn\u00edka.<br \/>\nPro mnoh\u00e9 v\u011bci by m\u011blo b\u00fdt v\u016fbec <noindex><a rel=\"nofollow\" href=\"https:\/\/www.irisns.com\/self-healing-network-tomorrow-look-like\/\">Self-Healing<\/a><\/noindex> \u2014 monitorov\u00e1n\u00ed se rozsv\u00edtilo na \u010dervenou a \u0161lo samo p\u0159ilo\u017eit jitrocel, kde to bol\u00ed.<\/p>\n<p>A tak\u00e9 monitorujeme nejen jednotliv\u00e1 za\u0159\u00edzen\u00ed, ale i zdrav\u00ed s\u00edt\u011b jako celku, p\u0159i\u010dem\u017e jak v whiteboxu, co\u017e je relativn\u011b pochopiteln\u00e9, tak v blackboxu, co\u017e u\u017e je slo\u017eit\u011bj\u0161\u00ed.<\/p>\n<p>\nCo budeme pot\u0159ebovat pro realizaci tak ambici\u00f3zn\u00edch pl\u00e1n\u016f?<\/p>\n<ul>\n<li>M\u00edt seznam v\u0161ech za\u0159\u00edzen\u00ed v s\u00edti, jejich lokalizaci, role, modely, verze softwaru. <br \/>\n <i>kazan-leaf-1.lmu.net, Kazan, leaf, Juniper QFX 5120, R18.3.<\/i>\n <\/li>\n<li>M\u00edt syst\u00e9m pro popis s\u00ed\u0165ov\u00fdch slu\u017eeb. <br \/>\n <i>IGP, BGP, L2\/3VPN, Policy, ACL, NTP, SSH.<\/i><\/li>\n<li>Um\u011bt inicializovat za\u0159\u00edzen\u00ed. <br \/>\n <i>Hostname, Mgmt IP, Mgmt Route, U\u017eivatel\u00e9, RSA-Kl\u00ed\u010de, LLDP, NETCONF<\/i><\/li>\n<li>Nakonfigurovat za\u0159\u00edzen\u00ed a vr\u00e1tit konfiguraci na po\u017eadovanou (v\u010detn\u011b star\u0161\u00ed) verzi.<\/li>\n<li>Testovat konfiguraci<\/li>\n<li>Pravideln\u011b kontrolovat stav v\u0161ech za\u0159\u00edzen\u00ed z hlediska odchylek od aktu\u00e1ln\u00edho a informovat p\u0159\u00edslu\u0161n\u00e9 osoby.<br \/>\n <i>V noci n\u011bkdo ti\u0161e p\u0159idal pravidlo do ACL<\/i>.<\/li>\n<li>Sledovat funk\u010dnost.<\/li>\n<\/ul>\n<p><\/p>\n<h1>N\u00e1stroje<\/h1>\n<p>\nZn\u00ed to dost slo\u017eit\u011b, abychom mohli za\u010d\u00edt dekomponovat projekt na komponenty.<\/p>\n<p>A bude jich deset:<\/p>\n<ol>\n<li>Invent\u00e1rn\u00ed syst\u00e9m<\/li>\n<li>Syst\u00e9m spr\u00e1vy IP prostoru<\/li>\n<li>Syst\u00e9m popisu s\u00ed\u0165ov\u00fdch slu\u017eeb<\/li>\n<li>Mechanismus inicializace za\u0159\u00edzen\u00ed<\/li>\n<li>Vendorsky agnostick\u00fd konfigura\u010dn\u00ed model<\/li>\n<li>Vendorsky specifick\u00fd ovlada\u010d<\/li>\n<li>Mechanismus dod\u00e1n\u00ed konfigurace do za\u0159\u00edzen\u00ed<\/li>\n<li>CI\/CD<\/li>\n<li>Mechanismus z\u00e1lohov\u00e1n\u00ed a hled\u00e1n\u00ed odchylek<\/li>\n<li>Syst\u00e9m monitorov\u00e1n\u00ed<\/li>\n<\/ol>\n<blockquote><p> To je ostatn\u011b p\u0159\u00edklad toho, jak se m\u011bnil pohled na c\u00edle cyklu \u2014 v n\u00e1vrhu komponent bylo 4.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/91132e29d359a4042b213529511f6d7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa ilustraci jsem zobrazil v\u0161echny komponenty a samotn\u00e9 za\u0159\u00edzen\u00ed. <br \/>\nProl\u00ednaj\u00edc\u00ed se komponenty spolu vz\u00e1jemn\u011b interaguj\u00ed. <br \/>\n\u010c\u00edm v\u011bt\u0161\u00ed blok, t\u00edm v\u00edce pozornosti je t\u0159eba v\u011bnovat t\u00e9to komponent\u011b. <\/p>\n<p><\/p>\n<h2>Komponenta 1. Invent\u00e1rn\u00ed syst\u00e9m<\/h2>\n<p>\nZ\u0159ejm\u011b chceme v\u011bd\u011bt, jak\u00e9 za\u0159\u00edzen\u00ed, kde stoj\u00ed, k \u010demu je p\u0159ipojeno. <br \/>\nInvent\u00e1rn\u00ed syst\u00e9m je ned\u00edlnou sou\u010d\u00e1st\u00ed ka\u017ed\u00e9ho podniku. <br \/>\nNej\u010dast\u011bji m\u00e1 podnik pro s\u00ed\u0165ov\u00e1 za\u0159\u00edzen\u00ed zvl\u00e1\u0161tn\u00ed invent\u00e1rn\u00ed syst\u00e9m, kter\u00fd \u0159e\u0161\u00ed specifi\u010dt\u011bj\u0161\u00ed \u00fakoly. <br \/>\nV r\u00e1mci cyklu \u010dl\u00e1nk\u016f budeme tento syst\u00e9m naz\u00fdvat DCIM \u2014 Data Center Infrastructure Management. A\u010dkoli samotn\u00fd term\u00edn DCIM zahrnuje daleko v\u00edce.<\/p>\n<p>Pro na\u0161e \u00fa\u010dely v n\u011bm budeme uchov\u00e1vat n\u00e1sleduj\u00edc\u00ed informace o za\u0159\u00edzen\u00ed:<\/p>\n<ul>\n<li>Invent\u00e1rn\u00ed \u010d\u00edslo<\/li>\n<li>N\u00e1zev\/Popis <\/li>\n<li>Model (<i>Huawei CE12800, Juniper QFX5120 atd.<\/i>)<\/li>\n<li>Charakteristick\u00e9 parametry (<i>desky, rozhran\u00ed atd.<\/i>)<\/li>\n<li>Role (<i>Leaf, Spine, Border Router atd.<\/i>)<\/li>\n<li>Um\u00edst\u011bn\u00ed (<i>region, m\u011bsto, datov\u00e9 centrum, sk\u0159\u00ed\u0148, jednotka<\/i>)<\/li>\n<li>Interkonekce mezi za\u0159\u00edzen\u00edmi<\/li>\n<li>Topologie s\u00edt\u011b<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/fac708b1bf3640a943f90247bff8216e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe jasn\u00e9, \u017ee chceme v\u011bd\u011bt v\u0161echno toto. <br \/>\nPom\u016f\u017ee to v\u0161ak k automatizaci? <br \/>\nBezpochyby. <br \/>\nNap\u0159\u00edklad v\u00edme, \u017ee v tomto datov\u00e9m centru na Leaf switch\u00edch, pokud jde o Huawei, by se ACL pro filtrov\u00e1n\u00ed ur\u010dit\u00e9ho provozu m\u011bly aplikovat na VLAN, a pokud se jedn\u00e1 o Juniper, tak na unit 0 fyzick\u00e9ho rozhran\u00ed. <br \/>\nNebo je pot\u0159eba nasadit nov\u00fd Syslog server na v\u0161echny hranice regionu.<\/p>\n<p>V n\u011bm tak\u00e9 budeme uchov\u00e1vat virtu\u00e1ln\u00ed s\u00ed\u0165ov\u00e1 za\u0159\u00edzen\u00ed, nap\u0159\u00edklad virtu\u00e1ln\u00ed sm\u011brova\u010de nebo routovac\u00ed reflektory. M\u016f\u017eeme p\u0159idat DNS servery, NTP, Syslog a vlastn\u011b cokoliv, co se n\u011bjak\u00fdm zp\u016fsobem vztahuje k s\u00edti. <\/p>\n<h2>Komponenta 2. Syst\u00e9m spr\u00e1vy IP prostoru<\/h2>\n<p>\nAno, v dne\u0161n\u00ed dob\u011b existuj\u00ed skupiny lid\u00ed, kter\u00e9 vedou z\u00e1znamy o p\u0159edpon\u00e1ch a IP adres\u00e1ch v souborech Excel. Modern\u00ed p\u0159\u00edstup je v\u0161ak datab\u00e1zov\u00fd s frontendem na nginx\/apache, API a \u0161irok\u00fdmi funkcemi pro spr\u00e1vu IP adres a s\u00edt\u00ed s rozd\u011blen\u00edm do VRF.<br \/>\nIPAM \u2014 Spr\u00e1va IP adres. <\/p>\n<p>Pro na\u0161e \u00fa\u010dely v n\u00ed budeme uchov\u00e1vat n\u00e1sleduj\u00edc\u00ed informace:<\/p>\n<ul>\n<li>VLAN<\/li>\n<li>VRF<\/li>\n<li>S\u00edt\u011b\/Pods\u00edt\u011b<\/li>\n<li>IP adres<\/li>\n<li>P\u0159i\u0159azen\u00ed adres k za\u0159\u00edzen\u00edm, s\u00edt\u00edm k lokalit\u00e1m a \u010d\u00edsl\u016fm VLAN<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/6d476d48f95ed663d84cae052a86d129.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOp\u011bt je jasn\u00e9, \u017ee chceme m\u00edt jistotu, \u017ee p\u0159i p\u0159id\u011blov\u00e1n\u00ed nov\u00e9 IP adresy pro smy\u010dku ToR nenaraz\u00edme na to, \u017ee ji\u017e byla n\u011bkomu p\u0159id\u011blena. Nebo \u017ee jsme stejn\u00fd prefix pou\u017eili dvakr\u00e1t na r\u016fzn\u00fdch konc\u00edch s\u00edt\u011b. <br \/>\nAle jak to pom\u016f\u017ee v automatizaci? <br \/>\nSnadno. <br \/>\n\u017d\u00e1d\u00e1me syst\u00e9m o p\u0159edponu s rol\u00ed Loopbacks, ve kter\u00e9 jsou k dispozici IP adresy k p\u0159i\u0159azen\u00ed \u2014 pokud je nalezena, p\u0159i\u0159azujeme adresu, pokud ne, \u017e\u00e1d\u00e1me o vytvo\u0159en\u00ed nov\u00e9 p\u0159edpony. <br \/>\nNebo p\u0159i vytv\u00e1\u0159en\u00ed konfigurace za\u0159\u00edzen\u00ed se z t\u00e9to stejn\u00e9 soustavy m\u016f\u017eeme dozv\u011bd\u011bt, v jak\u00e9m VRF by m\u011bl b\u00fdt rozhran\u00ed. <br \/>\nA p\u0159i spu\u0161t\u011bn\u00ed nov\u00e9ho serveru skript zjist\u00ed v syst\u00e9mu, v jak\u00e9m serverov\u00e9m switche, v jak\u00e9m portu a jak\u00e1 pods\u00ed\u0165 je p\u0159i\u0159azena k rozhran\u00ed \u2014 z n\u00ed se bude p\u0159i\u0159azovat adresa serveru. <\/p>\n<p>\nNab\u00edz\u00ed se my\u0161lenka slou\u010dit DCIM a IPAM do jedn\u00e9 soustavy, abychom se vyhnuli duplicitn\u00edm funkc\u00edm a neudr\u017eovali dv\u011b podobn\u00e9 entit. <br \/>\nA to ud\u011bl\u00e1me. <\/p>\n<h2>Komponenta 3. Syst\u00e9m popisu s\u00ed\u0165ov\u00fdch slu\u017eeb<\/h2>\n<p>\nPokud prvn\u00ed dv\u011b soustavy uchov\u00e1vaj\u00ed prom\u011bnn\u00e9, kter\u00e9 je je\u0161t\u011b t\u0159eba n\u011bjak pou\u017e\u00edt, t\u0159et\u00ed popisuje pro ka\u017edou roli za\u0159\u00edzen\u00ed, jak by m\u011blo b\u00fdt nastaveno. <br \/>\nJe dobr\u00e9 vy\u010dlenit dva r\u016fzn\u00e9 typy s\u00ed\u0165ov\u00fdch slu\u017eeb: <\/p>\n<ul>\n<li>Infrastrukturn\u00ed<\/li>\n<li>Klientsk\u00e9.<\/li>\n<\/ul>\n<p>Prvn\u00ed maj\u00ed zajistit z\u00e1kladn\u00ed konektivitu a spr\u00e1vu za\u0159\u00edzen\u00ed. Pat\u0159\u00ed sem VTY, SNMP, NTP, Syslog, AAA, sm\u011brovac\u00ed protokoly, CoPP atd. <br \/>\nDruh\u00e9 organizuj\u00ed slu\u017ebu pro klienta: MPLS L2\/L3VPN, GRE, VXLAN, VLAN, L2TP atd. <br \/>\nSamoz\u0159ejm\u011b existuj\u00ed i mezistupn\u011b \u2014 jak za\u0159adit MPLS LDP, BGP? A sm\u011brovac\u00ed protokoly mohou b\u00fdt tak\u00e9 pou\u017eity pro klienty. Ale to nen\u00ed z\u00e1sadn\u00ed. <\/p>\n<p>Oba typy slu\u017eeb se rozkl\u00e1daj\u00ed na konfigura\u010dn\u00ed primitiva:<\/p>\n<ul>\n<li>fyzick\u00e1 a logick\u00e1 rozhran\u00ed (tag\/untag, mtu)<\/li>\n<li>IP adresy a VRF (IP, IPv6, VRF)<\/li>\n<li>ACL a politiky zpracov\u00e1n\u00ed provozu<\/li>\n<li>Protokoly (IGP, BGP, MPLS)<\/li>\n<li>Sm\u011brovac\u00ed politiky (p\u0159edponov\u00e9 seznamy, komunity, ASN filtry).<\/li>\n<li>Slu\u017eebn\u00ed servery (SSH, NTP, LLDP, Syslog\u2026)<\/li>\n<li>Atd.<\/li>\n<\/ul>\n<p>\nJak p\u0159esn\u011b to ud\u011bl\u00e1me, zat\u00edm nev\u00edm. Probereme to v samostatn\u00e9m \u010dl\u00e1nku.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/092bc3a4b875f4a6422ee13fb580ba4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPokud bychom byli bl\u00ed\u017ee k realit\u011b, mohli bychom popsat, co<br \/>\nLeafov\u00fd p\u0159ep\u00edna\u010d by m\u011bl m\u00edt BGP relace se v\u0161emi p\u0159ipojen\u00fdmi Spine p\u0159ep\u00edna\u010di, importovat do procesu p\u0159ipojen\u00e9 s\u00edt\u011b, p\u0159ij\u00edmat od Spine p\u0159ep\u00edna\u010d\u016f pouze s\u00edt\u011b z ur\u010dit\u00e9ho prefixu. Omezit CoPP IPv6 ND na 10 pps atd. <br \/>\nSpiny, na druh\u00e9 stran\u011b, udr\u017euj\u00ed relace se v\u0161emi p\u0159ipojen\u00fdmi leafy a funguj\u00ed jako root-reflektor, p\u0159ij\u00edmaj\u00ed od nich pouze trasy ur\u010dit\u00e9 d\u00e9lky a s ur\u010ditou komunitou.<\/p>\n<h2>Komponent 4. Mechanismus inicializace za\u0159\u00edzen\u00ed<\/h2>\n<p>\nPod t\u00edmto nadpisem spojuji \u0159adu \u010dinnost\u00ed, kter\u00e9 mus\u00ed prob\u011bhnout, aby se za\u0159\u00edzen\u00ed objevilo na radarov\u00fdch syst\u00e9mech a bylo mo\u017en\u00e9 na n\u011bj p\u0159istupovat vzd\u00e1len\u011b.<\/p>\n<ol>\n<li>Zaregistrovat za\u0159\u00edzen\u00ed v invent\u00e1\u0159n\u00edm syst\u00e9mu.<\/li>\n<li>Vyhradit IP adresu pro spr\u00e1vu.<\/li>\n<li>Nastavit z\u00e1kladn\u00ed p\u0159\u00edstup k za\u0159\u00edzen\u00ed: <br \/>\nHostname, IP adresa spr\u00e1vy, trasa do spr\u00e1vcovsk\u00e9 s\u00edt\u011b, u\u017eivatel\u00e9, SSH kl\u00ed\u010de, protokoly \u2014 telnet\/SSH\/NETCONF<\/li>\n<\/ol>\n<p>Existuj\u00ed t\u0159i p\u0159\u00edstupy:<\/p>\n<ul>\n<li>\u00dapln\u011b ru\u010dn\u011b. Za\u0159\u00edzen\u00ed je p\u0159ivezeno na stand, kde b\u011b\u017en\u00fd organick\u00fd \u010dlov\u011bk ho zaregistruje v syst\u00e9mech, p\u0159ipoj\u00ed se p\u0159es konzoli a nastav\u00ed. M\u016f\u017ee fungovat na mal\u00fdch statick\u00fdch s\u00edt\u00edch.<\/li>\n<li>ZTP \u2014 Zero Touch Provisioning. Hardware dorazil, nastavil se, prost\u0159ednictv\u00edm DHCP z\u00edskal adresu, nav\u0161t\u00edvil speci\u00e1ln\u00ed server, automaticky se nastavil. <\/li>\n<li>Infrastruktura konzolov\u00fdch server\u016f, kde po\u010d\u00e1te\u010dn\u00ed nastaven\u00ed prob\u00edh\u00e1 automaticky p\u0159es konzolov\u00fd port.<\/li>\n<\/ul>\n<p>O v\u0161ech t\u0159ech se pobav\u00edme v samostatn\u00e9m \u010dl\u00e1nku.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/6d8d061e53b508edbbcbd98fe496ca91.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 5. Model konfigurace nez\u00e1visl\u00fd na dodavateli<\/h2>\n<p>\nDoposud byly v\u0161echny syst\u00e9my roztrou\u0161en\u00e9 kusy, poskytuj\u00edc\u00ed prom\u011bnn\u00e9 a deklarativn\u00ed popis toho, co bychom cht\u011bli vid\u011bt v s\u00edti. Ale d\u0159\u00edve \u010di pozd\u011bji se budeme muset vypo\u0159\u00e1dat s konkr\u00e9tnost\u00ed. <br \/>\nV t\u00e9to f\u00e1zi se pro ka\u017ed\u00e9 konkr\u00e9tn\u00ed za\u0159\u00edzen\u00ed primitivy, slu\u017eby a prom\u011bnn\u00e9 kombinuj\u00ed do konfigura\u010dn\u00edho modelu, kter\u00fd fakticky popisuje \u00faplnou konfiguraci dan\u00e9ho za\u0159\u00edzen\u00ed nez\u00e1visl\u00fdm zp\u016fsobem na dodavateli. <br \/>\nJak\u00fd p\u0159\u00ednos m\u00e1 tento krok? Pro\u010d hned nesestavit konfiguraci za\u0159\u00edzen\u00ed, kterou lze jednodu\u0161e nahr\u00e1t? <br \/>\nVe skute\u010dnosti to umo\u017e\u0148uje vy\u0159e\u0161it t\u0159i \u00fakoly:<\/p>\n<ol>\n<li> Nep\u0159izp\u016fsobovat se konkr\u00e9tn\u00edmu rozhran\u00ed interakce se za\u0159\u00edzen\u00edm. A\u0165 u\u017e jde o CLI, NETCONF, RESTCONF, SNMP \u2014 model bude stejn\u00fd.<\/li>\n<li> Nedr\u017eet po\u010det \u0161ablon\/skript\u016f podle po\u010dtu dodavatel\u016f v s\u00edti a v p\u0159\u00edpad\u011b zm\u011bny n\u00e1vrhu m\u011bnit stejn\u00e9 v\u011bci na v\u00edce m\u00edstech.<\/li>\n<li> Na\u010d\u00edst konfiguraci z za\u0159\u00edzen\u00ed (z\u00e1lohy), rozlo\u017eit ji do p\u0159esn\u011b stejn\u00e9ho modelu a p\u0159\u00edmo porovnat mezi sebou c\u00edlovou konfiguraci a st\u00e1vaj\u00edc\u00ed pro v\u00fdpo\u010det rozd\u00edlu a p\u0159\u00edpravu konfigura\u010dn\u00edho patch, kter\u00fd zm\u011bn\u00ed pouze ty \u010d\u00e1sti, kter\u00e9 je t\u0159eba, nebo pro odhalen\u00ed odchylek.<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/a154c42ebe7978fcc5b2ce4f235516c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nD\u016fsledkem tohoto kroku z\u00edsk\u00e1me konfigura\u010dn\u00ed model nez\u00e1visl\u00fd na dodavateli.<\/p>\n<h2>Komponenta 6. Specifick\u00fd ovlada\u010d pro dodavatele.<\/h2>\n<p>\nNen\u00ed dobr\u00e9 m\u00edt nad\u011bje, \u017ee n\u011bkdy bude mo\u017en\u00e9 konfigurovat Cisco stejn\u011b jako Juniper, jednodu\u0161e zasl\u00e1n\u00edm zcela stejn\u00fdch p\u0159\u00edkaz\u016f. I p\u0159es st\u00e1le rostouc\u00ed popularitu whitebox\u016f a vznik podpory NETCONF, RESTCONF, OpenConfig se konkr\u00e9tn\u00ed obsah dod\u00e1van\u00fd t\u011bmito protokoly li\u0161\u00ed mezi dodavateli a to je jedna z jejich konkuren\u010dn\u00edch v\u00fdhod, kterou tak snadno nevzdaj\u00ed. <br \/>\nJe to podobn\u00e9 jako u OpenContrail a OpenStack, kter\u00e9 maj\u00ed jako sv\u00e9 NorthBound rozhran\u00ed RestAPI, o\u010dek\u00e1vaj\u00ed naprosto r\u016fzn\u00e1 vol\u00e1n\u00ed. <\/p>\n<p>Tak\u017ee v p\u00e1t\u00e9m kroku mus\u00ed nez\u00e1visl\u00fd na dodavateli model p\u0159ijmout takovou podobu, ve kter\u00e9 se dostane na hardware. <br \/>\nA zde plat\u00ed, \u017ee v\u0161echny prost\u0159edky jsou povoleny (ne): CLI, NETCONF, RESTCONF, SNMP se jednou pou\u017eij\u00ed.<\/p>\n<p>Proto budeme pot\u0159ebovat ovlada\u010d, kter\u00fd p\u0159evede v\u00fdsledek p\u0159edchoz\u00edho kroku do pot\u0159ebn\u00e9ho form\u00e1tu konkr\u00e9tn\u00edho dodavatele: sadu CLI p\u0159\u00edkaz\u016f, strukturu XML.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/6ed8e935183075fda60a209477f84937.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponenta 7. Mechanismus doru\u010den\u00ed konfigurace na za\u0159\u00edzen\u00ed.<\/h2>\n<p>\nKonfiguraci jsme toti\u017e vygenerovali, ale mus\u00edme ji je\u0161t\u011b doru\u010dit na za\u0159\u00edzen\u00ed \u2014 a o\u010dividn\u011b ne ru\u010dn\u011b. <br \/>\n<b>Za prv\u00e9<\/b>, p\u0159ed n\u00e1mi se tedy objevuje ot\u00e1zka, jak\u00fd transport budeme pou\u017e\u00edvat? V\u00fdb\u011br je dnes ji\u017e docela \u0161irok\u00fd:<\/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 (i kdy\u017e v seznamu vy\u010dn\u00edv\u00e1, proto\u017ee je to zp\u016fsob, jak dodat FIB, nikoliv nastaven\u00ed)<\/li>\n<\/ul>\n<p>D\u00e1me si zde jasn\u011b na pravou m\u00edru. CLI \u2014 to je legacy. SNMP\u2026 ehm, ehm.<br \/>\nRESTCONF \u2014 zat\u00edm nezn\u00e1m\u00e1 bytost, REST API nepodporuje t\u00e9m\u011b\u0159 nikdo. Proto se v cyklu zam\u011b\u0159\u00edme na NETCONF.<\/p>\n<p>Jak u\u017e \u010dten\u00e1\u0159 pochopil, s rozhran\u00edm jsme se v tuto chv\u00edli ji\u017e shodli \u2014 v\u00fdsledek p\u0159edchoz\u00edho kroku je ji\u017e p\u0159edstaven v podob\u011b zvolen\u00e9ho rozhran\u00ed.<\/p>\n<p><b>Za druh\u00e9<\/b>, a jak\u00fdmi n\u00e1stroji to ud\u011bl\u00e1me?<br \/>\nI zde je v\u00fdb\u011br obrovsk\u00fd:<\/p>\n<ul>\n<li>Vlastn\u00ed skript nebo platforma. Vybav\u00edme se ncclient a asyncIO a ud\u011bl\u00e1me to sami. Co n\u00e1s stoj\u00ed postavit syst\u00e9m nasazen\u00ed od nuly?<\/li>\n<li>Ansible se svou bohatou knihovnou s\u00ed\u0165ov\u00fdch modul\u016f.<\/li>\n<li>Salt s jeho slabou podporou pro s\u00ed\u0165 a vazbou na Napalm.<\/li>\n<li>Samotn\u00fd Napalm, kter\u00fd zn\u00e1 p\u00e1r dodavatel\u016f a to je v\u0161e, sbohem.<\/li>\n<li>Nornir \u2014 dal\u0161\u00ed stvo\u0159en\u00ed, kter\u00e9 rozeb\u00edr\u00e1me v budoucnosti.<\/li>\n<\/ul>\n<p>Zde favorit je\u0161t\u011b nen\u00ed vybr\u00e1n \u2014 budeme zkoumat.<\/p>\n<p>Co je tu je\u0161t\u011b d\u016fle\u017eit\u00e9? D\u016fsledky aplikace konfigurace. <br \/>\n\u00dasp\u011b\u0161n\u011b nebo ne. Z\u016fstal p\u0159\u00edstup k za\u0159\u00edzen\u00ed nebo ne. <br \/>\nZd\u00e1 se, \u017ee zde pom\u016f\u017ee commit s potvrzen\u00edm a validac\u00ed toho, co bylo do za\u0159\u00edzen\u00ed nahr\u00e1no. <br \/>\nTo v kombinaci se spr\u00e1vnou implementac\u00ed NETCONF zna\u010dn\u011b zu\u017euje okruh vhodn\u00fdch za\u0159\u00edzen\u00ed \u2014 norm\u00e1ln\u00ed commity podporuje jen mal\u00fd po\u010det v\u00fdrobc\u016f. Ale to je jen jeden z po\u017eadavk\u016f v <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>. Nakonec se nikdo nezab\u00fdv\u00e1 t\u00edm, \u017ee \u017e\u00e1dn\u00fd rusk\u00fd dodavatel nevyhov\u00ed podm\u00ednk\u00e1m 32*100GE rozhran\u00ed. Nebo se t\u00edm n\u011bkdo zab\u00fdv\u00e1?<\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/59d8ad3b55b9c107642550bb06fc759a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Komponenta 8. CI\/CD<\/h2>\n<p>\nV tuto chv\u00edli m\u00e1me ji\u017e p\u0159ipravenou konfiguraci pro v\u0161echna za\u0159\u00edzen\u00ed s\u00edt\u011b.<br \/>\nP\u00ed\u0161u \"pro v\u0161echna\", proto\u017ee mluv\u00edme o verzionov\u00e1n\u00ed stavu s\u00edt\u011b. A i kdy\u017e je pot\u0159eba zm\u011bnit nastaven\u00ed pouze jednoho switche, zm\u011bny se po\u010d\u00edtaj\u00ed pro celou s\u00ed\u0165. Je jasn\u00e9, \u017ee mohou b\u00fdt v tomto p\u0159\u00edpad\u011b nulov\u00e9 pro v\u011bt\u0161inu uzl\u016f.<\/p>\n<p>Ale jak u\u017e bylo \u0159e\u010deno, nejsme p\u0159ece n\u011bjac\u00ed barba\u0159i, abychom to v\u0161echno hned hodili do produkce. <br \/>\nVygenerovan\u00e1 konfigurace mus\u00ed nejprve proj\u00edt Pipeline CI\/CD.<\/p>\n<blockquote><p>CI\/CD znamen\u00e1 Continuous Integration, Continuous Deployment. Je to p\u0159\u00edstup, p\u0159i kter\u00e9m t\u00fdm nezve\u0159ej\u0148uje nov\u00fd major release jednou za p\u016fl roku, kdy zcela nahrad\u00ed star\u00fd, ale pravideln\u011b inkriment\u00e1ln\u011b zav\u00e1d\u00ed (Deployment) novou funkcionalitu po mal\u00fdch kroc\u00edch, z nich\u017e ka\u017ed\u00fd je d\u016fkladn\u011b testov\u00e1n na kompatibilitu, bezpe\u010dnost a funk\u010dnost (Integration).\n<\/p><\/blockquote>\n<p>K tomu m\u00e1me syst\u00e9m kontroly verz\u00ed, kter\u00fd sleduje zm\u011bny konfigurace, laborato\u0159, kde se testuje, zda klientsk\u00fd servis nepad\u00e1, monitorovac\u00ed syst\u00e9m, kter\u00fd tento fakt ov\u011b\u0159uje, a posledn\u00ed krok - nasazen\u00ed zm\u011bn do produk\u010dn\u00ed s\u00edt\u011b.<\/p>\n<p>S v\u00fdjimkou ladic\u00edch p\u0159\u00edkaz\u016f mus\u00ed v\u0161echny zm\u011bny v s\u00edti proj\u00edt CI\/CD pipeline - to je na\u0161e z\u00e1ruka klidn\u00e9ho \u017eivota a dlouh\u00e9 \u0161\u0165astn\u00e9 kari\u00e9ry.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/101a5ff87c7a9c7b6776aca9daf762a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 9. Syst\u00e9m z\u00e1lohov\u00e1n\u00ed a vyhled\u00e1v\u00e1n\u00ed odchylek<\/h2>\n<p>\nO z\u00e1loh\u00e1ch je zbyte\u010dn\u00e9 mluvit podruh\u00e9. <br \/>\nProst\u011b je budeme ukl\u00e1dat na z\u00e1klad\u011b cron \u00faloh nebo p\u0159i zm\u011bn\u011b konfigurace v gitu.<\/p>\n<p>Ale druh\u00e1 \u010d\u00e1st je zaj\u00edmav\u011bj\u0161\u00ed - n\u011bkdo by m\u011bl sledovat tyto z\u00e1lohy. A v n\u011bkter\u00fdch p\u0159\u00edpadech by tento n\u011bkdo m\u011bl j\u00edt a vr\u00e1tit v\u0161e, jak bylo, a v jin\u00fdch, upozornit n\u011bkoho na to, \u017ee je n\u011bco \u0161patn\u011b. <br \/>\nNap\u0159\u00edklad, pokud se objevil n\u011bjak\u00fd nov\u00fd u\u017eivatel, kter\u00fd nen\u00ed uveden v prom\u011bnn\u00fdch, je pot\u0159eba ho odpojit daleko od hacku. A pokud je nov\u00e9 pravidlo firewallu - rad\u011bji se do toho nepou\u0161t\u011bt, mo\u017en\u00e1 n\u011bkdo jen zapnul lad\u011bn\u00ed, a nebo nov\u00fd servis, ne\u0161ika, to nezapsal podle p\u0159edpis\u016f, ale u\u017e do n\u011bj lid\u00e9 \u0161li.<\/p>\n<p>Z \u017e\u00e1dn\u00e9ho mal\u00e9ho delta v m\u011b\u0159\u00edtku cel\u00e9 s\u00edt\u011b se stejn\u011b nedostaneme, bez ohledu na jak\u00e9koliv automatiza\u010dn\u00ed syst\u00e9my a \u017eeleznou ruku veden\u00ed. Pro lad\u011bn\u00ed probl\u00e9m\u016f stejn\u011b nikdo nebude zasahovat do syst\u00e9my konfigurace. T\u00edm sp\u00ed\u0161e, \u017ee model konfigurace to m\u016f\u017ee ani neumo\u017e\u0148ovat. <\/p>\n<blockquote><p>Nap\u0159\u00edklad, pravidlo firewallu pro po\u010d\u00edt\u00e1n\u00ed po\u010dtu paket\u016f na ur\u010ditou IP, pro lokalizaci probl\u00e9mu - zcela b\u011b\u017en\u00e1 do\u010dasn\u00e1 konfigurace.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/390f78139d336f1fc2c60573bccfe76c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponent 10. Syst\u00e9m monitorov\u00e1n\u00ed<\/h2>\n<p>\nZpo\u010d\u00e1tku jsem necht\u011bl rozeb\u00edrat t\u00e9ma monitorov\u00e1n\u00ed - je to p\u0159ece jeden z objemn\u00fdch, kontroverzn\u00edch a slo\u017eit\u00fdch t\u00e9mat. Ale z pr\u016fb\u011bhu se uk\u00e1zalo, \u017ee je to neodmysliteln\u00e1 sou\u010d\u00e1st automatizace. A nelze se j\u00ed vyhnout alespo\u0148 bez praxe. <\/p>\n<p>Pokud to rozvinu - je to organick\u00e1 \u010d\u00e1st procesu CI\/CD. Po nasazen\u00ed konfigurace do s\u00edt\u011b, pot\u0159ebujeme um\u011bt ur\u010dit, zda je nyn\u00ed v\u0161e v po\u0159\u00e1dku. <br \/>\nA mluv\u00edme nejen a nejen o grafech vyu\u017eit\u00ed rozhran\u00ed nebo dostupnosti uzl\u016f, ale o v mnohem jemn\u011bj\u0161\u00edch v\u011bcech - p\u0159\u00edtomnosti pot\u0159ebn\u00fdch tras, jejich atribit\u016f, po\u010dtu BGP sezen\u00ed, OSPF soused\u016f, End-to-End funk\u010dnosti nad\u0159azen\u00fdch servis\u016f.<br \/>\nNebyly zastaveny sb\u011bry s sistemov\u00fdmi logy na extern\u00ed server, nepraskl SFlow agent, neza\u010daly se zvy\u0161ovat ztr\u00e1ty v front\u00e1ch, nenaru\u0161ila se spojitost mezi n\u011bjakou dvojic\u00ed prefix\u016f?<\/p>\n<p>V samostatn\u00e9m \u010dl\u00e1nku se nad t\u00edm zamysl\u00edme.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/08aeee4939081abb21e61abadd0ce5de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Automatizace pro ty nejmen\u0161\u00ed. Nult\u00e1 \u010d\u00e1st. Pl\u00e1nov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/07\/13c186070c85fd00f7b6923df154f1b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h1>Z\u00e1v\u011br<\/h1>\n<p>\nJako z\u00e1klad jsem zvolil jeden z modern\u00edch design\u016f datacentrov\u00e9 s\u00edt\u011b \u2014 L3 Clos Fabric s BGP jako protokolem routov\u00e1n\u00ed.<br \/>\nS\u00ed\u0165 budeme tentokr\u00e1t stav\u011bt na Juniperu, proto\u017ee nyn\u00ed je rozhran\u00ed JunOs velice p\u0159\u00edv\u011btiv\u00e9.<\/p>\n<p>Ukomplikujeme si \u017eivot pou\u017e\u00edv\u00e1n\u00edm pouze Open Source n\u00e1stroj\u016f a v\u00edce dodavatelskou s\u00edt\u00ed \u2014 tak\u017ee krom\u011b Juniperu vyberu b\u011bhem procesu tak\u00e9 dal\u0161\u00edho \u0161\u0165astlivce.<\/p>\n<p>Pl\u00e1n budouc\u00edch publikac\u00ed vypad\u00e1 p\u0159ibli\u017en\u011b takto:<br \/>\nNejprve budu mluvit o virtu\u00e1ln\u00edch s\u00edt\u00edch. P\u0159edev\u0161\u00edm proto, \u017ee m\u011b to zaj\u00edm\u00e1, a druh\u00fdm d\u016fvodem je, \u017ee bez toho nebude design infrastruktur\u00e1ln\u00ed s\u00edt\u011b p\u0159\u00edli\u0161 srozumiteln\u00fd.<br \/>\nPot\u00e9 se skute\u010dn\u011b zam\u011b\u0159\u00edm na design s\u00edt\u011b: topologii, routov\u00e1n\u00ed, politiky.<br \/>\nSestav\u00edme laboratorn\u00ed stanici.<br \/>\nZamysl\u00edme se a mo\u017en\u00e1 si vyzkou\u0161\u00edme inicializaci za\u0159\u00edzen\u00ed v s\u00edti.<br \/>\nA d\u00e1l se pod\u00edv\u00e1me na ka\u017edou komponentu v intimn\u00edch podrobnostech.<\/p>\n<p>A ano, neslibuji, \u017ee elegantn\u011b zakon\u010d\u00edm tuto s\u00e9rii hotov\u00fdm \u0159e\u0161en\u00edm. \ud83d\ude42<\/p>\n<h5>U\u017eite\u010dn\u00e9 odkazy<\/h5>\n<p><\/p>\n<ul>\n<li>Ne\u017e se pono\u0159\u00edme do s\u00e9rie, je dobr\u00e9 p\u0159e\u010d\u00edst knihu Nata\u0161i Samoylenko <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.gitbook.io\/pyneng\/\">Python pro s\u00ed\u0165ov\u00e9 in\u017een\u00fdry<\/a><\/noindex>. A mo\u017en\u00e1 tak\u00e9 absolvovat <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.github.io\/pyneng-online\/\">kurz<\/a><\/noindex>.<\/li>\n<li>U\u017eite\u010dn\u00e9 bude tak\u00e9 p\u0159e\u010d\u00edst si <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7938\">RFC<\/a><\/noindex> o designu datacentrov\u00fdch tov\u00e1ren od Facebooku od Petra Lapu\u0161ova.<\/li>\n<li>O tom, jak funguje overlay SDN, v\u00e1m d\u00e1 p\u0159edstavu dokumentace k architektu\u0159e. <noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/Tungsten-Fabric-Architecture.html\">Tungsten Fabric<\/a><\/noindex> (d\u0159\u00edve Open Contrail).<\/li>\n<\/ul>\n<h5>D\u011bkuji<\/h5>\n<p>\nRomanu Gorgemu. Za koment\u00e1\u0159e a \u00fapravy.<br \/>\nAr\u0165omu \u010cernobajovi. Za KDPV.<br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Automatizace pro nejmen\u0161\u00ed. \u010c\u00e1st nult\u00e1. Pl\u00e1nov\u00e1n\u00ed | ProHoster","description":"SDCM skon\u010dil, ale nezvladateln\u00e1 touha ps\u00e1t z\u016fstala.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/35972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=35972"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/35972\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/26891"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=35972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=35972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=35972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}