web-dev-qa-db-fra.com

Comment enregistrer des modifications de serveur?

Nous avons donc probablement eu cette situation: vous avez débogué un problème, seulement pour réaliser qu'il a été causé par un changement de configuration que vous avez effectué il y a six mois et que vous ne vous souvenez plus pourquoi vous l'avez fait. Donc, vous l'annulez et résolvez le problème, et maintenant un autre problème revient. Oh ouais, maintenant je me souviens! Ensuite, vous le réparez correctement.

C'est parce que vous n'avez pas pris de notes appropriées, vous êtes imbécile! Mais qu'est-ce qu'un bon moyen de faire ça?

En ingénierie, nous avons des charges de logiciels destinées à nous aider à détecter et à suivre les changements. Contrôle source, Avis de code, etc. Chaque changement est suivi, chaque changement nécessite un commentaire sur ce qu'il est. Et les départements d'ingénierie typiques nécessitent de bons commentaires de manière à ce que, dans six mois, lorsque vous déterminez pourquoi vous avez cassé, vous pouvez utiliser une fonctionnalité "blâme" historique ou des constructions de recherche binaire pour identifier le problème. Ces outils sont des outils de communication très efficaces et des archives historiques.

Mais dans Serverland, nous avons 500 services différents, tous de différentes manières de les configurer. Et ils n'ont pas toujours de format de texte (envisagez de définir des autorisations sur un dossier ou de modifier l'emplacement du fichier) bien qu'ils puissent avoir une représentation textuelle.

Dans notre environnement, nous enregistrons les fichiers de configuration que nous pouvons en perforce, mais il y en a très peu de ceux-ci. Je ne peux pas exactement vérifier dans l'Active Directory dB..agrément peut-être une décharge qui pourrait être diff'd ...

Dans le passé, j'ai essayé de garder un changement manuel Connexion dans notre wiki, mais il est très difficile de maintenir la discipline pour le faire (je sais, pas une bonne excuse, mais c'est vraiment difficile).

Ma question: Quelles stratégies et outils utilisez-vous pour faire face à ce problème de suivi des modifications de la configuration de vos serveurs?

-- Mettre à jour --

Remarque: Je ne cherche pas des outils de prise de billets partagés (je connais bien OneNote, etc.) tant que des outils automatisés destinés spécifiquement à aider à suivre les changements de serveur. Il n'y a pas d'outil complet pour suivre les modifications de configuration du serveur, mais peut-être y avoir des applications spécifiques telles que GPO.

Je suis aussi très intéressé par stratégies spécifiques que vous avez trouvé utile. "Nous partageons des notes dans SharePoint" est assez vague. Comment maintenez-vous la discipline? Quel format utilisez-vous pour suivre vos modifications? Comment organisez-vous vos données de changement? J'aimerais vraiment des exemples ainsi que des idées.

52
scobi

À Linux Terre, les gens poursuivent deux stratégies différentes:

  • Systèmes de contrainte de configuration , comme cfengine ou marionnette ou Chef . Ceux-ci sont similaires à Windows GPOS. Point étant que toute la configuration du serveur est intentionnellement documentée dans une seule place et que vous savez à quelle granularité (salle serveur, groupe, serveur spécifique), la stratégie est adoptée. Cela ne vous sauvera pas tout à fait de "Qu'est-ce que l'enfer était différent il y a six mois?" Mais cela vous permet de ne pas nucre un serveur config et de reconstruire à partir de zéro. Vous pouvez mettre les politiques CFengine et Puppet sous contrôle de révision pour répondre à la question.
  • Contrôle de révision/etc . En règle générale, les programmes Linux stockent leur configuration à un endroit,/etc. Les audactions commencent à écrire des scripts pour mettre/etc. dans le contrôle de la révision. Un tel programme que je connaisse est etckeeper :
Description: Stocker/etc en git, mercurial, bzr ou darcs [.____] Le programme de l'ETCKEEPER est un outil de stockage de/etc pour être stocké dans un git, mercurial, [.____] le référentiel BZR ou DARCS. Il accroche à APT pour commettre automatiquement des modifications [.____] faites sur/etc pendant/etc pendant les mises à niveau des packages. Il suit des métadonnées de fichier que la version 
 Les systèmes de contrôle ne supportent pas normalement, mais que est important pour/etc, tel [.____] comme les autorisations de/etc/ombre. Il est assez modulaire et configurable, tandis que [.____] également être simple à utiliser si vous comprenez les bases du travail avec la version 
 contrôler.
