7
votes

Contrôle de la version d'un serveur Web Fichiers de configuration

entre moi et un architecte de réseau, nous gérons un groupe de serveurs Web (FreeBSD). Il est responsable de toutes les choses liées au serveur / réseau (IPS, pare-feu, utilisateurs / groupes, etc.) et je suis responsable de tous les éléments liés au Web (Apache, PHP, MySQL). Parfois, les responsabilités se chevauchent.

Cela se passe peu de fois que certaines modifications ont été apportées aux fichiers de configuration qui ont plus ou moins affecté au serveur et que nous n'avions pas été en mesure de comprendre lequel de nous a apporté les changements et pourquoi. < p> I - Être un développeur Web - pense que ce serait une bonne pratique pour mettre les fichiers sous contrôle de la version (nous utilisons actuellement Subversion), de sorte que chaque fois que nous changeons tout ce que nous devons commettre un commentaire les changements. Cela résoudra tous les problèmes avec qui me demandant qui a fait quoi et pourquoi.

Les fichiers de configuration particuliers que je pensais étaient:

  • Firewall Config
  • Apache config (avec extras)
  • PHP CONFIG (PHP.INI)
  • mySQL config (my.conf)

    Je sais déjà que le contrôle de la version idée des fichiers de configuration du serveur est basé sur Autre question posée ici . Mon seul inquiétude est de savoir comment le faire correctement sur le côté du serveur Web, car les fichiers sont dans différents endroits. Mettre l'ensemble / usr / local / etc sous la version Control semble inutile car il contient non seulement les fichiers de configuration.

    Je me demandais s'il ne crée pas de nouveau dossier, dites < CODE> / CONFIG Qui serait sous contrôle de version et contiendrait tous les fichiers de configuration dont nous avons besoin, puis remplacez les numéros d'origine avec des symboles de symboles dans le dossier / Config . Par exemple: xxx

    la question est la suivante: Est-ce une bonne idée et sinon, quelle est une meilleure solution?


0 commentaires

3 Réponses :


5
votes

Si vous utilisez GIT, puis de la poursuite de l'ensemble du / usr / local / etc sous la version contrôle n'est pas inutile du tout.

  • Vous ne pouvez suivre qu'une poignée de fichiers si vous avez tellement choisi
  • Le répertoire de travail avec tous les fichiers de configuration suivis est difficilement plus grand de taille

    Il suffit d'installer git, puis d'aller à / usr / local / etc et d'écrire git init . Cela créera le dossier .git dans votre position actuelle (en faisant essentiellement ce dossier un référentiel).

    Ajoutez ensuite les fichiers de configuration que vous souhaitez suivre: git Ajouter un pare-feu / Firewall_Config.confconfig.conf Apache2 / httpd.conf etc. et commettre: GIT COMTT -M "Configuration initiale"

    Vos fichiers de configuration sont maintenant suivis.


4 commentaires

Vous pourriez réellement avoir raison. Je passe à Git, mais en venant de SVN, j'ai une image de chaque sous-dossier contenant un dossier .SVN et TortoiseSVN signalant un tas de fichiers non transférés. Cela pourrait être la voie à suivre. Merci Dershodan.


Mais que se passe-t-il si les fichiers de configuration sont à différents endroits? Par exemple. Firewall Config est situé dans / etc. Je voudrais éviter d'avoir plusieurs contrôles GIT.


+1 pour la mention d'un DVCS. Un. petit. dossier. une place. (et une réponse décente aussi)


À propos des fichiers de configuration mutliples dans plusieurs emplacements: tant que vous êtes dans / etc, vous pouvez simplement ajouter les fichiers dont vous avez besoin pour le référentiel. L'autre option est que vous vous avez suggéré de déplacer des configurations pour suivre dans un dossier et remplacer les configurations d'origine par les symboles.



1
votes

Avez-vous regardé l'un des outils de gestion faites pour faire ce genre de chose? Je recommande la marionnette ou le chef, les avez utilisées dans des emplois précédents pour faire ce genre de chose.


1 commentaires

Comment la marionnette / chef peut-elle être utile ici? Pouvez-vous élaborer l'idée?



2
votes

Depuis que vous êtes des fichiers de configuration sensibles en version Versioning, je vous recommande de configurer un serveur git interne comme Gitlab. Créez un référentiel git pour chaque serveur ou modèle de serveur / image / etc. Aller au répertoire / répertoire et 'git init'.

Vous pouvez être sélectif sur ce que vous avez mis sous la version de version en utilisant uniquement 'ADD / Path Git / To / Fichier pour les fichiers que vous allez personnaliser.

Puis, 'git -m' commettre commentaires 'et "maître d'origine de git push -u".


0 commentaires