{"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\/da\/blog\/administrirovanie\/ansible-migracziya-konfiguraczii-120-vm-c-coreos-na-centos-za-18-mesyaczev","title":{"rendered":"Ansible: Migration af konfigurationen af 120 VM'er fra CoreOS til CentOS over 18 m\u00e5neder","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/c12bef0589cc29a2a63840ecf5572357.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dette er en transkription af pr\u00e6sentationen p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/meetups#2331050\">DevopsConf 2019-10-01<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"http:\/\/spblug.org\/\">SPbLUG 2019-09-25<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Dette er historien om projektet, hvor der blev brugt et skr\u00e6ddersyet konfigurationsstyringssystem, og hvorfor overflytningen til Ansible tog 18 m\u00e5neder.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"den---hhh-before-the-beginning\">Dag \u2116 -XXX: F\u00f8r begyndelsen<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/22ebc514d85df93237e7f7d262a393a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Oprindeligt bestod infrastrukturen af en r\u00e6kke frist\u00e5ende servere, der blev drevet af Hyper-V. Oprettelse af en virtuel maskine kr\u00e6vede mange handlinger: placere diske det rigtige sted, skrive DNS, reservere DHCP, l\u00e6gge VM-konfigurationen i et git-repositorium. Denne proces var delvist automatiseret, men for eksempel blev VM'er fordelt mellem serverne manuelt. Men udviklerne kunne \u00e6ndre VM-konfigurationen i git og anvende den ved at genstarte VM'en.<\/p>\n<p><\/p>\n<h3 id=\"custom-configuration-management-solution\">Skr\u00e6ddersyet konfigurationsstyringsl\u00f8sning<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/166b61b7f70c49ba06e622cd3592826f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den oprindelige id\u00e9, som jeg formoder blev set som IaC: mange stateless VM'er, der nulstillede deres tilstand ved genstart. Hvordan s\u00e5 konfigurationsstyringen af VM'erne ud? Det ser simpelt ud skematisk:<\/p>\n<p><\/p>\n<ol>\n<li>Der blev tildelt statisk MAC til VM'erne.<\/li>\n<li>Der blev tilsluttet ISO med CoreOS og en boot-disk til VM'erne.<\/li>\n<li>CoreOS k\u00f8rer et tilpasningsscript, som den downloader fra WEB-serveren baseret p\u00e5 sin IP.<\/li>\n<li>Scriptet henter VM-konfigurationen via SCP baseret p\u00e5 IP-adressen.<\/li>\n<li>En r\u00e6kke systemd enheds-filer og en r\u00e6kke bash-scripts bliver k\u00f8rt.<\/li>\n<\/ol>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/6baa343ddc2b8df8812f2ed282e5bc3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Denne l\u00f8sning havde mange \u00e5benlyse problemer:<\/p>\n<p><\/p>\n<ol>\n<li>ISO i CoreOS var deprecated.<\/li>\n<li>Mange komplekse automatiserede handlinger og magi ved migration\/oprettelse af VM'er.<\/li>\n<li>Problemer med opdatering, n\u00e5r specifik softwareversion er n\u00f8dvendig. Det bliver endnu sjovere med kernel-moduler.<\/li>\n<li>VM'erne var ikke helt uden data, dvs. der opstod VM'er, der havde et ekstra monteret disk med brugerdata.<\/li>\n<li>Nogle gange lavede nogen fejl med afh\u00e6ngighederne af systemd enheden, og ved genstart hang CoreOS. Det var problematisk at fange det med de eksisterende v\u00e6rkt\u00f8jer i CoreOS.<\/li>\n<li>H\u00e5ndtering af hemmeligheder.<\/li>\n<li>CM eksisterede n\u00e6rmest ikke. Der var bash og YML-konfigurationer for CoreOS.<\/li>\n<\/ol>\n<p><\/p>\n<p>For at anvende VM-konfigurationen skal den genstartes, men den kunne ikke genstarte. Det virker som et \u00e5benlyst problem, men der er ingen persistente diske \u2014 hvor skal logfilerne gemmes? N\u00e5, lad os pr\u00f8ve at tilf\u00f8je indl\u00e6sning af kernel-optioner for at sende loggene. Men nej, det er alt sammen s\u00e5 besv\u00e6rligt.<\/p>\n<p><\/p>\n<h2 id=\"den-0-priznanie-problemy\">Dag \u21160: Problemet erkendelse<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/d80b98b91624085d5d11fc54647a55bc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det var en almindelig udviklingsinfrastruktur: jenkins, testmilj\u00f8er, overv\u00e5gninger, registry. CoreOS blev designet til hosting af k8s-klynger, s\u00e5 problemet l\u00e5 i, hvordan CoreOS blev brugt. Det f\u00f8rste skridt var valget af stak. Vi valgte:<\/p>\n<p><\/p>\n<ol>\n<li><strong>CentOS<\/strong> som basisdistribution, da det er den mest n\u00e6rliggende distribution til produktionsmilj\u00f8er.<\/li>\n<li><strong>Ansible<\/strong> til konfigurationsstyring, da der var meget ekspertise inden for det.<\/li>\n<li><strong>Jenkins<\/strong> som et automatiseringsframework for eksisterende processer, da det allerede blev brugt aktivt til udviklingsprocesser.<\/li>\n<li><strong>Hyper-V<\/strong> som virtualiseringsplatform. Der er en r\u00e6kke \u00e5rsager, der str\u00e6kker sig ud over, hvad der kan fort\u00e6lles her, men kort sagt \u2014 vi kan ikke bruge cloud-l\u00f8sninger, vi er n\u00f8dt til at bruge vores eget udstyr.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"den-30-fiksiruem-suschestvuyuschie-dogovorennosti---agreements-as-code\">Dag \u211630: Fastsl\u00e5 eksisterende aftaler \u2014 Agreements as Code<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/47a8cc980940b5080e195267d686df25.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e5r stakken var klar, begyndte forberedelserne til flytning. Fastl\u00e6ggelse af eksisterende aftaler i form af kode (<strong>Agreements as Code<\/strong>!). Overgangen <em>manuelt arbejde<\/em> -&gt; <em>mekanisering<\/em> -&gt; <em>automatisering<\/em>.<\/p>\n<p><\/p>\n<h4 id=\"1-configure-vms\">1. Konfigur\u00e9r VMs<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/90b3c4ec5d4234fc218295bd9a34d676.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ansible klarer denne opgave fremragende. Med minimale anstrengelser kan man tage kontrol over VM'ernes konfigurationer:<\/p>\n<p><\/p>\n<ol>\n<li>Opret en git-repository.<\/li>\n<li>L\u00e6g listen over VMs i inventory, konfigurationer i playbooks og roller.<\/li>\n<li>Konfigurer en s\u00e6rlig jenkins slave, som kan k\u00f8re ansible.<\/li>\n<li>Opret job, konfigurer Jenkins.<\/li>\n<\/ol>\n<p><\/p>\n<p>Den f\u00f8rste proces er klar. Aftalerne er fastsl\u00e5et.<\/p>\n<p><\/p>\n<h4 id=\"2-create-new-vm\">2. Opret ny VM<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/3f6a02b170e28fd34e8f5fa65d1606c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Her var alt ikke s\u00e6rlig praktisk. Det var ikke nemt at oprette VMs p\u00e5 Hyper-V fra Linux. Et af fors\u00f8gene p\u00e5 at mekanisere denne proces var:<\/p>\n<p><\/p>\n<ol>\n<li>Ansible forbinder via WinRM til windows-v\u00e6rten.<\/li>\n<li>Ansible k\u00f8rer et powershell-script.<\/li>\n<li>Powershell-scriptet opretter en ny VM.<\/li>\n<li>Ved hj\u00e6lp af Hyper-V\/ScVMM indstilles hostname i g\u00e6stesystemet, n\u00e5r VM'en oprettes.<\/li>\n<li>VM'en sender sit hostname, n\u00e5r den opdaterer DHCP lease.<\/li>\n<li>Den indbyggede integration af ddns &amp; amp; dhcp p\u00e5 siden af Domain Controller konfigurerer DNS-posten.<\/li>\n<li>Man kan tilf\u00f8je VMs til inventar og konfigurere dem med Ansible.<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"3-create-vm-template\">3. Opret VM-skabelon<\/h4>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/f10929c1bd5b350c16bb691dce61653a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Her opfandt vi intet nyt \u2014 vi brugte packer.<\/p>\n<p><\/p>\n<ol>\n<li>I git-repository'en l\u00e6gger vi konfigurationen til packer, kickstart.<\/li>\n<li>Konfigurer en s\u00e6rlig jenkins slave med hyper-v og Packer.<\/li>\n<li>Opret job, konfigurer Jenkins.<\/li>\n<\/ol>\n<p><\/p>\n<p>Hvordan dette setup fungerer:<\/p>\n<p><\/p>\n<ol>\n<li>Packer opretter en tom VM, tilslutter ISO.<\/li>\n<li>VM'en starter, Packer indtaster kommandoen for at bruge vores kickstart-fil fra diskette eller http.<\/li>\n<li>Anaconda starter med vores konfiguration og laver den indledende ops\u00e6tning af OS.<\/li>\n<li>Packer venter p\u00e5, at VM'en er tilg\u00e6ngelig.<\/li>\n<li>Packer k\u00f8rer ansible i lokaltilstand inde i VM'en.<\/li>\n<li>Ansible anvender n\u00f8jagtig de samme roller som i trin \u21161.<\/li>\n<li>Packer eksporterer VM-skabelonen.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"den-75-refaktorim-dogovorennosti-ne-lomaya--test-ansible--testkitchen\">Dag \u211675: Refactorering af aftaler uden at bryde = Test ansible + Testkitchen<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/1b90074f3b17a77a732a259efdda518c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>At fasts\u00e6tte aftaler i koden kan v\u00e6re utilstr\u00e6kkeligt. For hvis du undervejs i processen \u00f8nsker at \u00e6ndre noget \u2014 kan du komme til at bryde noget. Derfor, i tilf\u00e6lde af infrastrukturen, er testningen af selve infrastrukturen vigtig. For at synkronisere viden i teamet begyndte vi at teste Ansible-roller. Jeg vil ikke g\u00e5 mere i dybden, da der findes en artikel, der beskriver begivenhederne p\u00e5 det tidspunkt. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/437004\/\">Test mig, hvis du kan, eller dr\u00f8mmer YML-programm\u00f8rer om at teste ansible?<\/a><\/noindex>(spoiler, det var ikke den endelige version, og senere blev det mere kompliceret) <noindex><a rel=\"nofollow\" href=\"http:\/\/www.goncharov.xyz\/it\/ansible-testing-ru.html\">Hvordan man begynder at teste Ansible, refaktorere projektet p\u00e5 et \u00e5r uden at miste besindelsen<\/a><\/noindex>).<\/p>\n<p><\/p>\n<h3 id=\"den-130-a-mozhet-centosansible-ne-nuzhen-mozhet-openshift\">Dag \u2116130: M\u00e5ske er CentOS+ansible ikke n\u00f8dvendigt? M\u00e5ske openshift?<\/h3>\n<p><\/p>\n<p>Det er vigtigt at forst\u00e5, at processen med at integrere infrastrukturen ikke var den eneste, og der var ogs\u00e5 underprojekter. For eksempel kom der en anmodning om at k\u00f8re vores applikation i openshift, hvilket resulterede i unders\u00f8gelser, der tog over en uge. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/441928\/\">Vi starter applikationen i Openshift og sammenligner med det eksisterende v\u00e6rkt\u00f8j.<\/a><\/noindex> Hvad stoppede flytteprocessen. Konklusionen var, at openshift ikke d\u00e6kkede alle behov; der kr\u00e6ves \u00e6gte hardware eller i det mindste muligheden for at lege med kernen.<\/p>\n<p><\/p>\n<h3 id=\"den-170-openshift-ne-podhodit-risknem-s-windows-azure-pack\">Dag \u2116170: Openshift er ikke egnet, t\u00f8r vi pr\u00f8ve Windows Azure Pack?<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/73cbf7fd7e0330676c4d937df68289f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hyper-V er ikke s\u00e6rlig brugervenlig, og SCVMM g\u00f8r det ikke meget bedre. Men der findes noget, der hedder Windows Azure Pack, som er et lag ovenp\u00e5 SCVMM og efterligner Azure. Men i virkeligheden ser produktet forladt ud: dokumentationen har \u00f8delagte links og er temmelig sparsom. Men i forbindelse med unders\u00f8gelsen af muligheder for at forenkle vores sky, kiggede vi ogs\u00e5 p\u00e5 det.<\/p>\n<p><\/p>\n<h3 id=\"den-250-windows-azure-pack-ne-ochen-ostaemsya-na-scvmm\">Dag \u2116250: Windows Azure Pack er ikke imponerende. Vi bliver p\u00e5 SCVMM.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/8753b3da72adfb035d1a2f23ad28809b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Windows Azure Pack s\u00e5 lovende ud, men det blev besluttet ikke at bringe WAP med sine kompleksiteter ind i systemet for un\u00f8dvendige funktioner, og vi blev p\u00e5 SCVMM.<\/p>\n<p><\/p>\n<h3 id=\"den-360-edim-slona-po-chastyam\">Dag \u2116360: Vi spiser elefanten stykke for stykke.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/84e003906234c46b57b7769abd7b7993.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>S\u00e6soner senere var platformen klar til at flytte til, og flytteprocessen begyndte. For dette blev der sat en S.M.A.R.T. opgave. Vi skrev alle VM'er ned og begyndte \u00e9n ad gangen at se p\u00e5 konfigurationen, beskrive den i Ansible og d\u00e6kke den med tests.<\/p>\n<p><\/p>\n<h3 id=\"den-450-kakaya-sistema-poluchilas\">Dag \u2116450: Hvilket system blev der?<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/1d0c64e6a229a0b4e0e49f7b832147ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Selve processen er ikke interessant. Den er rutinepr\u00e6get, og man kan bem\u00e6rke, at de fleste konfigurationer var relativt enkle eller isomorfe. If\u00f8lge Pareto-princippet kr\u00e6vede 80% af konfigurationerne 20% af tiden. P\u00e5 samme m\u00e5de gik 80% af tiden til forberedelse af flytningen, og kun 20% gik til selve flytningen. <\/p>\n<p><\/p>\n<h2 id=\"den-540-final\">Dag \u2116540: Finale<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ansible: Migration af konfigurationen af 120 VM&#039;er fra CoreOS til CentOS over 18 m\u00e5neder\" src=\"\/wp-content\/uploads\/2020\/05\/7e3d1936dca58506d3b8efcf4ee3c115.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad er der sket over 18 m\u00e5neder?<\/p>\n<p><\/p>\n<ol>\n<li>Aftalerne er blevet kode.<\/li>\n<li><em>Manuel arbejde<\/em> -&gt; <em>Mekanisering<\/em> -&gt; <em>Automatisering<\/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\/\">Engelsk version<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.goncharov.xyz\/it\/coreos2centos-ru.html\">Krydsindl\u00e6g fra den personlige blog<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.mail.ru\/public\/UDCZ\/WM4Y9Qv3j\">slides<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/500058\/\">Hvordan man begynder at teste Ansible, refaktorere projektet p\u00e5 et \u00e5r uden at miste besindelsen<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/467171\/\">Lessons learned from testing Over 200,000 lines of Infrastructure Code<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/441928\/\">Lad os implementere til OpenShift<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/342216\/\">S\u00e5dan tester du din egen OS-distribution<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/437004\/\">Test mig, hvis du kan. Dr\u00f8mmer YML-udviklere om at teste Ansible?<\/a><\/noindex><\/li>\n<\/ul>\n<p>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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: Migration af konfiguration 120 VM fra CoreOS til CentOS p\u00e5 18 m\u00e5neder | ProHoster","description":"Dette.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/80289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=80289"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/80289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/80290"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=80289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=80289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=80289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}