{"id":90386,"date":"2020-07-31T13:42:20","date_gmt":"2020-07-31T11:42:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management"},"modified":"2020-07-31T13:42:20","modified_gmt":"2020-07-31T11:42:20","slug":"triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","title":{"rendered":"Thriller over serverconfiguratie zonder tovenarij met Configuration Management","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Het was bijna Nieuwjaar. Kinderen in het hele land hadden hun brieven al naar de Kerstman gestuurd of wensen gedaan voor cadeaus, en de belangrijkste uitvoerder daarvan \u2014 een van de grote detailhandelaars \u2014 bereidde zich voor op het hoogtepunt van de verkopen. In december neemt de belasting op zijn datacenter vele malen toe. Daarom besloot het bedrijf het datacenter te moderniseren en tientallen nieuwe servers in gebruik te nemen ter vervanging van apparatuur waarvan de levensduur was verstreken. Na deze inleiding op de achtergrond van flonkerende sneeuwvlokken begint de thriller. <\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/ebc2128d73e9a0e7f1e383b4b04ee492.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDe apparatuur arriveerde enkele maanden voor de piekverkoop. De exploitatieafdeling weet natuurlijk hoe en wat er op de servers moet worden ingesteld om ze in de productieomgeving te nemen. Maar we moesten dit automatiseren en de menselijke factor uitsluiten. Bovendien vervingen de servers de set SAP-systemen, die cruciaal waren voor het bedrijf, v\u00f3\u00f3r de migratie. <\/p>\n<p>De activering van de nieuwe servers was strikt gebonden aan een deadline. Het verzetten ervan zou de levering van een miljard cadeaus en de migratie van systemen in gevaar brengen. Zelfs het team van de Kerstman of de goede Sint had de datum niet kunnen veranderen \u2014 het migreren van het SAP-systeem voor voorraadbeheer kan namelijk maar \u00e9\u00e9n keer per jaar gebeuren. Van 31 december op 1 januari stoppen de enorme magazijnen van de detailhandelaar, samen groot als 20 voetbalvelden, 15 uur met hun werkzaamheden. En dat is het enige tijdsvenster voor de migratie van het systeem. We hadden geen speelruimte voor fouten bij het activeren van de servers. <\/p>\n<p>Laat me meteen uitleggen: mijn verhaal weerspiegelt de tools en het proces van configuratiebeheer dat ons team toepast.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nHet configuratiebeheersysteem bestaat uit verschillende niveaus. De belangrijkste component is het CMS-systeem. Bij industri\u00eble werking zou het ontbreken van een van de niveaus onvermijdelijk leiden tot onaangename verrassingen.<\/p>\n<h1>Bestuur van de installatie van het besturingssysteem<\/h1>\n<p>\nHet eerste niveau is het systeem voor het beheer van de installatie van besturingssystemen op fysieke en virtuele servers. Het cre\u00ebert basisconfiguraties van het besturingssysteem en elimineert de menselijke factor. <\/p>\n<p>Met dit systeem kregen we gestandaardiseerde en voor verdere automatisering geschikte serverinstellingen met een besturingsysteem. Bij de 'uitrol' kregen ze een minimale set van lokale gebruikers en SSH-publieke sleutels, evenals een consistente configuratie van het besturingsysteem. We konden de servers gegarandeerd beheren via een CMS en waren ervan overtuigd dat er 'onder de motorkap', op het niveau van het besturingsysteem, geen verrassingen waren. <\/p>\n<p>De 'maximale' taak voor het installatiebeheersysteem is het automatisch configureren van servers van het BIOS\/Firmware niveau tot het besturingssysteem. Veel hangt hier af van de hardware en configuratietaken. Voor heterogene hardware kan men overwegen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dmtf.org\/standards\/redfish\">REDFISH API<\/a><\/noindex>. Als alle 'hardware' van \u00e9\u00e9n leverancier afkomstig is, is het vaak handiger om gebruik te maken van kant-en-klare beheertools (bijvoorbeeld HP ILO Amplifier, DELL OpenManage, enzovoort).<\/p>\n<p>Voor de installatie van besturingssystemen op fysieke servers maakten we gebruik van de welbekende Cobbler, waarin een set goedgekeurde installatieprofielen is gedefinieerd. Bij het toevoegen van een nieuwe server aan de infrastructuur koppelde de ingenieur het MAC-adres van de server aan het vereiste profiel in Cobbler. Bij de eerste netboot kreeg de server een tijdelijk adres en een nieuw besturingssysteem. Vervolgens werd hij overgezet naar de doel VLAN\/IP-adressering en werd daar verder gewerkt. Ja, het wisselen van VLAN kost tijd en vereist afstemming, maar het biedt extra bescherming tegen onbedoelde installatie van een server in een productieomgeving.<\/p>\n<p>Virtuele servers cre\u00eberden we op basis van sjablonen die werden voorbereid met behulp van HashiCorp Packer. De reden was dezelfde: om mogelijke menselijke fouten bij de installatie van het besturingssysteem te voorkomen. Maar in tegenstelling tot fysieke servers maakt Packer het mogelijk om geen gebruik te maken van PXE, netboot en VLAN-wissels. Dit vereenvoudigde en vergemakkelijkte de creatie van virtuele servers. <\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/8cde23a4ad2ba1573bc88ec174bfe6b5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 1. Beheer van de installatie van besturingssystemen.<\/i><\/p>\n<h1>Beheer van geheimen<\/h1>\n<p>\nElke configuratiebeheersysteem bevat gegevens die verborgen moeten blijven voor reguliere gebruikers, maar nodig zijn voor het voorbereiden van systemen. Dit zijn wachtwoorden voor lokale gebruikers en service-accounts, certificaatsleutels, allerlei API Tokens, enzovoort. Deze worden meestal 'geheimen' genoemd.<\/p>\n<p>Als vanaf het begin niet wordt bepaald waar en hoe deze geheimen moeten worden opgeslagen, zijn er afhankelijk van de striktheid van de informatiebeveiligingseisen de volgende opslagmethoden waarschijnlijk:<\/p>\n<ul>\n<li>direct in the configuration management code or in files in the repository;<\/li>\n<li>in specialized configuration management tools (for example, Ansible Vault);<\/li>\n<li>in CI\/CD systems (Jenkins\/TeamCity\/GitLab\/etc.) or in configuration management systems (Ansible Tower\/Ansible AWX);<\/li>\n<li>secrets can also be transferred through 'manual management'. For example, they are placed in an agreed location and then used by configuration management systems;<\/li>\n<li>various combinations of the above.<\/li>\n<\/ul>\n<p>\nEach method has its drawbacks. The main one is the lack of access policies for secrets: it is difficult to determine who can use certain secrets. Another downside is the absence of access audit and a complete life cycle. How quickly can, for example, a public key be replaced that is written in the code and in several related systems?<\/p>\n<p>We used a centralized secret storage solution from HashiCorp Vault. This allowed us to: <\/p>\n<ul>\n<li>store secrets securely. They are encrypted, and even if someone gains access to the Vault storage database (for example, by restoring it from a backup), they will not be able to read the secrets stored there; <\/li>\n<li>organize access policies for secrets. Users and applications have access only to the 'designated' secrets;<\/li>\n<li>conduct an audit of access to secrets. Any actions with secrets are recorded in the Vault audit log;<\/li>\n<li>organize a full 'life cycle' for secrets. They can be created, revoked, set to expire, etc.<\/li>\n<li>easily integrate with other systems that require access to secrets;<\/li>\n<li>and also apply end-to-end encryption, one-time passwords for OS and databases, certificates from authorized centers, etc. <\/li>\n<\/ul>\n<p>\nNow let's move on to the central authentication and authorization system. It could have been done without it, but managing users across multiple supporting systems is too non-trivial. We set up authentication and authorization through the LDAP service. Otherwise, in the same Vault, we would have to continuously issue and keep track of authentication tokens for users. And adding and removing users would turn into the quest: 'have I created\/removed this account everywhere?' <\/p>\n<p>Let's add another level to our system: secret management and central authentication\/authorization:<\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/993e863417898c39940fe0bc9ee55b1e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Secret management.<\/i><\/p>\n<h1>Configuratiebeheer<\/h1>\n<p>\nWe zijn aangekomen bij de kern \u2014 het CMS-systeem. In ons geval is dit de combinatie van Ansible en Red Hat Ansible AWX. <\/p>\n<p>Naast Ansible kunnen ook Chef, Puppet en SaltStack worden gebruikt. We hebben Ansible gekozen op basis van verschillende criteria. <\/p>\n<ul>\n<li>Ten eerste is er de veelzijdigheid. De set kant-en-klare modules voor beheer <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\">maakt indruk<\/a><\/noindex>. En als er iets ontbreekt, kan je het op GitHub en Galaxy zoeken. <\/li>\n<li>Ten tweede is het niet nodig om agenten op het beheerde apparaat te installeren en te onderhouden, en te bewijzen dat ze de belasting niet be\u00efnvloeden en te bevestigen dat er geen 'achterdeurtjes' zijn. <\/li>\n<li>Ten derde heeft Ansible een lage instapdrempel. Een bekwame ingenieur kan binnen de eerste werkdag een werkende playbook schrijven.<\/li>\n<\/ul>\n<p>\nMaar alleen Ansible was niet voldoende in een industri\u00eble omgeving. Anders zouden er veel problemen ontstaan met toegangsbeperkingen en het auditen van de acties van beheerders. Hoe deel je de toegang? Het was nodig dat elke afdeling beheer (lees \u2014 het uitvoeren van Ansible playbook) had over 'hun' set servers. Hoe stel je in dat specifieke Ansible playbooks alleen door bepaalde medewerkers kunnen worden uitgevoerd? Of hoe volg je op wie een playbook heeft uitgevoerd, zonder veel lokale gebruikersaccounts op servers en apparatuur onder Ansible te cre\u00ebren?<\/p>\n<p>Een groot deel van dergelijke vragen wordt opgelost door Red Hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ansible.com\/products\/tower\">Ansible Tower<\/a><\/noindex>, of zijn open-source upstream project <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible\/awx\">Ansible AWX<\/a><\/noindex>. Daarom hebben we het gekozen voor de klant. <\/p>\n<p>En nog een aspect van het profiel van ons CMS-systeem. Ansible playbooks moeten worden opgeslagen in code repository-beheersystemen. Voor ons is dit <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/\">GitLab CE<\/a><\/noindex>.<\/p>\n<p>Dus de configuraties worden beheerd door de combinatie van Ansible\/Ansible AWX\/GitLab (zie Figuur 3). Uiteraard zijn AWX\/GitLab ge\u00efntegreerd met een enkel authenticatiesysteem, terwijl Ansible playbooks zijn verbonden met HashiCorp Vault. Configuraties komen alleen in de productieomgeving via Ansible AWX, waarin alle 'spelregels' zijn ingesteld: wie wat kan configureren, waar de code voor configuratiebeheer voor het CMS vandaan komt, enzovoort.<\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f4f5b3904a2145d7283cd52f921bca89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 3. Configuratiebeheer.<\/i><\/p>\n<h1>Testbeheer<\/h1>\n<p>\nOnze configuratie wordt gepresenteerd in de vorm van code. Daarom moeten wij ons houden aan dezelfde regels als softwareontwikkelaars. We moesten processen voor ontwikkeling, continue testing, levering en toepassing van configuratiecode op productie-servers organiseren.<\/p>\n<p>Als dit niet meteen wordt gedaan, zouden de geschreven rollen voor de configuratie ofwel niet meer ondersteund en aangepast worden, ofwel zouden ze stoppen met draaien in productie. De oplossing voor deze pijn is bekend en heeft zich in dit project bewezen:<\/p>\n<ul>\n<li>elke rol is gedekt met modulaire tests;<\/li>\n<li>de tests worden automatisch uitgevoerd bij elke wijziging in de code die de configuraties beheert;<\/li>\n<li>wijzigingen in de code voor het beheer van configuraties komen pas in de productieomgeving nadat ze succesvol alle tests en codebeoordelingen hebben doorstaan.<\/li>\n<\/ul>\n<p>\nDe ontwikkeling van code en het beheer van configuraties zijn rustiger en voorspelbaarder geworden. Voor het organiseren van continue testing hebben we GitLab CI\/CD-tools gebruikt, en als testframework hebben we gekozen voor <noindex><a rel=\"nofollow\" href=\"https:\/\/molecule.readthedocs.io\/en\/latest\/\">Ansible Molecule<\/a><\/noindex>.<\/p>\n<p>Bij elke wijziging in de code voor het beheer van configuraties roept GitLab CI\/CD Molecule aan: <\/p>\n<ul>\n<li>dit controleert de syntaxis van de code, <\/li>\n<li>start een Docker-container, <\/li>\n<li>past de gewijzigde code toe in de aangemaakte container, <\/li>\n<li>controleert de rol op idempotentie en voert tests uit voor deze code (de granulariteit hier is op het niveau van de ansible rol, zie Figuur 4).<\/li>\n<\/ul>\n<p>\nConfiguraties in de productieomgeving hebben we geleverd met behulp van Ansible AWX. De ingenieurs die verantwoordelijk zijn voor de exploitatie maakten wijzigingen in de configuratie via vooraf gedefinieerde sjablonen. AWX vroeg bij elke toepassing automatisch de laatste versie van de code op van de masterbranch van GitLab. Zo uitsloten we het gebruik van ongecontroleerde of verouderde code in de productieomgeving. Natuurlijk kwam de code in de masterbranch alleen na testen, beoordeling en goedkeuring.<\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/aa8f6205f05792a6a1120ad7360ab102.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 4. Automatische testing van rollen in GitLab CI\/CD.<\/i><\/p>\n<p>Er is ook nog een probleem met de exploitatie van productie systemen. In de praktijk is het erg moeilijk om wijzigingen in de configuratie alleen via de CMS-code aan te brengen. Er ontstaan noodsituaties waarbij de ingenieur de configuratie 'hier en nu' moet wijzigen, zonder te wachten op aanpassing van de code, testen, goedkeuring, enz.<\/p>\n<p>Als gevolg hiervan ontstaan door handmatige wijzigingen verschillen in de configuratie op soortgelijke apparatuur (bijvoorbeeld, op HA-cluster knooppunten verschillende configuraties van sysctl-instellingen). Of de werkelijke configuratie op de apparatuur wijkt af van diegene die in de CMS-code is gespecificeerd. <\/p>\n<p>Daarom controleren we naast continue tests ook de productie-omgevingen op configuratieverschillen. We kozen de eenvoudigste optie: het uitvoeren van de configuratiecode van de CMS in de 'dry run'-modus, dat wil zeggen zonder wijzigingen toe te passen, maar met een melding van alle verschillen tussen de geplande en de werkelijke configuratie. We hebben dit gerealiseerd door periodiek alle Ansible playbooks te draaien met de optie '\u2014check' op de productie-servers. Zoals altijd is Ansible AWX verantwoordelijk voor het uitvoeren en de actualiteit van de playbooks (zie Figuur 5):<\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/108a5a473f60ab76ee15f9334ebcbab7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 5. Controle op afwijkingen in configuraties in Ansible AWX.<\/i><\/p>\n<p>Na de controles verstuurt AWX een rapport over de afwijkingen naar de beheerders. Zij bestuderen de problematische configuratie en corrigeren deze vervolgens via gecorrigeerde playbooks. Zo houden we de configuratie in de productieomgeving up-to-date, en is de CMS altijd in een actuele en gesynchroniseerde staat. Dit voorkomt onaangename 'wonderen' wanneer de CMS-code wordt toegepast op de 'live' servers.<\/p>\n<p>Nu hebben we een belangrijk testniveau dat bestaat uit Ansible AWX\/GitLab\/Molecule (Figuur 6).<\/p>\n<p><img decoding=\"async\" alt=\"Thriller over serverconfiguratie zonder tovenarij met Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f487f5603e90b0c753fb9decf9018b11.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figuur 6. Testbeheer.<\/i><\/p>\n<p>Lastig? Daar ben ik het mee eens. Maar zo'n complexe configuratiebeheer is een allesomvattend antwoord op veel vragen die samenhangen met de automatisering van serverconfiguraties. Nu heeft de retailer voor standaardservers altijd een strikt gedefinieerde configuratie. De CMS zal, in tegenstelling tot een ingenieur, niet vergeten de noodzakelijke instellingen toe te voegen, gebruikers aan te maken en tientallen of honderden vereiste instellingen uit te voeren.<\/p>\n<p>In de instellingen van servers en omgevingen zijn er vandaag de dag geen 'verborgen kennis'. Alle noodzakelijke kenmerken zijn vastgelegd in de playbooks. Geen creativiteit meer en vage instructies: '<i>stel in als een gewone Oracle, maar dan moeten er een paar sysctl-instellingen worden vastgelegd, en gebruikers met de juiste UID moeten worden toegevoegd. Vraag het de jongens van exploitatie, zij weten het.<\/i>\u00bb. <\/p>\n<p>De mogelijkheid om afwijkingen in configuraties te ontdekken en deze van tevoren te corrigeren geeft rust. Zonder een configuratiebeheersysteem ziet het er doorgaans anders uit. Problemen stapelen zich op totdat ze op een dag in productie 'ontploffen'. Daarna wordt er een evaluatie gedaan, worden configuraties gecontroleerd en gecorrigeerd. En de cyclus herhaalt zich weer. <\/p>\n<p>En natuurlijk hebben we de inbedrijfstelling van servers versneld van enkele dagen naar enkele uren.<\/p>\n<p>Op de oudejaarsnacht, wanneer kinderen blij hun cadeaus uitpakken en volwassenen wensen onder het geslinger van de klokken, migreerden onze ingenieurs het SAP-systeem naar nieuwe servers. Zelfs de Kerstman zou zeggen dat de beste wonderen goed voorbereid zijn. <\/p>\n<p>P.S. Ons team komt vaak tegen dat klanten zo eenvoudig mogelijk de configuratiebeheer-taak willen oplossen. Idealiter als bij magie \u2014 met \u00e9\u00e9n tool. Maar in de praktijk is alles ingewikkelder (ja, er zijn weer geen zilveren kogels geleverd): we moeten een volledig proces opzetten met behulp van handige tools voor het team van de klant.<\/p>\n<p><i>Auteur: Sergey Artemov, architect van de afdeling <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/portal.jet.su\/about\/company\/structure\/?set_filter_structure=Y&amp;structure_UF_DEPARTMENT=56656\"><i>DevOps-oplossingen<\/i><\/a><\/noindex><i> InfoSystemen Jet<\/i><br \/>\n<br \/>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jetinfosystems\/blog\/513132\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436. \u0412 \u0434\u0435\u043a\u0430\u0431\u0440\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u0435\u0433\u043e \u0426\u041e\u0414 \u0432\u044b\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0435\u0448\u0438\u043b\u0430 \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440 \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 \u0441\u0442\u0440\u043e\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043d\u043e\u0432\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":90387,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-90386","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=\"\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436.\" \/>\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\/nl\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\u0422\u0440\u0438\u043b\u043b\u0435\u0440 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0435\u0437 \u0447\u0443\u0434\u0435\u0441 \u0441 Configuration Management | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\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-07-31T11:42:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-31T11:42:20+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\udd47Thriller over serverconfiguratie zonder wonderen met Configuration Management | ProHoster","description":"Het jaar liep ten einde. Kinderen in het hele land hadden al brieven naar de Kerstman gestuurd of wensen gedaan voor cadeaus, terwijl de belangrijkste uitvoerder \u2014 een van de grote detailhandelaars \u2014 zich voorbereidde op het hoogtepunt van de verkoop.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\u0422\u0440\u0438\u043b\u043b\u0435\u0440 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0435\u0437 \u0447\u0443\u0434\u0435\u0441 \u0441 Configuration Management | ProHoster","og:description":"\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","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-07-31T11:42:20+00:00","article:modified_time":"2020-07-31T11:42:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"90386","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 12:52:34","updated":"2022-09-28 09:47:54","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/90386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=90386"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/90386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/90387"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=90386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=90386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=90386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}