{"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\/it\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev","title":{"rendered":"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/c12bef0589cc29a2a63840ecf5572357.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questa \u00e8 la trascrizione dell'intervento a <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/meetups#2331050\">DevopsConf 2019-10-01<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"http:\/\/spblug.org\/\">SPbLUG 2019-09-25<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Questa \u00e8 la storia del progetto che ha utilizzato un sistema di gestione delle configurazioni sviluppato internamente e il motivo per cui la migrazione su Ansible ha impiegato 18 mesi.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"den---hhh-before-the-beginning\">Giorno \u2116 -XXX: Prima dell'inizio<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/22ebc514d85df93237e7f7d262a393a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Inizialmente, l'infrastruttura consisteva in un gran numero di host indipendenti gestiti da Hyper-V. La creazione di una macchina virtuale richiedeva molte operazioni: posizionare i dischi nel luogo giusto, configurare il DNS, prenotare il DHCP e inserire la configurazione della VM in un repository Git. Questo processo era parzialmente meccanizzato, ma ad esempio le VM venivano distribuite tra gli host manualmente. Tuttavia, per esempio, gli sviluppatori potevano modificare la configurazione della VM in Git e applicarla riavviando la VM.<\/p>\n<p><\/p>\n<h3 id=\"custom-configuration-management-solution\">Soluzione di gestione delle configurazioni personalizzata<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/166b61b7f70c49ba06e622cd3592826f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>L'idea iniziale, suppongo, era concepita come IaC: molte VM stateless, che azzeravano il loro stato al riavvio. Come appariva la gestione delle configurazioni delle VM? Schematicamente sembra semplice:<\/p>\n<p><\/p>\n<ol>\n<li>Per le VM veniva assegnato un MAC statico.<\/li>\n<li>Alle VM veniva collegato un ISO con CoreOS e un disco di avvio.<\/li>\n<li>CoreOS esegue uno script di personalizzazione scaricandolo da un server WEB in base al proprio IP.<\/li>\n<li>Lo script recupera tramite SCP la configurazione della VM basandosi sull'indirizzo IP.<\/li>\n<li>Viene avviata una serie di file di unit\u00e0 systemd e una serie di script bash.<\/li>\n<\/ol>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/6baa343ddc2b8df8812f2ed282e5bc3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questa soluzione presentava molti problemi evidenti:<\/p>\n<p><\/p>\n<ol>\n<li>L'ISO in CoreOS era deprecato.<\/li>\n<li>Numerose azioni e magie difficilmente automatizzabili durante la migrazione\/creazione delle VM.<\/li>\n<li>Difficolt\u00e0 con l'aggiornamento e quando era necessario del software di una certa versione. Ancora pi\u00f9 divertente con i moduli del kernel.<\/li>\n<li>Le VM non risultavano cos\u00ec prive di dati, ovvero apparvero VM con un disco montato contenente dati utente aggiuntivi.<\/li>\n<li>Qualcuno combinava sempre guai con le dipendenze delle unit\u00e0 systemd e al riavvio CoreOS si bloccava. Era problematico catturarlo con i mezzi a disposizione in CoreOS.<\/li>\n<li>Gestione dei segreti.<\/li>\n<li>Non c'era un vera e propria CM. C'era bash e i config YML di CoreOS.<\/li>\n<\/ol>\n<p><\/p>\n<p>Per applicare la configurazione della VM era necessario riavviarla, ma a volte non si riavviava. Sembra un problema ovvio, ma non ci sono dischi persistenti \u2013 non c\u2019\u00e8 dove salvare i log. Va bene, proviamo ad aggiungere opzioni di avvio del kernel in modo da inviare i log. Ma no, quanto \u00e8 complicato tutto ci\u00f2.<\/p>\n<p><\/p>\n<h2 id=\"den-0-priznanie-problemy\">Giorno \u21160: Riconoscimento del problema<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/d80b98b91624085d5d11fc54647a55bc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questa era un'infrastruttura di sviluppo abituale: jenkins, ambienti di test, monitoraggi, registry. CoreOS era pensato per l'hosting di cluster k8s, cio\u00e8 il problema stava nel modo in cui veniva utilizzato CoreOS. Il primo passo \u00e8 stato la scelta della stack.<\/p>\n<p><\/p>\n<ol>\n<li><strong>CentOS<\/strong> come distribuzione base, poich\u00e9 \u00e8 la distribuzione pi\u00f9 vicina agli ambienti di produzione.<\/li>\n<li><strong>Ansible<\/strong> per la gestione delle configurazioni, poich\u00e9 si aveva una vasta esperienza a riguardo.<\/li>\n<li><strong>Jenkins<\/strong> come framework di automazione dei processi esistenti, poich\u00e9 era gi\u00e0 attivamente utilizzato per i processi di sviluppo.<\/li>\n<li><strong>Hyper-V<\/strong> come piattaforma di virtualizzazione. Ci sono diverse ragioni al di l\u00e0 di quanto descritto, ma per farla breve \u2014 non possiamo utilizzare cloud e dobbiamo utilizzare il nostro hardware.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"den-30-fiksiruem-suschestvuyuschie-dogovorennosti---agreements-as-code\">Giorno n. 30: Fissiamo gli accordi esistenti \u2014 Agreements as Code<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/47a8cc980940b5080e195267d686df25.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quando la stack era chiara, \u00e8 iniziata la preparazione per il trasferimento. La formalizzazione degli accordi esistenti sotto forma di codice (<strong>Agreements as Code<\/strong>!). Il passaggio <em>lavoro manuale<\/em> -&gt; <em>meccanizzazione<\/em> -&gt; <em>automazione<\/em>.<\/p>\n<p><\/p>\n<h4 id=\"1-configure-vms\">1. Configurare le VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/90b3c4ec5d4234fc218295bd9a34d676.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ansible si occupa bene di quest'attivit\u00e0. Con un minimo di sforzi, \u00e8 possibile gestire le configurazioni delle VM:<\/p>\n<p><\/p>\n<ol>\n<li>Creiamo un repository git.<\/li>\n<li>Archiviare l'elenco delle VM nell'inventory, le configurazioni nei playbook e nei ruoli.<\/li>\n<li>Configurare un slave Jenkins speciale da cui sar\u00e0 possibile eseguire Ansible.<\/li>\n<li>Creiamo un job, configurando Jenkins.<\/li>\n<\/ol>\n<p><\/p>\n<p>Il primo processo \u00e8 pronto. Gli accordi sono formalizzati.<\/p>\n<p><\/p>\n<h4 id=\"2-create-new-vm\">2. Creare una nuova VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/3f6a02b170e28fd34e8f5fa65d1606c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qui le cose non erano molto comode. Era difficile creare VM su Hyper-V da Linux. Uno dei tentativi di meccanizzare questo processo \u00e8 stato:<\/p>\n<p><\/p>\n<ol>\n<li>Ansible si connette tramite WinRM all'host Windows.<\/li>\n<li>Ansible esegue uno script PowerShell.<\/li>\n<li>Lo script PowerShell crea una nuova VM.<\/li>\n<li>Con gli strumenti Hyper-V\/ScVMM durante la creazione della VM nel guest OS viene configurato il hostname.<\/li>\n<li>La VM, durante l'aggiornamento del lease DHCP, invia il suo hostname.<\/li>\n<li>L'integrazione standard ddns &amp; dhcp sul lato del Domain Controller configura il record DNS.<\/li>\n<li>\u00c8 possibile aggiungere la VM all'inventory e configurarla con Ansible.<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"3-create-vm-template\">3. Creare un template VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/f10929c1bd5b350c16bb691dce61653a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qui non abbiamo inventato nulla \u2014 abbiamo usato packer.<\/p>\n<p><\/p>\n<ol>\n<li>Archiviamosi nel repository git la configurazione di packer, kickstart.<\/li>\n<li>Configurare un slave Jenkins speciale con hyper-v e Packer.<\/li>\n<li>Creiamo un job, configurando Jenkins.<\/li>\n<\/ol>\n<p><\/p>\n<p>Come funziona questa combinazione:<\/p>\n<p><\/p>\n<ol>\n<li>Packer crea una VM vuota, attacca l'ISO.<\/li>\n<li>La VM si avvia, Packer inserisce nel bootloader il comando per utilizzare il nostro file kickstart da floppy o http.<\/li>\n<li>Si avvia Anaconda con la nostra configurazione, si esegue la configurazione iniziale del sistema operativo.<\/li>\n<li>Packer attende la disponibilit\u00e0 della VM.<\/li>\n<li>Packer all'interno della VM esegue Ansible in modalit\u00e0 locale.<\/li>\n<li>Ansible utilizza esattamente gli stessi ruoli di cui al passo n. 1.<\/li>\n<li>Packer esporta il modello della VM.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"den-75-refaktorim-dogovorennosti-ne-lomaya--test-ansible--testkitchen\">Giorno n. 75: Rifattorizziamo gli accordi senza rompere = Test ansible + Testkitchen<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/1b90074f3b17a77a732a259efdda518c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Fissare gli accordi nel codice potrebbe non essere sufficiente. Infatti, se nel profondo del processo vuoi cambiare qualcosa, potresti rompere qualcosa. Ecco perch\u00e9, per l'infrastruttura, entra in gioco il test di quella stessa infrastruttura. Per sincronizzare le conoscenze all'interno del team, abbiamo iniziato a testare i ruoli di Ansible. Non approfondir\u00f2 poich\u00e9 esiste un articolo che descrive gli eventi di quel momento. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/437004\/\">Testami se ci riesci o sognano gli sviluppatori YML di testare ansible?<\/a><\/noindex>(spoiler: questa non era la versione finale e in seguito tutto \u00e8 diventato pi\u00f9 complicato) <noindex><a rel=\"nofollow\" href=\"http:\/\/www.goncharov.xyz\/it\/ansible-testing-ru.html\">Come iniziare a testare Ansible, rifattorizzare un progetto in un anno e non perdere la ragione<\/a><\/noindex>).<\/p>\n<p><\/p>\n<h3 id=\"den-130-a-mozhet-centosansible-ne-nuzhen-mozhet-openshift\">Giorno n. 130: E se CentOS+ansible non fosse necessario? Magari Openshift?<\/h3>\n<p><\/p>\n<p>Bisogna capire che il processo di implementazione dell'infrastruttura non \u00e8 stato l'unico e ci sono stati progetti secondari. Ad esempio, \u00e8 arrivata una richiesta per avviare la nostra applicazione in Openshift e questo si \u00e8 tradotto in ricerche non inferiori a una settimana. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/441928\/\">Avviamo l'applicazione in Openshift e confrontiamo gli strumenti esistenti.<\/a><\/noindex> cosa ha rallentato il processo di migrazione. Il risultato \u00e8 stato che Openshift non soddisfa tutte le esigenze; \u00e8 necessario hardware reale, o almeno la possibilit\u00e0 di giocare con il kernel.<\/p>\n<p><\/p>\n<h3 id=\"den-170-openshift-ne-podhodit-risknem-s-windows-azure-pack\">Giorno n. 170: Openshift non \u00e8 adatto, rischiamo con Windows Azure Pack?<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/73cbf7fd7e0330676c4d937df68289f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hyper-V non \u00e8 molto amichevole, SCVMM non lo migliora significativamente. Ma c'\u00e8 una cosa chiamata Windows Azure Pack, che \u00e8 un'add-on di SCVMM e si mimetizza come Azure. Ma in realt\u00e0 il prodotto appare abbandonato: documentazione con link rotti e piuttosto scarsa. Tuttavia, nel contesto della ricerca di opzioni per semplificare la vita della nostra cloud, lo abbiamo esaminato.<\/p>\n<p><\/p>\n<h3 id=\"den-250-windows-azure-pack-ne-ochen-ostaemsya-na-scvmm\">Giorno n. 250: Windows Azure Pack non \u00e8 molto promettente. Rimaniamo su SCVMM.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/8753b3da72adfb035d1a2f23ad28809b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Windows Azure Pack sembrava promettente, ma \u00e8 stato deciso di non introdurre WAP con le sue complessit\u00e0 nel sistema per caratteristiche non necessarie e siamo rimasti su SCVMM.<\/p>\n<p><\/p>\n<h3 id=\"den-360-edim-slona-po-chastyam\">Giorno n. 360: Mangiamo un elefante a pezzi.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/84e003906234c46b57b7769abd7b7993.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Solo dopo un anno la piattaforma in cui migrare era pronta e inizi\u00f2 il processo di migrazione. Per questo \u00e8 stato stabilito un obiettivo S.M.A.R.T. Abbiamo elencato tutte le VM e abbiamo iniziato a analizzare una per una le configurazioni, descriverle su Ansible, coprirle di test.<\/p>\n<p><\/p>\n<h3 id=\"den-450-kakaya-sistema-poluchilas\">Giorno n. 450: Quale sistema \u00e8 stato realizzato?<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/1d0c64e6a229a0b4e0e49f7b832147ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Il processo stesso non \u00e8 interessante. \u00c8 routinario, si pu\u00f2 notare che la maggior parte delle configurazioni era relativamente semplice o isomorfa e secondo il principio di Pareto, l'80% delle configurazioni ha richiesto il 20% del tempo. Secondo lo stesso principio, l'80% del tempo \u00e8 stato speso per la preparazione del trasloco e solo il 20% per il trasloco stesso. <\/p>\n<p><\/p>\n<h2 id=\"den-540-final\">Giorno \u2116540: Finale<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi\" src=\"\/wp-content\/uploads\/2020\/05\/7e3d1936dca58506d3b8efcf4ee3c115.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cosa \u00e8 successo in 18 mesi?<\/p>\n<p><\/p>\n<ol>\n<li>Le intese sono diventate codice.<\/li>\n<li><em>Lavoro manuale<\/em> -&gt; <em>Meccanizzazione<\/em> -&gt; <em>Automazione<\/em>.<\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"links\">Links<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/500350\/\">Versione inglese<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.goncharov.xyz\/it\/coreos2centos-ru.html\">Post incrociato dal blog personale<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.mail.ru\/public\/UDCZ\/WM4Y9Qv3j\">slide<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/500058\/\">Come iniziare a testare Ansible, rifattorizzare un progetto in un anno e non perdere la ragione<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/467171\/\">Lezioni apprese dal testare oltre 200.000 righe di codice di infrastruttura<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/441928\/\">Implementiamo su openshift<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/342216\/\">Come testare la propria distribuzione OS<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/437004\/\">Mettesti alla prova se puoi. Sognano i sviluppatori YML di testare ansible?<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fonte: <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.1.1 - 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\/it\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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: Migrazione della configurazione di 120 VM da CoreOS a CentOS in 18 mesi | ProHoster","description":"Questo.","canonical_url":"https:\/\/prohoster.info\/it\/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":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/80289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=80289"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/80289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/80290"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=80289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=80289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=80289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}