(Excuses à l'avance pour la stupidité de cette question. Je suis normalement un programmeur, pas un administrateur système, mais je me suis chargé d'automatiser certaines choses et de nettoyer d'autres choses qui sont automatisées mais pas de la manière la plus jolie . :-)
J'ai étudié divers outils d'automatisation du déploiement de logiciels sur un tas de serveurs, tels que cfengine, Puppet et Chef. Jusqu'à présent, Puppet a l'air le plus attrayant, mais je ne suis certainement pas encore engagé.
Ces outils semblent tous pouvoir faire un excellent travail pour maintenir un groupe de serveurs à jour avec des logiciels préemballés .
Ce que je ne comprends pas, c'est: comment utiliser un outil (comme Puppet) pour gérer les déploiements de notre propre logiciel interne? Je pense que je suis perdu parce que j'ai vu mille tutoriels montrant comment garder Apache ensure => latest
(ce qui est plutôt cool), mais rien qui correspond tout à fait à mon cas d'utilisation aujourd'hui, qui ressemble plus à:
- quand un être humain pousse le bouton,
- extraire la branche A du référentiel de contrôle de version B
- exécutez la commande C pour le compiler
- copier les binaires D sur les serveurs E1 à E10
- sur chaque serveur, exécutez la commande F pour que toutes les modifications prennent effet
Puppet sonne bien, et je vois totalement l'avantage d'une configuration déclarative et idempotente sur certains scripts shell, mais je n'ai vu aucun tutoriel pour "vous voulez mettre à jour vos scripts shell vers Puppet (ou Chef, ou cfengine) alors voici ce que vous devrait faire". Existe-t-il une telle chose? Est-il évident pour d'autres personnes de prendre les choses fournies dans les documents Puppet et de reproduire le comportement que je veux? Suis-je tout simplement pas compris?
Jusqu'à présent, cela me semble que l'être humain (# 1) empaquette manuellement le logiciel (# 2 et # 3) externe à Puppet, met à jour manuellement la configuration Puppet, ce qui déclenche Puppet pour mettre à jour les serveurs. .. peut être? (Je suis un peu confus ici, comme je suis sûr que vous pouvez le dire.)
Merci!