20
jldugger

L'un des problèmes de cette situation est que, vraiment, c'est un processus d'entreprise combiné/problème technologique. Et il est définitivement plus gros que de simplement suivre ce qui change un administrateur. Vous devez également garder un œil sur des changements inattendus et une bonne coordination entre les administrateurs ou les unités de sorte qu'un changement d'un contrôleur d'annonce ne casse pas une autorisation de base de données sur certains serveurs ministériels. C'est-à-dire que votre question est une canette géante des vers :)

Dans mon organisation, nous sommes environ une année dans le déploiement de processus et de systèmes pour résoudre ce problème. Pour le processus métier, nous avons formé une équipe de gestion des changements. Selon SOP Toutes les modifications apportées aux environnements de production sont coordonnées à travers elles. Ils compilent tous les changements, ainsi que la portée, les systèmes concernés, les services concernés, etc. appliquent une bonne documentation sur les changements, ainsi que Les deux plans de déploiement et de roulement. Les réunions hebdomadaires hebdomadaires (ouvertes) pour passer en revue les changements d'environnement à venir, puis envoyez des courriels détaillant tous ces changements. L'objectif final avec ce processus est de telle sorte que tout le monde connaisse tout sinon cela se passe. Cela aide à arrêter le problème de, par exemple, une sysadmin Installation d'un patch de noyau et de redémarrer un système qui prendra la base de données Timeclock.

Quant au côté technologique, je ne peux parler que des gars UNIX/Linux depuis que je ne traite pas de Windows. Ils ont déployé la marionnette, par des laboratoires réducteurs, pour la gestion de la configuration de tous ces systèmes. Il suffit simplement d'un système client/serveur où l'on définit une configuration de la machine sur le serveur, et le client tire ces chances de temps en temps (30 minutes par défaut). De plus, si des chances sont effectuées sur des fichiers gérés localement, ils sont également retournés à ce moment-là. Nous l'utilisons pour la gestion des services de course, des configurations de pare-feu, de l'autorisation de l'utilisateur, etc.

Je recommanderais également de regarder dans quelque chose comme le devoir. C'est un service client qui regarde la configuration du système et envoie des alertes sur les modifications. Cela nous rend les gens de sécurité les plus heureux. Il est largement utilisé pour suivre des changements malveillants ou non publiés.

10
Scott Pack

J'ai été à 4 ou 5 entreprises maintenant, je ne me souviens pas vraiment.

Nous avons tous eu ce problème. Aucun de nous n'a résolu 100%, mais à l'entreprise, nous avons maintenant ce que je pense, c'est la meilleure stratégie à ce jour.

SharePoint/Wiki/Evernote/Pins

  • SharePoint
    • gémit tout ce que vous voulez ... il a des fonctionnalités de liste très belles.
    • Listes d'adresses IP
    • inventaire
    • comptes de service et utilisation
    • changer les journaux de notification
  • Wiki
    • Mode d'emploi
    • listes de tâches à longue distance
  • Evernote
    • mon partenaire et j'utilise cela pour mettre tout ce que nous ne voulons pas dans wiki
    • plus de quelle est la nature technique
    • notes d'éraflure que nous avons tous les deux besoin de voir
    • comptabilité de la tâche pour la semaine
    • listes de tâches de l'entrepreneur
    • evernote Clipper facilite l'affichage des paramètres d'annonce/droits de tir
    • disponible partout
  • Épingles
    • Référentiel de mots de passe
4
Thomas Denton

Il y a probablement de meilleurs outils pour certains d'entre eux, mais c'est ce que nous utilisons:

  • Changements de configuration de la piste et mises à niveau/correctifs sur serveur dans un wiki privé
  • Gardez également HOWTOS et un enregistrement de problèmes/solutions dans le wiki
  • Utilisez SharePoint ou Google Docs pour conserver des copies autorisées des choses comme des listes IP statiques
  • utilisez Subversion pour suivre les modifications apportées aux fichiers de configuration
