{"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\/it\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","title":{"rendered":"Thriller sulla configurazione dei server senza magie con il Configuration Management","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Si avvicinava il Capodanno. I bambini di tutto il paese avevano gi\u00e0 inviato le lettere a Babbo Natale o avevano espresso i loro desideri di regali, e il principale esecutore \u2014 uno dei grandi rivenditori \u2014 si stava preparando per l'apice delle vendite. A dicembre, il carico sul suo data center aumenta notevolmente. Pertanto, l'azienda ha deciso di modernizzare il centro dati e di mettere in funzione decine di nuovi server a sostituzione di attrezzature il cui ciclo di vita era giunto al termine. A questo punto la favola sullo sfondo dei fiocchi di neve volanti finisce, e inizia il thriller. <\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/ebc2128d73e9a0e7f1e383b4b04ee492.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nL'attrezzatura \u00e8 arrivata sul sito diversi mesi prima del picco delle vendite. Il servizio operativo, ovviamente, sa come e cosa configurare sui server per metterli in produzione. Ma dovevamo automatizzare questo processo ed escludere il fattore umano. Inoltre, i server sostituivano un insieme di sistemi SAP, critici per l'azienda, prima della migrazione. <\/p>\n<p>L'implementazione dei nuovi server era rigidamente legata a scadenze. Spostarla significava mettere a rischio sia la consegna di un miliardo di regali sia la migrazione dei sistemi. La data non poteva essere cambiata nemmeno dalla squadra composta da Babbo Natale e Santa Claus: il trasferimento del sistema SAP per la gestione del magazzino pu\u00f2 avvenire solo una volta all'anno. Dal 31 dicembre al 1 gennaio, enormi magazzini del rivenditore, complessivamente grandi come 20 campi da calcio, fermano le loro operazioni per 15 ore. E questo \u00e8 l'unico intervallo di tempo per il trasferimento del sistema. Non avevamo margine d'errore nell'implementazione dei server. <\/p>\n<p>Spiego subito: il mio racconto riflette gli strumenti e il processo di gestione delle configurazioni utilizzati dal nostro team.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIl complesso di gestione delle configurazioni \u00e8 composto da diversi livelli. Il componente chiave \u00e8 il sistema CMS. In un'operazione industriale, l'assenza di uno dei livelli porterebbe inevitabilmente a spiacevoli sorprese.<\/p>\n<h1>Gestione dell'installazione del sistema operativo<\/h1>\n<p>\nIl primo livello \u00e8 il sistema di gestione dell'installazione dei sistemi operativi su server fisici e virtuali. Esso crea configurazioni base del sistema operativo, eliminando il fattore umano. <\/p>\n<p>Con questo sistema abbiamo ottenuto esemplari di server con sistema operativo gi\u00e0 configurati e pronti per ulteriore automazione. Durante il \"deployment\", venivano creati un numero minimo di utenti locali e chiavi pubbliche SSH, oltre a una configurazione coerente del sistema operativo. Potevamo gestire i server in modo garantito tramite CMS e eravamo certi che non ci fossero sorprese a livello di sistema operativo. <\/p>\n<p>L'obiettivo massimo per il sistema di gestione delle installazioni \u00e8 configurare automaticamente i server dal livello BIOS\/Firmware fino al sistema operativo. Molto dipende dall'hardware e dalle esigenze di configurazione. Per hardware eterogeneo, si pu\u00f2 considerare <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dmtf.org\/standards\/redfish\">REDFISH API<\/a><\/noindex>. Se tutto l'hardware proviene dallo stesso fornitore, spesso \u00e8 pi\u00f9 utile utilizzare strumenti di gestione gi\u00e0 pronti (ad esempio, HP ILO Amplifier, DELL OpenManage, ecc.).<\/p>\n<p>Per l'installazione del sistema operativo sui server fisici, abbiamo utilizzato il ben noto Cobbler, in cui \u00e8 definito un insieme di profili di installazione concordati con il servizio operativo. Quando un nuovo server viene aggiunto all'infrastruttura, l'ingegnere associa l'indirizzo MAC del server al profilo richiesto in Cobbler. Al primo avvio tramite rete, il server riceve un indirizzo temporaneo e un sistema operativo aggiornato. Viene quindi trasferito nella VLAN\/indirizzamento IP di destinazione e si continua a lavorare da l\u00ec. S\u00ec, cambiare VLAN richiede tempo e approvazione, ma fornisce una protezione aggiuntiva contro l'installazione accidentale del server nell'ambiente di produzione.<\/p>\n<p>I server virtuali sono stati creati sulla base di modelli preparati con HashiCorp Packer. La ragione \u00e8 la medesima: prevenire possibili errori umani nell'installazione del sistema operativo. Tuttavia, a differenza dei server fisici, Packer consente di non utilizzare PXE, l'avvio di rete e il cambio della VLAN. Questo ha reso pi\u00f9 semplice e pratico il processo di creazione dei server virtuali. <\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/8cde23a4ad2ba1573bc88ec174bfe6b5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1. Gestione dell'installazione dei sistemi operativi.<\/i><\/p>\n<h1>Gestione dei segreti<\/h1>\n<p>\nQualsiasi sistema di gestione della configurazione contiene dati che devono essere nascosti agli utenti comuni, ma sono necessari per la preparazione dei sistemi. Questi includono le password degli utenti locali e degli account di servizio, le chiavi dei certificati, vari token API e cos\u00ec via. Di solito sono chiamati \"segreti\".<\/p>\n<p>Se non si definisce fin dall'inizio dove e come memorizzare questi segreti, a seconda della severit\u00e0 dei requisiti di sicurezza, le modalit\u00e0 di memorizzazione potrebbero essere le seguenti:<\/p>\n<ul>\n<li>direttamente nel codice di gestione della configurazione o in file nel repository;<\/li>\n<li>in strumenti specializzati di gestione della configurazione (ad esempio, Ansible Vault);<\/li>\n<li>in sistemi CI\/CD (Jenkins\/TeamCity\/GitLab ecc.) o in sistemi di gestione della configurazione (Ansible Tower\/Ansible AWX);<\/li>\n<li>i segreti possono anche essere gestiti manualmente. Ad esempio, vengono pubblicati in un luogo concordato, per poi essere utilizzati dai sistemi di gestione della configurazione;<\/li>\n<li>diverse combinazioni delle modalit\u00e0 sopra descritte.<\/li>\n<\/ul>\n<p>\nOgni metodo ha i suoi svantaggi. Il principale \u00e8 l'assenza di politiche di accesso ai segreti: non \u00e8 possibile o \u00e8 difficile determinare chi pu\u00f2 utilizzare determinati segreti. Un altro svantaggio \u00e8 la mancanza di audit dell'accesso e di un ciclo di vita completo. Quanto \u00e8 semplice sostituire, ad esempio, una chiave pubblica che \u00e8 scritta nel codice e in vari sistemi collegati?<\/p>\n<p>Abbiamo utilizzato un archivio centralizzato per i segreti, HashiCorp Vault. Questo ci ha permesso di: <\/p>\n<ul>\n<li>archiviare i segreti in sicurezza. Sono crittografati e anche se qualcuno dovesse avere accesso al database dell'archivio Vault (ad esempio, recuperandolo da un backup), non sarebbe in grado di leggere i segreti ivi conservati; <\/li>\n<li>organizzare politiche di accesso ai segreti. Gli utenti e le applicazioni hanno accesso solo ai segreti 'assegnati' loro;<\/li>\n<li>condurre audit dell'accesso ai segreti. Qualsiasi azione relativa ai segreti viene registrata nel registro audit di Vault;<\/li>\n<li>gestire un 'ciclo di vita' completo per l'uso dei segreti. \u00c8 possibile crearli, revocarli, impostare una scadenza, ecc.;<\/li>\n<li>integrarsi facilmente con altri sistemi che necessitano di accesso ai segreti;<\/li>\n<li>e inoltre applicare la crittografia end-to-end, le password usa e getta per il sistema operativo e il database, i certificati delle autorit\u00e0 di certificazione, ecc. <\/li>\n<\/ul>\n<p>\nPassiamo ora al sistema centrale di autenticazione e autorizzazione. Si poteva fare a meno di esso, ma amministrare gli utenti in molteplici sistemi correlati \u00e8 troppo complesso. Abbiamo configurato l'autenticazione e l'autorizzazione tramite il servizio LDAP. Altrimenti, in Vault si sarebbe dovuto emettere e gestire continuamente i token di autenticazione per gli utenti. E l'aggiunta e la rimozione degli utenti sarebbero diventate una quest 'ho creato\/eliminato questa utenza ovunque?' <\/p>\n<p>Aggiungiamo un ulteriore livello al nostro sistema: gestione dei segreti e autenticazione\/ autorizzazione centralizzata:<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/993e863417898c39940fe0bc9ee55b1e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Gestione dei segreti.<\/i><\/p>\n<h1>Gestione delle configurazioni<\/h1>\n<p>\nSiamo arrivati al cuore \u2014 al sistema CMS. Nel nostro caso, si tratta della combinazione Ansible e Red Hat Ansible AWX. <\/p>\n<p>Al posto di Ansible pu\u00f2 essere usato Chef, Puppet, SaltStack. Abbiamo scelto Ansible per diversi criteri. <\/p>\n<ul>\n<li>In primo luogo, la sua versatilit\u00e0. Il set di moduli gi\u00e0 pronti per la gestione <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\">fa un'impressione<\/a><\/noindex>. E se non basta, si pu\u00f2 cercare su GitHub e Galaxy. <\/li>\n<li>In secondo luogo, non \u00e8 necessario installare e mantenere agenti su hardware gestito, dimostrare che non interferiscono con il carico e confermare l'assenza di \"backdoor\". <\/li>\n<li>In terzo luogo, Ansible ha una bassa barriera d'ingresso. Un ingegnere competente scriver\u00e0 un playbook funzionante letteralmente il primo giorno di utilizzo del prodotto.<\/li>\n<\/ul>\n<p>\nTuttavia, un solo Ansible non era sufficiente in un ambiente industriale. Altrimenti, sarebbero sorti diversi problemi relativi al controllo degli accessi e all'audit delle azioni degli amministratori. Come delimitare l'accesso? Era necessario che ogni divisione gestisse (ovvero eseguisse il playbook di Ansible) il proprio insieme di server. Come consentire l'esecuzione di specifici playbook di Ansible solo a determinati dipendenti? O come tracciare chi ha eseguito il playbook, senza creare molteplici account locali sui server e sull'hardware gestito da Ansible?<\/p>\n<p>La maggior parte di queste questioni \u00e8 risolta da Red Hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ansible.com\/products\/tower\">Ansible Tower<\/a><\/noindex>, o dal suo progetto upstream open-source <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible\/awx\">Ansible AWX<\/a><\/noindex>. Pertanto, lo abbiamo preferito per il cliente. <\/p>\n<p>E un ulteriore dettaglio sul profilo del nostro sistema CMS. Il playbook di Ansible deve essere archiviato nei sistemi di gestione del repository di codice. Noi utilizziamo <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/\">GitLab CE<\/a><\/noindex>.<\/p>\n<p>Quindi, le configurazioni sono gestite da un insieme di Ansible\/Ansible AWX\/GitLab (cfr. Figura 3). Ovviamente, AWX\/GitLab sono integrati con un sistema di autenticazione unificato e il playbook di Ansible \u00e8 con HashiCorp Vault. Le configurazioni entrano nell'ambiente di produzione solo tramite Ansible AWX, dove sono stabilite tutte le \"regole del gioco\": chi e cosa pu\u00f2 configurare, da dove attingere il codice di gestione delle configurazioni per il CMS, ecc.<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f4f5b3904a2145d7283cd52f921bca89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figura 3. Gestione delle configurazioni.<\/i><\/p>\n<h1>Gestione dei test<\/h1>\n<p>\nLa nostra configurazione \u00e8 presentata sotto forma di codice. Pertanto, dobbiamo seguire le stesse regole degli sviluppatori software. \u00c8 stato necessario organizzare i processi di sviluppo, test continuo, distribuzione e applicazione del codice di configurazione sui server di produzione.<\/p>\n<p>Se non lo si fa immediatamente, i ruoli scritti per la configurazione smetterebbero di essere mantenuti e modificati, oppure smetterebbero di essere eseguiti in produzione. La soluzione a questo problema \u00e8 nota e ha dato buoni risultati in questo progetto:<\/p>\n<ul>\n<li>ogni ruolo \u00e8 coperto da test modulari;<\/li>\n<li>i test vengono eseguiti automaticamente ad ogni modifica del codice che gestisce le configurazioni;<\/li>\n<li>Le modifiche al codice di gestione delle configurazioni vengono trasferite nell'ambiente di produzione solo dopo aver superato con successo tutti i test e la revisione del codice.<\/li>\n<\/ul>\n<p>\nLo sviluppo del codice e la gestione delle configurazioni sono diventati pi\u00f9 tranquilli e prevedibili. Per organizzare test continui, abbiamo utilizzato gli strumenti di GitLab CI\/CD, e come framework per l'organizzazione dei test abbiamo scelto <noindex><a rel=\"nofollow\" href=\"https:\/\/molecule.readthedocs.io\/en\/latest\/\">Ansible Molecule<\/a><\/noindex>.<\/p>\n<p>Ogni volta che c'\u00e8 una modifica nel codice di gestione delle configurazioni, GitLab CI\/CD invoca Molecule: <\/p>\n<ul>\n<li>esso verifica la sintassi del codice, <\/li>\n<li>innalza un contenitore Docker, <\/li>\n<li>applica il codice modificato nel contenitore creato, <\/li>\n<li>verifica il ruolo per l'idempotenza e esegue i test per quel codice (la granularit\u00e0 qui \u00e8 a livello del ruolo Ansible, vedi Fig. 4).<\/li>\n<\/ul>\n<p>\nAbbiamo consegnato le configurazioni nell'ambiente di produzione utilizzando Ansible AWX. Gli ingegneri responsabili della gestione applicavano le modifiche alla configurazione tramite modelli predefiniti. AWX richiedeva autonomamente la versione pi\u00f9 recente del codice dal ramo master di GitLab ad ogni applicazione. In questo modo abbiamo escluso l'uso di codice non verificato o obsoleto nell'ambiente di produzione. Naturalmente, il codice arrivava al ramo master solo dopo test, revisione e approvazione.<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/aa8f6205f05792a6a1120ad7360ab102.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 4. Test automatici dei ruoli in GitLab CI\/CD.<\/i><\/p>\n<p>C'\u00e8 un altro problema legato alla gestione delle sistemi di produzione. Nella realt\u00e0, \u00e8 molto difficile apportare modifiche alla configurazione solo attraverso il codice CMS. Si verificano situazioni impreviste in cui l'ingegnere deve modificare la configurazione 'qui e ora', senza attendere la revisione del codice, i test, l'approvazione, ecc.<\/p>\n<p>Di conseguenza, a causa delle modifiche manuali, ci sono discrepanze nella configurazione su hardware simile (ad esempio, le impostazioni di sysctl sui nodi di un cluster HA sono diverse). Oppure la configurazione reale sull'hardware differisce da quella definita nel codice CMS. <\/p>\n<p>Pertanto, oltre ai test continui, verifichiamo gli ambienti di produzione per eventuali discrepanze nelle configurazioni. Abbiamo scelto l'opzione pi\u00f9 semplice: eseguire il codice di configurazione CMS in modalit\u00e0 'dry run', ovvero senza applicare modifiche, ma notificando eventuali differenze tra la configurazione pianificata e quella reale. Abbiamo implementato questo attraverso l'esecuzione periodica di tutti i playbook Ansible con l'opzione '\u2014check' sui server di produzione. Come sempre, Ansible AWX si occupa dell'esecuzione e della rilevanza dei playbook (vedi Fig. 5):<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/108a5a473f60ab76ee15f9334ebcbab7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5. Controlli delle discrepanze di configurazione in Ansible AWX.<\/i><\/p>\n<p>Dopo i controlli, AWX invia un rapporto sulle discrepanze agli amministratori. Essi esaminano la configurazione problematica e poi la correggono tramite playbook aggiornati. In questo modo, manteniamo la configurazione nell'ambiente di produzione e il CMS rimane sempre aggiornato e sincronizzato. Questo elimina sgradevoli 'sorpresi' quando il codice CMS viene applicato su server 'live'.<\/p>\n<p>Ora abbiamo un livello di testing importante, composto da Ansible AWX\/GitLab\/Molecule (Fig. 6).<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sulla configurazione dei server senza magie con il Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f487f5603e90b0c753fb9decf9018b11.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Gestione del testing.<\/i><\/p>\n<p>Difficile? Non lo nego. Ma questo complesso di gestione delle configurazioni rappresenta una risposta esaustiva a molte delle domande legate all'automazione della configurazione dei server. Ora, per un rivenditore, i server standard hanno sempre una configurazione rigorosamente definita. La CMS, a differenza dell'ingegnere, non dimenticher\u00e0 di aggiungere le impostazioni necessarie, creare utenti e completare decine o centinaia di impostazioni richieste.<\/p>\n<p>Oggi, nelle impostazioni dei server e degli ambienti, non ci sono pi\u00f9 \"conoscenze segrete\". Tutte le caratteristiche necessarie sono riflesse nel playbook. Niente pi\u00f9 creativit\u00e0 e istruzioni vaghe: \"<i>imposta come un normale Oracle, ma bisogna scrivere un paio di impostazioni sysctl e aggiungere utenti con il UID appropriato. Chiedi ai ragazzi dell'operativit\u00e0, loro lo sanno<\/i>\u00bb. <\/p>\n<p>La possibilit\u00e0 di rilevare le discrepanze nelle configurazioni e di correggerle in anticipo offre tranquillit\u00e0. Senza un sistema di gestione delle configurazioni, di solito la situazione \u00e8 diversa. I problemi si accumulano fino a quando non \"esplodono\" in produzione. Poi si fa un'analisi, si controllano e si correggono le configurazioni. E il ciclo si ripete di nuovo. <\/p>\n<p>E naturalmente, abbiamo ridotto il tempo di avvio dei server da giorni a ore.<\/p>\n<p>E nella notte di Capodanno, quando i bambini aprivano felicemente i regali e gli adulti esprimevano desideri al suono delle campane, i nostri ingegneri hanno migrato il sistema SAP su nuovi server. Anche Babbo Natale dir\u00e0 che i migliori miracoli sono ben preparati. <\/p>\n<p>P.S. Il nostro team si trova spesso di fronte alla situazione in cui i clienti vogliono risolvere il compito della gestione delle configurazioni nel modo pi\u00f9 semplice possibile. L'ideale sarebbe che fosse come per magia \u2014 con uno strumento solo. Ma nella vita la situazione \u00e8 pi\u00f9 complicata (s\u00ec, di nuovo non sono arrivate le pallottole d'argento): \u00e8 necessario creare un intero processo utilizzando strumenti comodi per il team del cliente.<\/p>\n<p><i>Autore: Sergey Artemov, architetto del reparto <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/portal.jet.su\/about\/company\/structure\/?set_filter_structure=Y&amp;structure_UF_DEPARTMENT=56656\"><i>soluzioni DevOps<\/i><\/a><\/noindex><i> \u00abInfocom Systems Jet\u00bb<\/i><br \/>\n<br \/>Fonte: <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 4.9.10 - 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. \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\" \/>\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\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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 sulla configurazione dei server senza magie con il Configuration Management | ProHoster","description":"Il tempo si avvicinava a Capodanno. I bambini di tutta la nazione avevano gi\u00e0 inviato lettere a Babbo Natale o fatto dei desideri per i regali, mentre il principale esecutore dei loro desideri \u2014 uno dei grandi rivenditori \u2014 si preparava per l'apoteosi delle vendite. Durante dicembre, il carico sul suo data center aumenta di diverse volte. Pertanto, l'azienda ha deciso di modernizzare il data center e mettere in funzione diverse dozzine di nuovi server al posto di","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","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\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. \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","og:url":"https:\/\/prohoster.info\/it\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/90386","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=90386"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/90386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/90387"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=90386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=90386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=90386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}