{"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>Il periodo si avvicinava al Capodanno. I bambini di tutto il paese avevano gi\u00e0 inviato lettere a Babbo Natale o avevano desiderato regali per s\u00e9, mentre il principale attore di questa attivit\u00e0 \u2014 uno dei grandi rivenditori \u2014 si preparava all'apice delle vendite. A dicembre, il carico sul suo centro di dati cresce di diverse volte. Per questo motivo, l'azienda ha deciso di modernizzare il data center e di mettere in funzione diverse decine di nuovi server al posto dell'hardware la cui vita utile stava per scadere. La nostra storia termina qui, sullo sfondo di fiocchi di neve che cadono, 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'hardware \u00e8 arrivato sul sito alcuni mesi prima del picco delle vendite. Il servizio operativo, ovviamente, sa come e cosa configurare sui server per metterli in ambiente di produzione. Ma avevamo bisogno di automatizzare questo processo ed escludere il fattore umano. Inoltre, i server sostituivano, prima della migrazione, un insieme di sistemi SAP critici per l'azienda. <\/p>\n<p>L'attivazione dei nuovi server era rigidamente legata a una scadenza. Spostarla significava mettere in pericolo sia la spedizione di un miliardo di regali che la migrazione dei sistemi. Nessuna squadra, nemmeno quella di Babbo Natale o di Santa Claus, avrebbe potuto cambiare la data; il sistema SAP per la gestione del magazzino pu\u00f2 essere spostato solo una volta all'anno. Dal 31 dicembre al 1 gennaio, i giganteschi magazzini del rivenditore, per un totale come 20 campi da calcio, interrompono la loro attivit\u00e0 per 15 ore. E questo \u00e8 l'unico intervallo di tempo disponibile per il trasferimento del sistema. Non avevamo margini di errore nell'attivazione 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 pi\u00f9 livelli. Il componente chiave \u00e8 il sistema CMS. In un'operazione industriale, l'assenza di uno dei livelli avrebbe inevitabilmente portato a inconvenienti indesiderati.<\/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. Crea configurazioni di sistema operativo di base, eliminando il fattore umano. <\/p>\n<p>Con questo sistema ottenevamo esemplari standard e adatti per ulteriori automazioni dei server con OS. Durante il \"deployment\" ottenevano un insieme minimo di utenti locali e chiavi pubbliche SSH, oltre a una configurazione concordata dell'OS. Potevamo gestire i server garantendo l'accesso tramite CMS e eravamo certi che \"in basso\", a livello di OS, non ci fossero sorprese. <\/p>\n<p>L'obiettivo \"massimo\" per il sistema di gestione dei deployment \u00e8 quello di configurare automaticamente i server dal livello BIOS\/Firmware fino all'OS. Molto dipende qui dall'hardware e dalle attivit\u00e0 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 da un unico fornitore, spesso \u00e8 pi\u00f9 conveniente utilizzare strumenti di gestione predefiniti (ad esempio, HP ILO Amplifier, DELL OpenManage, ecc.).<\/p>\n<p>Per l'installazione dell'OS sui server fisici abbiamo utilizzato il ben noto Cobbler, nel quale era definito un insieme di profili di installazione concordati con il servizio di operazioni. Quando un nuovo server veniva aggiunto all'infrastruttura, l'ingegnere associava l'indirizzo MAC del server al profilo richiesto in Cobbler. Durante il primo avvio in rete, il server riceveva un indirizzo temporaneo e un nuovo OS. Successivamente veniva trasferito nella VLAN\/allocazione IP target e continuava a lavorare l\u00ec. S\u00ec, cambiare la VLAN richiede tempo e approvazione, ma offre ulteriore protezione contro l'installazione accidentale del server nell'ambiente di produzione.<\/p>\n<p>I server virtuali li creavamo sulla base di modelli, preparati con HashiCorp Packer. La ragione era la stessa: prevenire possibili errori umani durante l'installazione dell'OS. Ma, a differenza dei server fisici, Packer permette di non utilizzare PXE, avvio di rete e cambio VLAN. Questo ha reso pi\u00f9 facile e semplice la creazione di 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 delle configurazioni contiene dati che devono essere nascosti agli utenti normali, ma necessari per la preparazione dei sistemi. Questi sono le password degli utenti locali e degli account di servizio, le chiavi dei certificati, vari API Tokens, ecc. Di solito vengono chiamati \"segreti\".<\/p>\n<p>Se fin dall'inizio non si definisce dove e come conservare questi segreti, a seconda della severit\u00e0 dei requisiti di sicurezza delle informazioni, sono probabili i seguenti metodi di archiviazione:<\/p>\n<ul>\n<li>direttamente nel codice di gestione della configurazione o nei 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>inoltre, i segreti possono essere trasmessi tramite \"gestione manuale\". Ad esempio, vengono collocati in luoghi concordati e poi utilizzati dai sistemi di gestione della configurazione;<\/li>\n<li>diverse combinazioni di quanto sopra descritto.<\/li>\n<\/ul>\n<p>\nOgni metodo ha i suoi svantaggi. Il principale di essi \u00e8 l'assenza di politiche di accesso ai segreti: \u00e8 impossibile o difficile definire chi pu\u00f2 utilizzare determinati segreti. Un'altra svantaggio \u00e8 l'assenza di audit dell'accesso e di un ciclo di vita completo. Come sostituire rapidamente, ad esempio, una chiave pubblica che \u00e8 scritta nel codice e in vari sistemi correlati?<\/p>\n<p>Abbiamo utilizzato un deposito centralizzato per i segreti, HashiCorp Vault. Questo ci ha permesso di: <\/p>\n<ul>\n<li>custodire i segreti in sicurezza. Sono crittografati, e anche se qualcuno ottiene accesso al database del deposito Vault (ad esempio, recuperandolo da un backup), non sar\u00e0 in grado di leggere i segreti ivi custoditi; <\/li>\n<li>organizzare politiche di accesso ai segreti. Solo i segreti \"dedicati\" sono accessibili a utenti e applicazioni;<\/li>\n<li>effettuare audit dell'accesso ai segreti. Qualsiasi azione con i segreti viene registrata nel registro audit di Vault;<\/li>\n<li>organizzare un \"ciclo di vita\" completo per la gestione dei segreti. \u00c8 possibile crearli, revocarli, impostare la durata, ecc.<\/li>\n<li>integrarsi facilmente con altri sistemi che necessitano di accesso ai segreti;<\/li>\n<li>e inoltre applicare crittografia end-to-end, password temporanee per OS e DB, certificati di centri autorizzati, ecc. <\/li>\n<\/ul>\n<p>\nOra passiamo al sistema centrale di autenticazione e autorizzazione. Si potrebbe fare a meno di esso, ma gestire gli utenti in molti sistemi correlati non \u00e8 affatto semplice. Abbiamo configurato l'autenticazione e l'autorizzazione tramite il servizio LDAP. Altrimenti, in Vault si dovrebbe continuamente emettere e tenere traccia dei token di autenticazione per gli utenti. E la rimozione e l'aggiunta di utenti si trasformerebbero in una questione del tipo \"ho creato\/rimosso questo ID ovunque?\" <\/p>\n<p>Aggiungiamo un ulteriore livello al nostro sistema: gestione dei segreti e autenticazione\/autorization centrale:<\/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. In questo caso si tratta di una combinazione tra Ansible e Red Hat Ansible AWX. <\/p>\n<p>Al posto di Ansible possono esserci Chef, Puppet, SaltStack. Abbiamo scelto Ansible per diversi motivi. <\/p>\n<ul>\n<li>In primo luogo, \u00e8 la versatilit\u00e0. Il set di moduli pronti per la gestione <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\">\u00e8 impressionante<\/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 sull'hardware gestito, dimostrare che non interferiscono con il carico di lavoro e confermare l'assenza di \"backdoor\". <\/li>\n<li>In terzo luogo, Ansible ha una bassa barriera di ingresso. Un ingegnere competente pu\u00f2 scrivere un playbook funzionante letteralmente nel primo giorno di utilizzo del prodotto.<\/li>\n<\/ul>\n<p>\nMa Ansible da solo in un ambiente industriale non era sufficiente per noi. Altrimenti, ci sarebbero stati molti problemi con la limitazione degli accessi e l'audit delle azioni degli amministratori. Come delimitare l'accesso? Era necessario che ogni divisione gestisse (leggi: eseguisse un Ansible playbook) il proprio insieme di server. Come consentire l'esecuzione di specifici Ansible playbook solo a determinati dipendenti? O come monitorare chi ha eseguito il playbook, senza dover creare molti account locali sui server e sull'hardware gestito da Ansible?<\/p>\n<p>La maggior parte di tali domande \u00e8 risolta da Red Hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ansible.com\/products\/tower\">Ansible Tower<\/a><\/noindex>, o dal suo progetto open-source upstream <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible\/awx\">Ansible AWX<\/a><\/noindex>. Ecco perch\u00e9 lo abbiamo preferito per il cliente. <\/p>\n<p>Un'ulteriore caratteristica del nostro sistema CMS. Gli Ansible playbook devono essere memorizzati nei sistemi di gestione del codice sorgente. Nel nostro caso si tratta di <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/\">GitLab CE<\/a><\/noindex>.<\/p>\n<p>Dunque, le configurazioni vengono gestite dalla combinazione Ansible\/Ansible AWX\/GitLab (vedi Fig. 3). Naturalmente, AWX\/GitLab sono integrati con un sistema unico di autenticazione, mentre gli Ansible playbook sono con HashiCorp Vault. Le configurazioni entrano nell'ambiente di produzione solo attraverso Ansible AWX, nel quale sono definite tutte le \"regole del gioco\": chi e cosa pu\u00f2 configurare, da dove prelevare il codice di gestione delle configurazioni per il CMS e cos\u00ec via.<\/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>Fig. 3. Gestione delle configurazioni.<\/i><\/p>\n<h1>Gestione dei test<\/h1>\n<p>\nLa nostra configurazione \u00e8 rappresentata sotto forma di codice. Pertanto, siamo costretti a rispettare le stesse regole degli sviluppatori software. Era necessario organizzare i processi di sviluppo, test continuo, consegna e applicazione del codice di configurazione sui server di produzione.<\/p>\n<p>Se non si fa subito, i ruoli scritti per la configurazione smetterebbero di supportare e modificare, oppure smetterebbero di essere avviati in produzione. La soluzione a questo problema \u00e8 nota e si \u00e8 rivelata efficace 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 nel codice di gestione delle configurazioni arrivano nell'ambiente di produzione solo dopo il superamento con successo di tutti i test e della 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 il test continuo abbiamo utilizzato lo strumento 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 ci sono modifiche nel codice di gestione delle configurazioni, GitLab CI\/CD invoca Molecule: <\/p>\n<ul>\n<li>essa verifica la sintassi del codice, <\/li>\n<li>avvia un contenitore Docker, <\/li>\n<li>applica il codice modificato al 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 di ruolo ansible, si veda Fig. 4).<\/li>\n<\/ul>\n<p>\nLe configurazioni nell'ambiente di produzione sono state fornite tramite Ansible AWX. Gli ingegneri responsabili della gestione delle operazioni applicavano modifiche alle configurazioni attraverso modelli predefiniti. AWX richiedeva automaticamente ogni volta l'ultima versione del codice dal ramo master di GitLab. In questo modo escludevamo l'uso di codice non verificato o obsoleto nell'ambiente di produzione. Naturalmente, il codice arrivava nel 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 anche un problema legato all'operativit\u00e0 dei sistemi di produzione. Nella vita reale \u00e8 molto difficile apportare modifiche alla configurazione solo attraverso il codice CMS. Ci sono situazioni straordinarie in cui un ingegnere deve modificare la configurazione 'qui e ora', senza aspettare la modifica del codice, il testing, l'approvazione, ecc.<\/p>\n<p>Di conseguenza, a causa delle modifiche manuali, sorgono discrepanze nella configurazione su attrezzature simili (ad esempio, nei nodi di un cluster HA la configurazione delle impostazioni sysctl \u00e8 diversa). 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 nella configurazione. Abbiamo scelto l'opzione pi\u00f9 semplice: eseguire il codice di configurazione del CMS in modalit\u00e0 \"dry run\", ovvero senza applicare modifiche, ma notificando tutte le discrepanze tra la configurazione pianificata e quella reale. Abbiamo implementato questo attraverso esecuzioni periodiche di tutti i playbook Ansible con l'opzione \"--check\" sui server di produzione. Come sempre, Ansible AWX \u00e8 responsabile per l'esecuzione e l'aggiornamento 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 sulle discrepanze delle configurazioni 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 negli ambienti di produzione e il CMS \u00e8 sempre aggiornato e sincronizzato. Questo ci libera da spiacevoli \"sorprese\" quando il codice CMS viene applicato sui server di produzione.<\/p>\n<p>Ora abbiamo un importante livello di testing, 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 dei test.<\/i><\/p>\n<p>Difficile? Non lo nego. Ma tale insieme di gestione delle configurazioni \u00e8 diventato una risposta esaustiva a molte domande relative all'automazione della configurazione dei server. Ora il rivenditore ha sempre una configurazione rigorosamente definita per i server standard. A differenza di un ingegnere, il CMS non dimenticher\u00e0 di aggiungere le impostazioni necessarie, creare utenti e completare decine o centinaia di configurazioni richieste.<\/p>\n<p>Nelle impostazioni dei server e degli ambienti oggi non esistono pi\u00f9 \"conoscenze segrete\". Tutte le necessarie peculiarit\u00e0 sono riflesse nei playbook. Niente pi\u00f9 creativit\u00e0 e istruzioni vaghe: \"<i>installa come un normale Oracle, ma bisogna aggiungere un paio di impostazioni sysctl e creare gli utenti con il giusto UID. Chiedi ai ragazzi dell'esercizio, lo sanno\"<\/i>\u00bb. <\/p>\n<p>La possibilit\u00e0 di rilevare discrepanze nelle configurazioni e di correggerle in anticipo d\u00e0 tranquillit\u00e0. Senza un sistema di gestione delle configurazioni, tutto ci\u00f2 di solito appare in modo diverso. I problemi si accumulano fino a quando un giorno \"scoppiano\" in produzione. Poi si svolge un'analisi, si verificano e si correggono le configurazioni. E il ciclo si ripete di nuovo. <\/p>\n<p>E naturalmente, abbiamo accelerato l'avvio dei server in produzione da diversi giorni a poche ore.<\/p>\n<p>Ma nella notte di Capodanno, quando i bambini aprivano felicemente i regali e gli adulti esprimevano desideri al suono della mezzanotte, i nostri ingegneri hanno migrato il sistema SAP su nuovi server. Anche Babbo Natale direbbe che i migliori miracoli sono ben pianificati. <\/p>\n<p>P.S. Il nostro team si trova spesso di fronte alla richiesta dei clienti di risolvere in modo semplice il problema della gestione delle configurazioni. Idealmente, come per magia \u2014 con un solo strumento. Ma nella vita tutto \u00e8 pi\u00f9 complicato (s\u00ec, di nuovo non hanno fornito proiettili d'argento): dobbiamo creare un intero processo utilizzando strumenti comodi per il team del cliente.<\/p>\n<p><i>Autore: Sergey Artemov, architetto del dipartimento <\/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> \u00abInfosistemi 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 5.0.1.1 - 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\/it\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\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\/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 miracoli con il Configuration Management | ProHoster","description":"Il conto alla rovescia per il Capodanno era iniziato. I bambini di tutto il paese avevano gi\u00e0 inviato lettere a Babbo Natale o avevano espresso i loro desideri, mentre il principale esecutore \u2014 uno dei grandi rivenditori \u2014 si preparava per il culmine delle vendite.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/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}]}}