{"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\/fr\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","title":{"rendered":"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>L'ann\u00e9e approchait de son terme, et les enfants de tout le pays avaient d\u00e9j\u00e0 envoy\u00e9 leurs lettres au P\u00e8re No\u00ebl ou formul\u00e9 leurs souhaits de cadeaux. Le principal acteur charg\u00e9 de les r\u00e9aliser, l'un des grands d\u00e9taillants, se pr\u00e9parait au sommet des ventes. En d\u00e9cembre, la charge de travail de son centre de donn\u00e9es augmentait plusieurs fois. Par cons\u00e9quent, l'entreprise a d\u00e9cid\u00e9 de moderniser le data center et de mettre en service plusieurs dizaines de nouveaux serveurs pour remplacer les \u00e9quipements dont la dur\u00e9e de vie touchait \u00e0 sa fin. C'est ici que l'introduction se termine, sur fond de flocons de neige, pour c\u00e9der la place \u00e0 un v\u00e9ritable thriller. <\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/ebc2128d73e9a0e7f1e383b4b04ee492.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLes \u00e9quipements sont arriv\u00e9s sur le site plusieurs mois avant le pic des ventes. Le service d'exploitation sait bien s\u00fbr comment et quoi configurer sur les serveurs pour les mettre en environnement de production. Mais nous devions automatiser cela et \u00e9viter le facteur humain. De plus, les serveurs rempla\u00e7aient, avant la migration, un ensemble de syst\u00e8mes SAP, essentiels pour l'entreprise. <\/p>\n<p>Le lancement des nouveaux serveurs \u00e9tait strictement li\u00e9 \u00e0 une date butoir. Et le d\u00e9placer aurait mis en p\u00e9ril la livraison d'un milliard de cadeaux et la migration des syst\u00e8mes. M\u00eame l'\u00e9quipe compos\u00e9e de Santa Claus et du P\u00e8re No\u00ebl n'aurais pas pu modifier la date \u2014 la migration du syst\u00e8me SAP pour la gestion de l'entrep\u00f4t ne peut se faire qu'une fois par an. Du 31 d\u00e9cembre au 1er janvier, d'immenses entrep\u00f4ts du d\u00e9taillant, d'une superficie totale \u00e9quivalente \u00e0 20 terrains de football, arr\u00eatent leur activit\u00e9 pendant 15 heures. Et c'est la seule fen\u00eatre de temps pour le transfert du syst\u00e8me. Nous ne pouvions pas nous permettre d'erreur dans le lancement des serveurs. <\/p>\n<p>Je pr\u00e9cise d'embl\u00e9e : mon r\u00e9cit refl\u00e8te les outils et le processus de gestion de configurations utilis\u00e9s par notre \u00e9quipe.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLe syst\u00e8me de gestion des configurations se compose de plusieurs niveaux. Le composant cl\u00e9 est le syst\u00e8me CMS. Une absence d'un des niveaux en fonctionnement industriel entra\u00eenerait in\u00e9vitablement des r\u00e9sultats d\u00e9sagr\u00e9ables.<\/p>\n<h1>Gestion de l'installation du syst\u00e8me d'exploitation<\/h1>\n<p>\nLe premier niveau est le syst\u00e8me de gestion de l'installation des syst\u00e8mes d'exploitation sur des serveurs physiques et virtuels. Il cr\u00e9e des configurations de base du syst\u00e8me d'exploitation, \u00e9liminant ainsi le facteur humain. <\/p>\n<p>Avec ce syst\u00e8me, nous obtenions des exemplaires standards et adapt\u00e9s \u00e0 une automatisation ult\u00e9rieure des serveurs avec un syst\u00e8me d'exploitation. Lors de la \u00ab dispersion \u00bb, ils recevaient un ensemble minimal d'utilisateurs locaux et de cl\u00e9s SSH publiques, ainsi qu'une configuration coh\u00e9rente du syst\u00e8me d'exploitation. Nous pouvions g\u00e9rer les serveurs de mani\u00e8re garantie via le CMS et \u00e9tions s\u00fbrs qu'il n'y avait pas de surprises \u00ab en bas \u00bb, au niveau du syst\u00e8me d'exploitation. <\/p>\n<p>La t\u00e2che \u00ab maximale \u00bb pour le syst\u00e8me de gestion des installations est de configurer automatiquement les serveurs depuis le niveau BIOS\/Firmware jusqu'au syst\u00e8me d'exploitation. Beaucoup de choses ici d\u00e9pendent du mat\u00e9riel et des t\u00e2ches de configuration. Pour du mat\u00e9riel h\u00e9t\u00e9rog\u00e8ne, on peut envisager <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dmtf.org\/standards\/redfish\">REDFISH API<\/a><\/noindex>. Si tout le mat\u00e9riel provient d'un seul fournisseur, il est souvent plus pratique d'utiliser des outils de gestion pr\u00eats \u00e0 l'emploi (par exemple, HP ILO Amplifier, DELL OpenManage, etc.).<\/p>\n<p>Pour l'installation du syst\u00e8me d'exploitation sur des serveurs physiques, nous avons utilis\u00e9 le bien connu Cobbler, qui d\u00e9finit un ensemble de profils d'installation convenus avec le service d'exploitation. Lors de l'ajout d'un nouveau serveur \u00e0 l'infrastructure, l'ing\u00e9nieur associ\u00e2t l'adresse MAC du serveur au profil requis dans Cobbler. Lors du premier d\u00e9marrage en r\u00e9seau, le serveur recevait une adresse temporaire et un nouveau syst\u00e8me d'exploitation. Ensuite, il \u00e9tait transf\u00e9r\u00e9 dans le VLAN\/IP cible et on continuait \u00e0 travailler l\u00e0-bas. Oui, le changement de VLAN prend du temps et n\u00e9cessite une coordination, mais cela offre une protection suppl\u00e9mentaire contre une installation accidentelle dans l'environnement de production.<\/p>\n<p>Nous cr\u00e9ions des serveurs virtuels \u00e0 partir de mod\u00e8les pr\u00e9par\u00e9s avec HashiCorp Packer. La raison \u00e9tait la m\u00eame : pr\u00e9venir d'\u00e9ventuelles erreurs humaines lors de l'installation du syst\u00e8me d'exploitation. Cependant, contrairement aux serveurs physiques, Packer permet de ne pas utiliser PXE, le d\u00e9marrage en r\u00e9seau et le changement de VLAN. Cela a simplifi\u00e9 et facilit\u00e9 la cr\u00e9ation de serveurs virtuels. <\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/8cde23a4ad2ba1573bc88ec174bfe6b5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1. Gestion de l'installation des syst\u00e8mes d'exploitation.<\/i><\/p>\n<h1>Gestion des secrets<\/h1>\n<p>\nTout syst\u00e8me de gestion de configuration contient des donn\u00e9es qui doivent \u00eatre cach\u00e9es des utilisateurs ordinaires, mais n\u00e9cessaires \u00e0 la pr\u00e9paration des syst\u00e8mes. Il s'agit de mots de passe d'utilisateurs locaux et de comptes de service, de cl\u00e9s de certificats, de tous types de tokens API, etc. On les appelle g\u00e9n\u00e9ralement des \u00ab secrets \u00bb.<\/p>\n<p>Si l'on ne d\u00e9termine pas d\u00e8s le d\u00e9part o\u00f9 et comment stocker ces secrets, en fonction de la rigueur des exigences de s\u00e9curit\u00e9 de l'information, les moyens de stockage probables sont :<\/p>\n<ul>\n<li>directement dans le code de gestion de la configuration ou dans les fichiers du r\u00e9f\u00e9rentiel;<\/li>\n<li>dans des outils sp\u00e9cialis\u00e9s de gestion de configuration (par exemple, Ansible Vault);<\/li>\n<li>dans des syst\u00e8mes CI\/CD (Jenkins\/TeamCity\/GitLab\/etc.) ou dans des syst\u00e8mes de gestion de configuration (Ansible Tower\/Ansible AWX);<\/li>\n<li>les secrets peuvent \u00e9galement \u00eatre transf\u00e9r\u00e9s par \u00ab gestion manuelle \u00bb. Par exemple, ils sont publi\u00e9s \u00e0 un endroit convenu, puis utilis\u00e9s par les syst\u00e8mes de gestion de configuration;<\/li>\n<li>diff\u00e9rentes combinaisons de ce qui pr\u00e9c\u00e8de.<\/li>\n<\/ul>\n<p>\nChaque m\u00e9thode a ses inconv\u00e9nients. Le principal est l'absence de politiques d'acc\u00e8s aux secrets : il est impossible ou difficile de d\u00e9terminer qui peut utiliser tel ou tel secret. Un autre inconv\u00e9nient est le manque d'audit d'acc\u00e8s et d'un cycle de vie complet. Comment remplacer rapidement, par exemple, une cl\u00e9 publique qui est inscrite dans le code et dans un certain nombre de syst\u00e8mes associ\u00e9s ?<\/p>\n<p>Nous avons utilis\u00e9 un stockage centralis\u00e9 de secrets HashiCorp Vault. Cela nous a permis : <\/p>\n<ul>\n<li>de stocker les secrets en toute s\u00e9curit\u00e9. Ils sont chiffr\u00e9s, et m\u00eame si quelqu'un acc\u00e8de \u00e0 la base de donn\u00e9es du stockage Vault (par exemple, en la restaurant \u00e0 partir d'une sauvegarde), il ne pourra pas lire les secrets y \u00e9tant stock\u00e9s; <\/li>\n<li>d'organiser des politiques d'acc\u00e8s aux secrets. Les utilisateurs et les applications n'ont acc\u00e8s qu'aux secrets qui leur sont \u00ab attribu\u00e9s \u00bb;<\/li>\n<li>de r\u00e9aliser un audit d'acc\u00e8s aux secrets. Toute action sur les secrets est enregistr\u00e9e dans le journal d'audit de Vault;<\/li>\n<li>d'organiser un \u00ab cycle de vie \u00bb complet des secrets. Ils peuvent \u00eatre cr\u00e9\u00e9s, r\u00e9voqu\u00e9s, avoir une dur\u00e9e de vie d\u00e9finie, etc.<\/li>\n<li>de s'int\u00e9grer facilement \u00e0 d'autres syst\u00e8mes n\u00e9cessitant un acc\u00e8s aux secrets;<\/li>\n<li>et aussi d'appliquer le chiffrement de bout en bout, des mots de passe \u00e0 usage unique pour les syst\u00e8mes d'exploitation et les bases de donn\u00e9es, des certificats de centres autoris\u00e9s, etc. <\/li>\n<\/ul>\n<p>\nNous allons maintenant passer au syst\u00e8me central d'authentification et d'autorisation. On aurait pu s'en passer, mais l'administration des utilisateurs dans de nombreux syst\u00e8mes associ\u00e9s est trop peu triviale. Nous avons configur\u00e9 l'authentification et l'autorisation via le service LDAP. Sinon, dans Vault, il aurait fallu \u00e9mettre et suivre en permanence des jetons d'authentification pour les utilisateurs. La suppression et l'ajout d'utilisateurs seraient devenus une qu\u00eate du genre \u00ab ai-je cr\u00e9\u00e9\/supprim\u00e9 ce compte partout ? \u00bb <\/p>\n<p>Ajoutons un autre niveau \u00e0 notre syst\u00e8me : gestion des secrets et authentification\/autorisation centralis\u00e9es :<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/993e863417898c39940fe0bc9ee55b1e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Gestion des secrets.<\/i><\/p>\n<h1>Gestion des configurations<\/h1>\n<p>\nNous avons atteint le c\u0153ur \u2014 le syst\u00e8me CMS. Dans notre cas, c'est un ensemble Ansible et Red Hat Ansible AWX. <\/p>\n<p>Chef, Puppet et SaltStack peuvent \u00e9galement remplacer Ansible. Nous avons choisi Ansible pour plusieurs crit\u00e8res. <\/p>\n<ul>\n<li>Tout d'abord, sa polyvalence. L'ensemble des modules pr\u00eats \u00e0 l'emploi pour la gestion <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\">impressionne<\/a><\/noindex>. Et si cela ne suffit pas, on peut chercher sur GitHub et Galaxy. <\/li>\n<li>Ensuite, il n'est pas n\u00e9cessaire d'installer et de maintenir des agents sur le mat\u00e9riel g\u00e9r\u00e9, de prouver qu'ils ne perturbent pas la charge et de garantir l'absence de \"backdoors\". <\/li>\n<li>Troisi\u00e8mement, Ansible a une faible barri\u00e8re \u00e0 l'entr\u00e9e. Un ing\u00e9nieur comp\u00e9tent peut r\u00e9diger un playbook fonctionnel d\u00e8s son premier jour d'utilisation du produit.<\/li>\n<\/ul>\n<p>\nMais Ansible seul n'\u00e9tait pas suffisant dans un environnement industriel. Sinon, nous aurions rencontr\u00e9 de nombreux probl\u00e8mes avec les restrictions d'acc\u00e8s et l'audit des actions des administrateurs. Comment restreindre l'acc\u00e8s ? Il fallait que chaque d\u00e9partement g\u00e8re (en d'autres termes \u2014 ex\u00e9cute des playbooks Ansible) son propre ensemble de serveurs. Comment autoriser l'ex\u00e9cution de playbooks Ansible sp\u00e9cifiques uniquement \u00e0 certains employ\u00e9s ? Ou comment suivre qui a ex\u00e9cut\u00e9 un playbook sans cr\u00e9er de multiples comptes utilisateurs locaux sur les serveurs et le mat\u00e9riel g\u00e9r\u00e9 par Ansible ?<\/p>\n<p>Une grande partie de ces questions est r\u00e9solue par Red Hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ansible.com\/products\/tower\">Ansible Tower<\/a><\/noindex>, ou son projet en amont open-source <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible\/awx\">Ansible AWX<\/a><\/noindex>. C'est pourquoi nous l'avons pr\u00e9f\u00e9r\u00e9 pour notre client. <\/p>\n<p>Et un autre d\u00e9tail sur le portrait de notre syst\u00e8me CMS. Le playbook Ansible doit \u00eatre stock\u00e9 dans des syst\u00e8mes de gestion de r\u00e9f\u00e9rentiels de code. Chez nous, c'est <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/\">GitLab CE<\/a><\/noindex>.<\/p>\n<p>Ainsi, la gestion des configurations est assur\u00e9e par l'ensemble Ansible\/Ansible AWX\/GitLab (voir Fig. 3). Bien s\u00fbr, AWX\/GitLab sont int\u00e9gr\u00e9s \u00e0 un syst\u00e8me d'authentification unique, et le playbook Ansible \u2014 \u00e0 HashiCorp Vault. Les configurations ne passent en environnement de production que par Ansible AWX, o\u00f9 toutes les \"r\u00e8gles du jeu\" sont d\u00e9finies : qui peut configurer quoi, d'o\u00f9 r\u00e9cup\u00e9rer le code de gestion des configurations pour le CMS, etc.<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/f4f5b3904a2145d7283cd52f921bca89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 3. Gestion des configurations.<\/i><\/p>\n<h1>Gestion des tests<\/h1>\n<p>\nNotre configuration est pr\u00e9sent\u00e9e sous forme de code. Nous devons donc suivre les m\u00eames r\u00e8gles que les d\u00e9veloppeurs de logiciels. Nous devions organiser les processus de d\u00e9veloppement, de test continu, de livraison et d'application du code de configuration sur les serveurs de production.<\/p>\n<p>Si cela n'est pas fait imm\u00e9diatement, les r\u00f4les \u00e9crits pour la configuration cesseraient de supporter et de modifier, ou arr\u00eateraient de se lancer en production. Le rem\u00e8de \u00e0 cette douleur est connu, et il a fait ses preuves dans ce projet :<\/p>\n<ul>\n<li>chaque r\u00f4le est couvert par des tests modulaires ;<\/li>\n<li>les tests sont ex\u00e9cut\u00e9s automatiquement lors de tout changement dans le code qui contr\u00f4le les configurations ;<\/li>\n<li>les modifications dans le code de gestion des configurations ne sont mises en production qu'apr\u00e8s avoir r\u00e9ussi tous les tests et la r\u00e9vision du code.<\/li>\n<\/ul>\n<p>\nLe d\u00e9veloppement du code et la gestion des configurations sont devenus plus sereins et pr\u00e9visibles. Pour organiser des tests continus, nous avons utilis\u00e9 l'outil GitLab CI\/CD, et comme cadre pour organiser les tests, nous avons pris <noindex><a rel=\"nofollow\" href=\"https:\/\/molecule.readthedocs.io\/en\/latest\/\">Ansible Molecule<\/a><\/noindex>.<\/p>\n<p>\u00c0 chaque modification du code de gestion des configurations, GitLab CI\/CD appelle Molecule : <\/p>\n<ul>\n<li>cela v\u00e9rifie la syntaxe du code, <\/li>\n<li>l\u00e8ve un conteneur Docker, <\/li>\n<li>applique le code modifi\u00e9 dans le conteneur cr\u00e9\u00e9, <\/li>\n<li>v\u00e9rifie le r\u00f4le pour l'idempotence et ex\u00e9cute les tests pour ce code (la granularit\u00e9 ici est au niveau de r\u00f4le ansible, voir Fig. 4).<\/li>\n<\/ul>\n<p>\nNous livrions les configurations dans l'environnement de production \u00e0 l'aide d'Ansible AWX. Les ing\u00e9nieurs responsables de l'exploitation appliquaient les modifications de configuration \u00e0 travers des mod\u00e8les pr\u00e9d\u00e9finis. AWX demandait automatiquement \u00e0 chaque application la derni\u00e8re version du code de la branche master GitLab. Ainsi, nous excluions l'utilisation de code non v\u00e9rifi\u00e9 ou obsol\u00e8te dans l'environnement de production. Naturellement, le code n'atteignait la branche master qu'apr\u00e8s tests, relecture et approbation.<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/aa8f6205f05792a6a1120ad7360ab102.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 4. Test automatique des r\u00f4les dans GitLab CI\/CD.<\/i><\/p>\n<p>Il reste un autre probl\u00e8me li\u00e9 \u00e0 l'exploitation des syst\u00e8mes de production. Dans la vie r\u00e9elle, il est tr\u00e8s difficile d'apporter des modifications \u00e0 la configuration uniquement via le code CMS. Des situations impr\u00e9vues surviennent o\u00f9 un ing\u00e9nieur doit modifier la configuration \u00ab ici et maintenant \u00bb, sans attendre la modification du code, les tests, l'approbation, etc.<\/p>\n<p>En cons\u00e9quence, en raison des modifications manuelles, il y a des divergences dans la configuration sur un mat\u00e9riel homog\u00e8ne (par exemple, sur des n\u0153uds d'un cluster HA, la configuration des param\u00e8tres sysctl est diff\u00e9rente). Ou la configuration r\u00e9elle sur le mat\u00e9riel diff\u00e8re de celle qui est sp\u00e9cifi\u00e9e dans le code CMS. <\/p>\n<p>C'est pourquoi, en plus des tests continus, nous v\u00e9rifions les environnements de production pour d\u00e9tecter d'\u00e9ventuelles divergences de configuration. Nous avons choisi l'option la plus simple : ex\u00e9cuter le code de configuration CMS en mode \u00ab dry run \u00bb, c'est-\u00e0-dire sans appliquer de modifications, mais en notifiant toutes les divergences entre la configuration planifi\u00e9e et la configuration r\u00e9elle. Nous avons mis cela en \u0153uvre gr\u00e2ce \u00e0 des ex\u00e9cutions p\u00e9riodiques de tous les playbooks Ansible avec l'option \u00ab --check \u00bb sur les serveurs de production. Comme toujours, Ansible AWX assure l'ex\u00e9cution et l'actualit\u00e9 des playbooks (voir Fig. 5) :<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/108a5a473f60ab76ee15f9334ebcbab7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5. V\u00e9rifications des divergences de configuration dans Ansible AWX.<\/i><\/p>\n<p>Apr\u00e8s les v\u00e9rifications, AWX envoie un rapport de divergences aux administrateurs. Ils examinent la configuration probl\u00e9matique, puis la corrigent via des playbooks ajust\u00e9s. Ainsi, nous maintenons la configuration dans l'environnement de production et le CMS est toujours \u00e0 jour et synchronis\u00e9. Cela \u00e9limine les \u00ab surprises \u00bb d\u00e9sagr\u00e9ables o\u00f9 le code du CMS est appliqu\u00e9 sur des serveurs de \u00ab production \u00bb.<\/p>\n<p>Nous avons maintenant un niveau de test important, compos\u00e9 d'Ansible AWX\/GitLab\/Molecule (Fig. 6).<\/p>\n<p><img decoding=\"async\" alt=\"Thriller sur la configuration des serveurs sans miracles avec la gestion de configuration\" src=\"\/wp-content\/uploads\/2020\/07\/f487f5603e90b0c753fb9decf9018b11.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Gestion des tests.<\/i><\/p>\n<p>C'est compliqu\u00e9 ? Je ne conteste pas. Mais ce syst\u00e8me de gestion des configurations est une r\u00e9ponse exhaustive \u00e0 de nombreuses questions li\u00e9es \u00e0 l'automatisation de la configuration des serveurs. D\u00e9sormais, le d\u00e9taillant a toujours une configuration strictement d\u00e9finie pour ses serveurs standard. Le CMS, contrairement \u00e0 un ing\u00e9nieur, n'oubliera pas d'ajouter les param\u00e8tres n\u00e9cessaires, de cr\u00e9er des utilisateurs et d'effectuer des dizaines ou des centaines de configurations requises.<\/p>\n<p>Dans les configurations des serveurs et des environnements, il n'y a plus de \u00ab savoirs secrets \u00bb. Toutes les particularit\u00e9s n\u00e9cessaires sont refl\u00e9t\u00e9es dans les playbooks. Plus de cr\u00e9ativit\u00e9 ou d'instructions vagues : \u00ab<i>installe comme un Oracle normal, mais il faut renseigner quelques param\u00e8tres sysctl, et ajouter les utilisateurs avec le bon UID. Demande aux gars de l'exploitation, ils savent.<\/i>\u00bb. <\/p>\n<p>La capacit\u00e9 \u00e0 d\u00e9tecter les divergences de configurations et \u00e0 les corriger \u00e0 l'avance apporte une tranquillit\u00e9 d'esprit. Sans un syst\u00e8me de gestion de configurations, c'est g\u00e9n\u00e9ralement diff\u00e9rent. Les probl\u00e8mes s'accumulent jusqu'\u00e0 ce qu'un jour, ils \u00ab explosent \u00bb en production. Ensuite, une analyse est effectu\u00e9e, les configurations sont v\u00e9rifi\u00e9es et corrig\u00e9es. Et le cycle se r\u00e9p\u00e8te. <\/p>\n<p>Et bien s\u00fbr, nous avons r\u00e9duit le temps de mise en service des serveurs de plusieurs jours \u00e0 quelques heures.<\/p>\n<p>Mais dans la nuit de la Saint-Sylvestre, quand les enfants d\u00e9ballaient joyeusement leurs cadeaux et que les adultes formulaient des v\u0153ux au son des cloches, nos ing\u00e9nieurs ont migr\u00e9 le syst\u00e8me SAP vers de nouveaux serveurs. M\u00eame le P\u00e8re No\u00ebl dirait que les meilleurs miracles sont bien pr\u00e9par\u00e9s. <\/p>\n<p>P.S. Notre \u00e9quipe est souvent confront\u00e9e \u00e0 des clients qui souhaitent r\u00e9soudre de mani\u00e8re aussi simple que possible la gestion des configurations. Id\u00e9alement, comme par magie \u2014 avec un seul outil. Mais dans la r\u00e9alit\u00e9, c'est plus compliqu\u00e9 (oui, encore une fois, les balles en argent n'ont pas \u00e9t\u00e9 livr\u00e9es) : il faut cr\u00e9er tout un processus \u00e0 l'aide des outils pratiques pour l'\u00e9quipe du client.<\/p>\n<p><i>Auteur : Sergue\u00ef Artemov, architecte de d\u00e9partement <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/portal.jet.su\/about\/company\/structure\/?set_filter_structure=Y&amp;structure_UF_DEPARTMENT=56656\"><i>Solutions DevOps<\/i><\/a><\/noindex><i> \u00abInfosyst\u00e8mes Jet\u00bb<\/i><br \/>\n<br \/>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Un thriller sur la configuration des serveurs sans magie avec la Gestion des Configurations | ProHoster","description":"L'ann\u00e9e touchait \u00e0 sa fin. Les enfants de tout le pays avaient d\u00e9j\u00e0 envoy\u00e9 des lettres au P\u00e8re No\u00ebl ou formul\u00e9 des souhaits de cadeaux, tandis que le principal ex\u00e9cutant \u2014 l'un des grands d\u00e9taillants \u2014 se pr\u00e9parait \u00e0 l'apoth\u00e9ose des ventes.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/90386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=90386"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/90386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/90387"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=90386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=90386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=90386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}