2
Brent

Pour Windows, consultez la série Microsofts System Center ou tout autre concurrent de la configuration et de la gestion des services pour cette plate-forme.

Les changements doivent être acheminés grâce à une routine de gestion de changement décente qui l'approuve et les enregistre en soi avant leur fin. Cela peut être manuel à 100% pour commencer. Avec certains des meilleurs outils intégrés que vous pouvez poser à l'outil de faire les modifications réelles et d'obtenir une déconnexion "automatique" à une base de données de configuration centrale - plutôt que d'aller des mains nues dans la console de serveur individuel, de creuser par les paramètres à la main pour Essayez de résoudre un problème de style cow-boy.

2
Oskar Duveborn

Vous devez absolument avoir un processus de gestion du changement en place, surtout s'il y a plusieurs personnes qui ont la capacité/l'accès à modifier le niveau système dans votre environnement. Cela fournit également une manière à la gestion de signer des changements potentiels, mais l'inconvénient induisait la latence dans le processus de changement si vous ne pouvez pas faire des changements à la volée.

Certaines méthodes de suivi des changements peuvent inclure la validation des événements de votre SEM (en supposant que vous disposez d'un gestionnaire d'événements de sécurité) ou d'outils tels que Nessus (avec beaucoup de travail peut auditer votre environnement pour trouver des changements).

2
David Yu

Ceci est une réponse plus localisée * Nix basée. Je n'ai trouvé aucun bon outil pour l'imiter sous Windows.

Il y a quelques façons de mettre en œuvre cela ... et de l'attraper quand vous oubliez.

Les systèmes de contrôle de révision telles que Subversion, Git, CVS ou RCS sont un bon moyen de suivre l'historique d'un fichier de configuration. Si vous ne souhaitez pas installer un système de contrôle de révision sur vos serveurs de production, stockez des répertoires de fichiers de configuration localement ou à distance à l'aide de quelque chose comme rsnapshot vous donnera la plupart des avantages d'une RCS, mais vous perdez la possibilité d'audit ou de laisser commettre des journaux (bien que cela puisse être travaillé avec des commentaires à l'intérieur des fichiers eux-mêmes).

Pour vous aider à vous rappeler de connecter les modifications, la déclaration automatisée des modifications de la configuration via une nuit, Cron'ed tripwire Run est un bon début. Après la construction de la base de données de TripWire de l'état actuel des fichiers, toute modification d'eux aboutira à un courrier électronique lors de la prochaine exécution. Vous continuerez à recevoir ce courrier jusqu'à ce que la base de données soit mise à jour, ce qui "réinitialisait" le trip-est.

2
Greg Work

Si vous recherchez la "solution d'entreprise" (c'est-à-dire que vous avez plus d'argent que Dieu et que vous souhaitez avoir un outil vraiment cool), l'outil que j'ai utilisé pour soutenir et fournir un travail sur site pour le fait-il comme l'une de ses caractéristiques multiples.

Aucune idée de ce que fait la tarification de base, mais avant que HP achète Opsware, il fut ~ 350 000 USD US (sans soutien et confiance à moi - vous vouliez un soutien lorsque j'ai commencé avec Opsware).

Plusieurs des clients que nous avons eu pendant que j'ai travaillé là-bas utilisé la configuration de l'application et les fonctionnalités d'instantané en conjonction avec tripwire .

Bien sûr, si vous n'avez pas de budget - c'est un mauvais choix ™ :)

Et, FWIW, l'annonce qui est apparue au sommet de cette page pour moi quand je rechargée c'était pour Spiceworks . A l'air puissant similaire à hpsa :)

1
warren

