J'ai la configuration suivante:
- De nombreux projets différents qui sont différents des dépôts git, mais tous ont pour la plupart la même configuration de serveur
- Chaque projet dépend à son tour de nombreux autres projets et nous utilisons le compositeur de la dépendance gestionnaire afin d'obtenir leur ensemble (langage PHP ici).
Je veux utiliser Vagrant et comprennent un Vagabond fichier dans chaque référentiel, pour les membres de mon équipe peut cloner un dépôt, exécutez vagrant up
et être prêt à aller.
Ma question est maintenant orientée vers la mise en service. J'ai besoin d'installer plusieurs outils et les logiciels comme apache, git, mysql et plusieurs paquets php, puis de télécharger certains fichiers (comme un développement récent db dump), mettre tout en place dans /var/www et exécuter le compositeur de la commande d'installation.
Donc une option pour faire cela est d'utiliser un gestionnaire de recettes en utilisant comme chef ou puppet. L'alternative serait d'écrire un fichier bash et l'utilisation du shell de provisionnement.
Je n'ai pas beaucoup d'expérience avec le chef / puppet, alors, naturellement, il semble plus facile d'utiliser l'option shell, mais je veux comprendre si ce n'est pas une bonne / option viable à long terme.
Pourquoi il me paraît une mauvaise approche pour aller avec puppet / chef:
Je comprends que je vais avoir à utiliser plusieurs recettes différentes et presque toujours utiliser les mêmes recettes pour mes différents référentiels, donc j'aurais de toutes les inclure dans tous les référentiels. Envisager d'avoir 20 repos et d'avoir besoin de 10 recettes, ce qui signifie que je vais avoir besoin d'ajouter de 200 recettes comme git-sous-module ou de la même façon (aussi chaque membre de l'équipe de cloner le dépôt, puis clone 10 recette dépôts et seulement puis exécutez vagrant pour chaque projet). En revanche, je voudrais juste besoin d'avoir un petit repo avec mon script shell et le clone de 20 fois.
Je suis sans doute raté quelque chose, de sorte s'il vous plaît conseils si je dois opter pour chef / puppet et pourquoi il est logique même si mon dépôts ont tous très semblable à la configuration de serveur.