2016-11-28 1 views
1

Je suis nouveau au chef et je suis en train de le faire. Nous utilisons actuellement le chef solo dans un environnement Windows. Nous avons des versions de produits tous les 3 mois. Chef est utilisé dans notre organisation pour configurer les environnements de production, les machines de développement, etc. La configuration de ces environnements implique l'installation d'un tas d'outils de développement tels que Visual Studio, des logiciels tiers, etc. Cette liste d'outils/logiciels continuer à changer à travers les versions. Par exemple: Si la version 1.0 du produit nécessite la configuration de Visual Studio 2015, la version 2.0 du produit peut nécessiter Visual Studio 2015 Update 1 et ainsi de suite. Pour être plus précis, tous les serveurs doivent avoir logiciel identique/configuration sur eux pour une ** version du produit ** particulière. Nous n'avons pas le concept de mise en scène et de production. L'environnement de construction que nous installons sur un système de développement doit être identique à un environnement de construction que nous configurons sur une boîte de production pour une version de produit particulière. La façon dont nous utilisons le chef est la suivante: -L'utilisateur ouvre une session sur le serveur et lance une console Powershell avec des droits d'administrateur. -Un script Powershell est exécuté. Ce script installe d'abord chef solo sur l'ordinateur client et copie tous les scripts Chef localement. -Les scripts du chef sont ensuite exécutés pour configurer l'environnement de construction du développeur.Versions chef et produit - environnements d'approvisionnement pour différentes versions de produits

Voici mon exigence: J'ai aimé utiliser le chef pour recréer l'environnement de construction de production/l'environnement de développement du développeur pour une version particulière. Par exemple: Un développeur aimerait créer l'environnement de génération de la version 1.0 du produit. Les scripts du chef doivent gérer cette exigence. Si le développeur souhaite créer l'environnement de développement pour la version 2.0 du produit, les scripts Chef doivent également gérer cela.

Est-ce possible en utilisant Chef? Je suppose que c'est possible puisque les scripts Chef peuvent être versionnés. Si oui, quel est le moyen d'y parvenir en utilisant Chef? Toute aide sera la bienvenue. Veuillez me guider vers une meilleure pratique. Une façon dont je pensais est que nous pourrions étiqueter les scripts chef pour chaque version du produit dans notre contrôle de source (Perforce). Ainsi, chaque fois que nous souhaitons configurer l'environnement de développement pour une version de produit particulière, nous extrayons les scripts associés à cette version du produit en utilisant l'étiquette et en configurant l'environnement. Cependant, cela ne semble pas être une bonne approche. Donc, je cherche de l'aide ici.

Y at-il quelque chose de similaire à la fonction d'étiquetage que tous les systèmes de contrôle de source mettent à disposition? Il devrait y avoir quelque chose dans le chef pour le faire.

Cordialement, Kiran

+0

Réponses/directives données sur Slack, ne postez pas de croix s'il vous plaît. – Tensibai

+0

Voter pour fermer comme avis basé comme il y a un tas de moyen d'y parvenir. – Tensibai

+0

@Tensibai J'essaie juste d'avoir autant d'opinions que possible. Je n'irais pas jusqu'à supposer que chaque utilisateur sur débordement de pile est sur le mou. Donc, peu de réponses supplémentaires seraient utiles. Je demande que cette question reste ouverte à moins qu'il y ait une raison suffisante pour la fermer. –

Répondre

1

Si les conditions requises pour installer différentes versions de produits sont plus ou moins les mêmes, vous pouvez gérer cela avec 1 recette, les attributs et les rôles.

Vous créez un attribut pour vos versions de produit et vous y intégrez une certaine logique dans votre recette.

Ensuite, vous créez des rôles, 1 pour chaque version du produit, et vous y ajoutez le même attribut avec la bonne valeur.

Après que tout ce que vous avez besoin, lors de la configuration environnement, est de passer le rôle au chef-solo comme:

chef-solo -o role[myrole] 
+0

Merci. Cela semble être une bonne idée. –