Développement de la Marionnette locale avec Geppetto et VMware

Cet article décrit l'environnement de développement local et de workflow que j'utilise pour développer et tester des configurations multi-systèmes qui sont gérés par Puppet. VMWare Workstation est utilisé pour exécuter Puppet Master local et un test de nœud avec le fichier / etc / puppet "sur le Maître est mappé sur le poste de travail de Geppetto situé sur mon ordinateur local.

Objectifs

Développement efficace et efficiente des systèmes de marionnettes configurées nécessite l'intégration et des tests fréquents: le code de marionnettes que vous écrivez doit apparaître immédiatement sur un Puppet Master et être appliquée aux différents noeuds comprenant un système de test.

Comment ça marche?

J'utilise Windows comme mon poste de travail local. Les manifestes de marionnettes sont stockés dans un référentiel de code, comme Subversion ou Git. Geppetto est l'IDE. VMware Workstation fournit des serveurs virtuels pour un Puppet Master local et un ou plusieurs noeuds de test qui simulent une configuration de système multi-ordinateur.

Utiliser Geppetto, le code de la marionnette est extrait dans un espace de travail local sur mon poste de travail Windows. VMware Workstation fait ce "Geppetto Workspace" disponible pour le serveur virtuel Puppet Master. Ce montage est constitué "lecture seule", comme une préférence personnelle. Je SOFTLINK le répertoire «/ etc / puppet» sur le Puppet Master pour ce système de fichiers monté.

Toutes les modifications de code que je fais maintenant en utilisant l'éditeur de Geppetto apparaîtront immédiatement sur le Puppet Master locale. Notez que je n'ai pas encore vérifié dans tout code. Tout ce travail de développement est locale à mon poste de travail.

Régression et les tests fonctionnels se fait en déclenchant les agents de marionnettes sur les différents nœuds de test. Je rends fréquemment un nœud de test à un instantané de base afin de tester la marionnette manifestent à fond.

Dans cette approche,, le cycle code-test est rapide et donne plus d'assurance que le code que j'ai finalement vérifié en va réussir à la fois dans un scénario de métal nu ainsi que correctif supplémentaire à un environnement déjà en cours d'exécution.

Après l'enregistrement, le code est déployée dans un environnement QA et éventuellement les serveurs de production.

Comment le construire

Le partage de dossiers VMware est la seule étape difficile dans la réalisation de cet environnement de développement local. Voici comment faire.

Créer un serveur virtuel pour être le Puppet Master Local

Je crée une machine virtuelle basée sur Debian à utiliser comme le maître de la marionnette. Générer le catalogue de marionnettes est gourmand en mémoire, donc je allouer plus de suffisamment de mémoire, 2GB.

Configurer l'espace de travail local de Geppetto
Enable "Folder Sharing" in the Options tab for the Puppet master virtual machine.

Permettre "le partage de dossiers" dans l'onglet Options de la machine virtuelle maître de marionnettes.

Le référentiel de code de marionnettes est vérifié par Geppetto à un espace de travail local sur le poste de travail. Ce répertoire sera utilisé dans l'étape suivante, la mise en place du partage de dossier.

Activer le partage de dossiers sur VMworkstation

Activer le partage de dossiers dans l'onglet Options de la machine virtuelle maître de marionnettes et de sélectionner le même dossier que celui utilisé par Geppetto quand il crée son espace de stockage de code local.

Installer VMware Tools dans Puppet Master machine virtuelle

Lors du démarrage de la machine virtuelle maître de marionnettes, vous verrez le message de rappel ci-dessous:

VMware Reminder Message to Install Tools in Guest OS

VMware Message de rappel pour installer les outils de système d'exploitation invité

Montez le lecteur de CDRom utilisant "mount / dev / cdrom /" commande à partir de l'invité, extraire l'archive VMwareTools puis exécutez le "vmware-install.pl. / 'commande.

Si vous voyez le message d'erreur ci-dessous, alors vous devez prendre des mesures supplémentaires pour faire installer, gcc et les en-têtes du noyau pour le client.

Required Packages Preventing the Installation of VMware Tools.

Packages requis empêchant l'installation de VMware Tools.

Sous Debian ces packages sont installés en utilisant la commande:

aptitude install gcc libglib2.0-0 make linux-headers-`uname-r`-y

Si vous utilisez VMware Workstation 7, vous pouvez avoir besoin de spécifier le chemin complet vers le paquet gcc-4.3, comme indiqué ci-dessous:

Specifying the full path to gcc-4.3: /usr/bin/gcc-4.3 in Debian.

Spécifiant le chemin complet vers gcc-4.3: /usr/bin/gcc-4.3 dans Debian.

Également, vous pouvez avoir besoin de spécifier manuellement l'emplacement des en-têtes du noyau. Dans ma machine virtuelle, ils sont situés dans '/ usr/src/linux-headers-2.6.32-5-686/include'. Ce sera différent pour votre ordinateur:

KernelHeaders

Situation des en-têtes du noyau

Les outils VMware devrait maintenant compiler et d'afficher les messages de réussite dessous:

Successful Compilation of VMware Tools.

Succès Compilation de VMware Tools.

Lier / etc / marionnette de système de fichiers monté

Pour permettre au maître de la marionnette à utiliser les modules stockés dans le dossier partagé, l'approche la plus simple est de remplacer le répertoire «/ etc / puppet" avec un lien symbolique vers le système de fichiers monté, comme indiqué dans la commande ci-dessous:

Replacing the Puppet Directory with a Softlink to the Mounted Filesystem.

Remplacer le répertoire de marionnettes avec un lien symbolique vers le système de fichiers monté.

Nous pouvons maintenant confirmer que le répertoire «/ etc / puppet» sur la machine virtuelle maître de marionnettes est en lecture seule de montage de l'espace de travail Geppetto sur le poste de travail local, comme illustré par le test ci-dessous:

Testing the Setup

Test de la configuration

18 juin, 2013 Publié par Jon Jaroker Classé dans: Workflows de marionnettes