Nous avons créé quelque chose de Homegrown pour changer de suivi des journaux dans notre environnement; Ce n'est rien de super-compliqué, et ça marche assez bien.

  • Une politique d'auto-maintien de la police est configurée que tout changement que dans votre estimation soit écarté d'une configuration hors de la case ou pourrait potentiellement causer des problèmes, doit être documentée dans le système Changelog. [.____]
    • le côté opposé de cette "pièce" est si vous résolvez un problème, recherchez des entrées de changelog récentes ou connexes.
  • Connectez-vous au système et choisissez le composant serveur, service ou matériel que vous modifiez
    • les composants sont entrés auparavant dans le même système avec des informations "démographiques" de base (emplacement, fournisseur, numéro de série, service responsable)
  • Choisissez parmi une liste déroulante de catégories de base
    • Temps d'arrêt non plané
    • Corruption
    • Maintenance matérielle
    • Installation du logiciel
  • Mettre en détail de ce que vous avez fait, vu, observé
  • une copie est envoyée à la Partie responsable et stockée sous forme de fichiers XML indexés par une appliance de recherche.
  • Profit

Comme je l'ai dit, rien de fantaisie. Il utilise Perl CGI (a été écrit il y a un milliard d'années) et une appliance de recherche Google pour l'indexation.

Défirements:

  • Les groupes de services sont difficiles à utiliser, par exemple, vous venez d'ajouter le même correctif aux 25 contrôleurs de votre domaine; Nous n'avons pas de groupe "contrôleur de domaine", nous devons donc les sélectionner manuellement tous
  • N'intègre pas avec le matériel d'erreur du matériel, du logiciel ou du journal des événements pour aider au dépannage
  • endommagement, la saisie manuelle des données pour toutes les données "démographiques" comme je l'ai dit ci-dessus

Quoi qu'il en soit, si après tout ce que vous seriez intéressé par le code, faites-le moi savoir et je peux probablement le saisir à partager.

1
Guamaniac

J'utiliserais un système de suivi problématique tel que FlySpray (tout le fera, mais j'aime FlySpray pour des trucs non programmés). Avant que quiconque touche une configuration, l'amélioration/problème doit être enregistrée. Lorsque vous résolvez/implémentez-le, les modifications passent dans le billet.

Un wiki peut être agréable de documenter la configuration actuelle, mais il est facile de sortir de la date - et il semble prendre plus d'efforts pour mettre à jour l'OMI.

Vous n'allez pas trouver quelque chose automatisé pour le faire - bien que vous puissiez probablement la configurer afin que les modifications apportées à certains fichiers de configuration soient automatiquement envoyées par courrier électronique à la version suivante si vous le souhaitez.

Je pense que c'est juste une question de bonne politique, d'outils à faible barrière et de discipline.

1
Draemon

Si tout ce que vous voulez faire est piste changements et non gérer l'ensemble du processus (c.-à-d. Via Chef ou marionnette), juste rsync votre répertoire etc (partout où cela pourrait être) dans un repo git local.

for Host in alpha bravo charlie delta ...; do

    rsync -avz --exclude-from=exclusions -e ssh admin@$Host:/opt/local/etc/ ./$Host

done

Bien sûr, vous pouvez ajouter d'autres sources au besoin.

1
PartialOrder

Comme dit, c'est souvent un problème culturel - après tout, certains magasins de développement ne se soucient plus des commentaires (le code auto-documentant est un mot à la mode à la mode aujourd'hui!) Et certains utilisent un système de contrôle de version en tant que saint Graal d'enregistrements historiques. Évidemment, ce n'est pas parfait.

Donc, le seul vrai moyen de résoudre ce problème est de faire une solution culturelle. Assurez-vous que toutes les raisons pour lesquelles les modifications sont consignées dans un suivi de bogues (ou une base de connaissances, ou Wiki) et assurez-vous que toutes les modifications sont connectées dans un système de contrôle des modifications.

Nous avons des clients de service d'urgence, chaque changement qui arrive à leur système est enregistré et que chaque fois que nous nous connectons à leur système, nous devons la connecter. Pour certains d'entre eux, nous devons d'abord téléphoner pour la permission (et je suppose qu'ils se logèrent aussi!). chaque Le changement est enregistré et ce sera une infraction disciplinaire de modifier le système client sans l'enregistrer.

Cela semble onéreux, mais ce n'est pas. Vous entrez rapidement dans l'habitude d'ajouter vous-même au journal d'accès et de changer de journal - ce n'est pas pire que de devoir écrire un commentaire lors de la vérification d'un changement de code.

Je recommande un bugtracker en tant que journal de la raison de la commande de changement, car ils sont généralement faciles à mettre à jour (j'utilise MANIS).

1
gbjbaanb