Je viens de configurer Foreman pour la première fois et je ne sais pas comment procéder pour mettre toutes mes configurations sous contrôle de version. Je sais que je peux utiliser Git pour chaque module que j'installe sur mon maître de marionnettes, mais je préférerais une solution plus holistique qui englobe non seulement les modules mais également les classes associées à chaque hôte et toutes les variables définies sur les hôtes. Toutes les suggestions seraient grandement appréciées ainsi que les workflows associés. Dans le cas où cela est pertinent, j'ai la configuration de GitLab en tant que serveur Git central sur site et je prévois de configurer un serveur CI tel que Jenkins bientôt.
8
Réponses:
Il existe un plugin pour conserver la définition de votre infrastructure dans Foreman, à peu près une version sérialisée de vos données dans Git, et télécharger (et modifier votre infrastructure) les modifications. Ce serait peut-être utile pour vous
https://github.com/marianitadn/foregit
la source
Avec contremaître, vous devriez être en mesure d'afficher toutes les classes ainsi que toute variable de configuration affectée dans les détails de l'hôte. Voir: http://theforeman.org/manuals/1.4/index.html .
la source
Je ne sais pas si je comprends votre question, mais avez-vous rencontré "bibliothécaire de marionnettes" https://github.com/rodjek/librarian-puppet ? Là, vous pouvez définir les versions / sha1 des modules de marionnettes que vous souhaitez utiliser.
la source
Juste au cas où quelqu'un lirait ceci plus tard: Avec marionnette, vous pouvez définir la version du package / logiciel que vous souhaitez installer avec la déclaration "version => XYZ".
Gene, j'ai fait de mon mieux mais je ne comprends toujours pas votre question. Désolé :(
la source
Je pense que ce que vous recherchez est très simple.
Les configurations Puppet sont disponibles
/etc/puppet
. L'option la plus simple consiste simplement à exécutergit init /etc/puppet/
vous pouvez ensuite ajouter Gitlab en tant que télécommande et y pousser.
Alternativement, vous pouvez essayer quelque chose comme ce que je décris ici qui n'est pas centré sur le contremaître, mais je ne vois aucune raison pour laquelle vous ne pourriez pas l'utiliser comme source d'inspiration.
la source
Vous pourriez également envisager etckeeper, qui le fait automatiquement
Vous pourriez même écrire un wrapper comme
vi puppet_wrapper.sh
je travaille avec cela depuis un certain temps et ça va pour mes besoins.
la source
Je pense que vous avez juste besoin de configurer un référentiel dans git où chaque branche du référentiel git sera mappé à un environnement de marionnettes et quand vous voulez changer quelque chose dans la marionnette, clonez simplement le référentiel, apportez des modifications et poussez-le dans la branche correspondante. Vous devez également configurer un hook git qui se déclenche lorsque vous transmettez vos modifications au référentiel git afin qu'il mette à jour l'environnement mappé sur le serveur de marionnettes. Vous pouvez faire tout cela manuellement ou simplement via ce module de marionnettes.
https://github.com/theforeman/puppet-puppet
la source