{"id":80289,"date":"2020-05-05T01:42:36","date_gmt":"2020-05-04T23:42:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev"},"modified":"2020-05-05T01:42:36","modified_gmt":"2020-05-04T23:42:36","slug":"ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev","title":{"rendered":"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/c12bef0589cc29a2a63840ecf5572357.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Toto je prepis prezent\u00e1cie na <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/meetups#2331050\">DevopsConf 2019-10-01<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"http:\/\/spblug.org\/\">SPbLUG 2019-09-25<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Toto je pr\u00edbeh projektu, na ktorom sa pou\u017e\u00edval vlastn\u00fd syst\u00e9m spr\u00e1vy konfigur\u00e1ci\u00ed a pre\u010do prechod na Ansible trval 18 mesiacov.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"den---hhh-before-the-beginning\">De\u0148 \u010d. -XXX: Pred za\u010diatkom<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/22ebc514d85df93237e7f7d262a393a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00f4vodne infra\u0161trukt\u00fara pozost\u00e1vala z mno\u017estva samostatn\u00fdch hostite\u013eov spravovan\u00fdch Hyper-V. Vytvorenie virtu\u00e1lneho stroja si vy\u017eadovalo mno\u017estvo krokov: umiestni\u0165 disky na spr\u00e1vne miesto, nastavi\u0165 DNS, rezervova\u0165 DHCP, ulo\u017ei\u0165 konfigur\u00e1ciu VMs do git repozit\u00e1ra. Tento proces bol \u010diasto\u010dne zmechanizovan\u00fd, ale napr\u00edklad rozdelenie VM medzi hostite\u013eov prebiehalo manu\u00e1lne. Av\u0161ak v\u00fdvoj\u00e1ri mohli upravi\u0165 konfigur\u00e1ciu VM v Gite a aplikova\u0165 ju re\u0161tartovan\u00edm VM.<\/p>\n<p><\/p>\n<h3 id=\"custom-configuration-management-solution\">Vlastn\u00e9 rie\u0161enie spr\u00e1vy konfigur\u00e1ci\u00ed<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/166b61b7f70c49ba06e622cd3592826f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00f4vodn\u00fa my\u0161lienku, predpoklad\u00e1m, zam\u00fd\u0161\u013eali ako IaC: mno\u017estvo stateless VMs, ktor\u00e9 sa pri re\u0161tarte vr\u00e1tili do p\u00f4vodn\u00e9ho stavu. Ako vyzeralo riadenie konfigur\u00e1ci\u00ed VMs? Schematicky to vyzeralo jednoducho:<\/p>\n<p><\/p>\n<ol>\n<li>Pre VMs sme nastavili statick\u00fd MAC.<\/li>\n<li>K VMs sme pripojili ISO s CoreOS a zav\u00e1dzac\u00ed disk.<\/li>\n<li>CoreOS sp\u00fa\u0161\u0165a skript prisp\u00f4sobenia z jeho WEB servera na z\u00e1klade svojej IP.<\/li>\n<li>Skript s\u0165ahuje konfigur\u00e1ciu VM cez SCP na z\u00e1klade IP adresy.<\/li>\n<li>Spustila sa s\u00e9ria s\u00faborov systemd unit a s\u00e9ria bash skriptov.<\/li>\n<\/ol>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/6baa343ddc2b8df8812f2ed282e5bc3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Toto rie\u0161enie malo mno\u017estvo zrejm\u00fdch probl\u00e9mov:<\/p>\n<p><\/p>\n<ol>\n<li>ISO v CoreOS bolo zastaran\u00e9.<\/li>\n<li>Mno\u017estvo zlo\u017eit\u00fdch automatizovan\u00fdch krokov a \u010darodejn\u00edctva pri migr\u00e1cii\/vytv\u00e1ran\u00ed VMs.<\/li>\n<li>Probl\u00e9my s aktualiz\u00e1ciou a potrebou softv\u00e9ru ur\u010ditej verzie. E\u0161te z\u00e1bavnej\u0161ie to bolo s modulmi jadra.<\/li>\n<li>VMs neboli a\u017e tak bez \u00fadajov, teda sa objavili VMs, ktor\u00e9 mali pripojen\u00fd disk s pou\u017e\u00edvate\u013esk\u00fdmi \u00fadajmi navy\u0161e.<\/li>\n<li>Niekoho st\u00e1le zradili z\u00e1vislosti systemd unit a pri re\u0161tarte CoreOS sa zasekla. Bolo problematick\u00e9 odchyt\u00e1va\u0165 to dostupn\u00fdmi prostriedkami v CoreOS.<\/li>\n<li>Spr\u00e1va tajomstiev.<\/li>\n<li>CM prakticky neexistovalo. Bol tu bash a YML konfigur\u00e1cie CoreOS.<\/li>\n<\/ol>\n<p><\/p>\n<p>Na aplikovanie konfigur\u00e1cie VM bola potrebn\u00e1 jej re\u0161tart, ale mohla sa ne\u00faspe\u0161ne re\u0161tartova\u0165. Zdanlivo ban\u00e1lny probl\u00e9m, ale neexistovali perzistentn\u00e9 disky \u2014 nemali sme kde uchov\u00e1va\u0165 logy. Dobre, sk\u00fasme prida\u0165 mo\u017enosti pri zav\u00e1dzan\u00ed jadra, aby sa logy posielali. Ale nie, ak\u00e9 je to v\u0161etko zlo\u017eit\u00e9.<\/p>\n<p><\/p>\n<h2 id=\"den-0-priznanie-problemy\">De\u0148 \u010d.0: Uzna\u0165 probl\u00e9m<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/d80b98b91624085d5d11fc54647a55bc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To bola be\u017en\u00e1 v\u00fdvojov\u00e1 infra\u0161trukt\u00fara: Jenkins, testovacie prostredia, monitorovanie, registry. CoreOS bola navrhnut\u00e1 na hosting klastrov k8s, tj. probl\u00e9m bol v tom, ako sa CoreOS pou\u017e\u00edvala. Prv\u00fdm krokom bol v\u00fdber stacku. Zastavili sme sa na:<\/p>\n<p><\/p>\n<ol>\n<li><strong>CentOS<\/strong> ako z\u00e1kladn\u00fd distrib\u00fator, preto\u017ee to je najbli\u017e\u0161\u00ed distrib\u00fator k v\u00fdrobn\u00fdm prostrediam.<\/li>\n<li><strong>Ansible<\/strong> na spr\u00e1vu konfigur\u00e1ci\u00ed, preto\u017ee s n\u00edm existovala rozsiahla expert\u00edza.<\/li>\n<li><strong>Jenkins<\/strong> ako r\u00e1mec na automatiz\u00e1ciu existuj\u00facich procesov, preto\u017ee sa u\u017e akt\u00edvne pou\u017e\u00edval na procesy v\u00fdvoja.<\/li>\n<li><strong>Hyper-V<\/strong> ako platforma virtualiz\u00e1cie. Existuje mno\u017estvo d\u00f4vodov, ktor\u00e9 presahuj\u00fa r\u00e1mec rozpr\u00e1vania, ale ak to zhrnieme \u2014 nem\u00f4\u017eeme pou\u017e\u00edva\u0165 cloudy, mus\u00edme pou\u017ei\u0165 n\u00e1\u0161 hardv\u00e9r.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"den-30-fiksiruem-suschestvuyuschie-dogovorennosti---agreements-as-code\">De\u0148 \u010d. 30: Fix\u00e1cia existuj\u00facich dohod \u2014 Agreements as Code<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/47a8cc980940b5080e195267d686df25.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ke\u010f bol jasn\u00fd stack, za\u010dala sa pr\u00edprava na presun. Fixovanie existuj\u00facich doh\u00f4d vo forme k\u00f3du (<strong>Agreements as Code<\/strong>!). Prechod <em>ru\u010dn\u00fd pr\u00e1cu<\/em> -&gt; <em>mechaniz\u00e1cia<\/em> -&gt; <em>automatiz\u00e1ciu<\/em>.<\/p>\n<p><\/p>\n<h4 id=\"1-configure-vms\">1. Konfigur\u00e1cia VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/90b3c4ec5d4234fc218295bd9a34d676.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ansible si s touto \u00falohou v\u00fdborne porad\u00ed. S minim\u00e1lnym \u00fasil\u00edm je mo\u017en\u00e9 prevzia\u0165 spr\u00e1vu konfigur\u00e1ci\u00ed VM:<\/p>\n<p><\/p>\n<ol>\n<li>Vytv\u00e1rame git repozit\u00e1r.<\/li>\n<li>Uklad\u00e1me zoznam VM do invent\u00e1ru, konfigur\u00e1cie do playbookov a rol\u00ed.<\/li>\n<li>Nastavujeme \u0161peci\u00e1lny Jenkins slave, z ktor\u00e9ho je mo\u017en\u00e9 sp\u00fa\u0161\u0165a\u0165 Ansible.<\/li>\n<li>Vytvor\u00edme job, nastav\u00edme Jenkins.<\/li>\n<\/ol>\n<p><\/p>\n<p>Prv\u00fd proces je pripraven\u00fd. Dohody s\u00fa fixovan\u00e9.<\/p>\n<p><\/p>\n<h4 id=\"2-create-new-vm\">2. Vytvori\u0165 nov\u00fa VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/3f6a02b170e28fd34e8f5fa65d1606c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tu to nebolo ve\u013emi pohodln\u00e9. Z Linuxu nebolo ve\u013emi pohodln\u00e9 vytv\u00e1ra\u0165 VM na Hyper-V. Jedn\u00fdm z pokusov mechanizova\u0165 tento proces bolo:<\/p>\n<p><\/p>\n<ol>\n<li>Ansible sa prip\u00e1ja cez WinRM k Windows hostite\u013eovi.<\/li>\n<li>Ansible sp\u00fa\u0161\u0165a powershell skript.<\/li>\n<li>Powershell skript vytv\u00e1ra nov\u00fa VM.<\/li>\n<li>Prostriedkami Hyper-V\/ScVMM pri vytv\u00e1ran\u00ed VM v hos\u0165ovskom OS sa nastavuje hostname.<\/li>\n<li>VM pri aktualiz\u00e1cii DHCP lease posiela svoj hostname.<\/li>\n<li>\u0160tandardn\u00e1 integr\u00e1cia ddns &amp; dhcp na strane Domain Controller nastavuje DNS z\u00e1znam.<\/li>\n<li>VM je mo\u017en\u00e9 prid\u00e1va\u0165 do invent\u00e1ru a nastavova\u0165 ju Ansible.<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"3-create-vm-template\">3. Vytvori\u0165 \u0161abl\u00f3nu VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/f10929c1bd5b350c16bb691dce61653a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tu sme ni\u010d nevym\u00fd\u0161\u013eali - zobrali sme Packer.<\/p>\n<p><\/p>\n<ol>\n<li>Do git repozit\u00e1ra uklad\u00e1me konfigur\u00e1ciu packer, kickstart.<\/li>\n<li>Nastavujeme \u0161peci\u00e1lny Jenkins slave s Hyper-V a Packer.<\/li>\n<li>Vytvor\u00edme job, nastav\u00edme Jenkins.<\/li>\n<\/ol>\n<p><\/p>\n<p>Ako funguje t\u00e1to v\u00e4zba:<\/p>\n<p><\/p>\n<ol>\n<li>Packer vytv\u00e1ra pr\u00e1zdnu VM, pripoj\u00ed ISO.<\/li>\n<li>VM sa na\u010d\u00edta, Packer zad\u00e1va do zav\u00e1dza\u010da pr\u00edkaz pou\u017ei\u0165 n\u00e1\u0161 kickstart s\u00fabor z diskety alebo http.<\/li>\n<li>Spust\u00ed sa anaconda s na\u0161ou konfigur\u00e1ciou, vykon\u00e1 sa po\u010diato\u010dn\u00e9 nastavenie OS.<\/li>\n<li>Packer \u010dak\u00e1 na dostupnos\u0165 VM.<\/li>\n<li>Packer vo VM sp\u00fa\u0161\u0165a Ansible v lok\u00e1lnom re\u017eime.<\/li>\n<li>Ansible vyu\u017e\u00edva presne tie ist\u00e9 role ako v kroku \u010d. 1.<\/li>\n<li>Packer exportuje \u0161abl\u00f3nu VM.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"den-75-refaktorim-dogovorennosti-ne-lomaya--test-ansible--testkitchen\">De\u0148 \u010d. 75: Refaktoring doh\u00f4d bez probl\u00e9mov = Test ansible + Testkitchen.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/1b90074f3b17a77a732a259efdda518c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zafixovanie doh\u00f4d v k\u00f3de m\u00f4\u017ee by\u0165 nedostato\u010dn\u00e9. Ve\u010f ak by si chcel v procese nie\u010do zmeni\u0165 \u2014 m\u00f4\u017ee\u0161 nie\u010do pokazi\u0165. Preto sa v oblasti infra\u0161trukt\u00fary objavuje testovanie tejto infra\u0161trukt\u00fary. Aby sme synchronizovali vedomosti v r\u00e1mci t\u00edmu, za\u010dali sme testova\u0165 Ansible role. Nebudem sa do toho hlboko pon\u00e1ra\u0165, preto\u017ee existuje \u010dl\u00e1nok popisuj\u00faci udalosti v tom \u010dase. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/437004\/\">Otestuj ma, ak m\u00f4\u017ee\u0161, alebo sn\u00edvaj\u00fa YML program\u00e1tori o testovan\u00ed ansible?<\/a><\/noindex>(spojler, to nebolo fin\u00e1lne, nesk\u00f4r sa v\u0161etko skomplikovalo. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.goncharov.xyz\/it\/ansible-testing-ru.html\">Ako za\u010da\u0165 testova\u0165 Ansible, refaktorova\u0165 projekt za rok a nezbl\u00e1zni\u0165 sa<\/a><\/noindex>).<\/p>\n<p><\/p>\n<h3 id=\"den-130-a-mozhet-centosansible-ne-nuzhen-mozhet-openshift\">De\u0148 \u010d. 130: A mo\u017eno CentOS + ansible nie je potrebn\u00fd? Mo\u017eno openshift?<\/h3>\n<p><\/p>\n<p>Mus\u00edme si uvedomi\u0165, \u017ee proces za\u010dle\u0148ovania infra\u0161trukt\u00fary nebol jedin\u00fd a boli aj ved\u013eaj\u0161ie podprojekty. Napr\u00edklad pri\u0161la \u017eiados\u0165 o spustenie na\u0161ej aplik\u00e1cie v openshift a to sa pretiahlo na nieko\u013ekot\u00fd\u017ed\u0148ov\u00fd prieskum. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/441928\/\">Sp\u00fa\u0161\u0165ame aplik\u00e1ciu v Openshift a porovn\u00e1vame existuj\u00face n\u00e1stroje.<\/a><\/noindex> \u010do spomalilo proces pres\u00favania. V\u00fdsledkom bolo, \u017ee openshift neuzatv\u00e1ra v\u0161etky potreby, potrebujeme re\u00e1lne \u017eelezo, alebo aspo\u0148 mo\u017enos\u0165 experimentova\u0165 s jadrom.<\/p>\n<p><\/p>\n<h3 id=\"den-170-openshift-ne-podhodit-risknem-s-windows-azure-pack\">De\u0148 \u010d. 170: Openshift nie je vhodn\u00fd, riskneme s Windows Azure Pack?<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/73cbf7fd7e0330676c4d937df68289f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hyper-V nie je ve\u013emi priate\u013esk\u00fd, SCVMM mu neprid\u00e1va na kvalite. Ale existuje tak\u00e1 vec ako Windows Azure Pack, ktor\u00e1 je nadstavbou nad SCVMM a napodob\u0148uje Azure. V skuto\u010dnosti v\u0161ak produkt vyzer\u00e1 opusten\u00fd: dokument\u00e1cia s nefunk\u010dn\u00fdmi odkazmi a ve\u013emi skromn\u00e1. Ale v r\u00e1mci prieskumu mo\u017enost\u00ed zjednodu\u0161enia n\u00e1\u0161ho cloudu sme sa na neho pozerali tie\u017e.<\/p>\n<p><\/p>\n<h3 id=\"den-250-windows-azure-pack-ne-ochen-ostaemsya-na-scvmm\">De\u0148 \u010d. 250: Windows Azure Pack nie je pr\u00edli\u0161 dobr\u00fd. Zost\u00e1vame na SCVMM.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/8753b3da72adfb035d1a2f23ad28809b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Windows Azure Pack vyzeral s\u013eubne, ale rozhodli sme sa neprin\u00e1\u0161a\u0165 WAP s jeho zlo\u017eitosti do syst\u00e9mu kv\u00f4li nepotrebn\u00fdm funkci\u00e1m a zostali sme na SCVMM.<\/p>\n<p><\/p>\n<h3 id=\"den-360-edim-slona-po-chastyam\">De\u0148 \u010d. 360: Jeme slona po \u010dastiach.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/84e003906234c46b57b7769abd7b7993.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Len po roku bola pripraven\u00e1 platforma, kam sa presun\u00fa\u0165, a za\u010dal proces presunu. Na to bola stanoven\u00e1 \u00faloha S.M.A.R.T. Zozbierali sme v\u0161etky VM a za\u010dali sa jednou po druhej zaobera\u0165 konfigur\u00e1ciou, op\u00edsali sme ju na Ansible a pokryli testami.<\/p>\n<p><\/p>\n<h3 id=\"den-450-kakaya-sistema-poluchilas\">De\u0148 \u010d. 450: Ak\u00fd syst\u00e9m sa vytvoril?<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/1d0c64e6a229a0b4e0e49f7b832147ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cel\u00fd proces nie je zauj\u00edmav\u00fd. Je rutinn\u00fd, mo\u017eno poznamena\u0165, \u017ee v\u00e4\u010d\u0161ina konfigur\u00e1ci\u00ed bola relat\u00edvne jednoduch\u00e1 alebo izomorfn\u00e1 a pod\u013ea Princ\u00edpu Pareto 80 % konfigur\u00e1ci\u00ed vy\u017eadovalo 20 % \u010dasu. Pod\u013ea toho ist\u00e9ho princ\u00edpu 80 % \u010dasu i\u0161lo na pr\u00edpravu presunu a len 20 % na samotn\u00fd presun. <\/p>\n<p><\/p>\n<h2 id=\"den-540-final\">De\u0148 \u010d. 540: Fin\u00e1le<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov\" src=\"\/wp-content\/uploads\/2020\/05\/7e3d1936dca58506d3b8efcf4ee3c115.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u010co sa stalo za 18 mesiacov?<\/p>\n<p><\/p>\n<ol>\n<li>Dohody sa stali k\u00f3dexom.<\/li>\n<li><em>Ru\u010dn\u00e1 pr\u00e1ca<\/em> -&gt; <em>Mechaniz\u00e1cia<\/em> -&gt; <em>Automatiz\u00e1cia<\/em>.<\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"links\">Odkazy<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/500350\/\">Anglick\u00e1 verzia<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.goncharov.xyz\/it\/coreos2centos-ru.html\">Kr\u00ed\u017eov\u00fd pr\u00edspevok z osobn\u00e9ho blogu<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.mail.ru\/public\/UDCZ\/WM4Y9Qv3j\">prezent\u00e1cie<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/500058\/\">Ako za\u010da\u0165 testova\u0165 Ansible, refaktorova\u0165 projekt za rok a nezbl\u00e1zni\u0165 sa<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/467171\/\">Ponau\u010denia z testovania viac ako 200 000 riadkov Infra\u0161truktur\u00e1lneho k\u00f3du<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/441928\/\">Po\u010fme nasadi\u0165 na OpenShift<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/342216\/\">Ako testova\u0165 svoju vlastn\u00fa distrib\u00faciu OS<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/437004\/\">Otestuj ma, ak m\u00f4\u017ee\u0161. Sn\u00edvaj\u00fa YML v\u00fdvoj\u00e1ri o testovan\u00ed ansible?<\/a><\/noindex><\/li>\n<\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500040\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 DevopsConf 2019-10-01 \u0438 SPbLUG 2019-09-25. \u042d\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0435\u0437\u0434 \u043d\u0430 Ansible \u0437\u0430\u0442\u044f\u043d\u0443\u043b\u0441\u044f \u043d\u0430 18 \u043c\u0435\u0441\u044f\u0446\u0435\u0432. \u0414\u0435\u043d\u044c \u2116 -\u0425\u0425\u0425: Before the beginning \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430 \u0441\u043e\u0431\u043e\u0439 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0445\u043e\u0441\u0442\u043e\u0432 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Hyper-V. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0434\u0438\u0441\u043a\u0438 \u0432 \u043d\u0443\u0436\u043d\u043e\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80290,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80289","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.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u043e.\" \/>\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\/sk\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\udd47Ansible: \u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 120 VM c CoreOS \u043d\u0430 CentOS \u0437\u0430 18 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev\" \/>\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=\"2020-05-04T23:42:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-04T23:42:36+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\udd47Ansible: Migr\u00e1cia konfigur\u00e1cie 120 VM z CoreOS na CentOS za 18 mesiacov | ProHoster","description":"To je.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\udd47Ansible: \u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 120 VM c CoreOS \u043d\u0430 CentOS \u0437\u0430 18 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 | ProHoster","og:description":"\u042d\u0442\u043e.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev","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":"2020-05-04T23:42:36+00:00","article:modified_time":"2020-05-04T23:42:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80289","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:21:22","updated":"2022-09-30 18:16:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/80289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=80289"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/80289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/80290"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=80289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=80289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=80289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}