Mon équipe a créé un grand nombre de livres de cuisine de chef. Je me demandais quelles méthodes et quels frameworks je devrais étudier pour que nous puissions commencer à créer des tests pour nous assurer que nos nœuds sont configurés correctement?
Mon équipe a créé un grand nombre de livres de cuisine de chef. Je me demandais quelles méthodes et quels frameworks je devrais étudier pour que nous puissions commencer à créer des tests pour nous assurer que nos nœuds sont configurés correctement?
Réponses:
Vous pourriez (également) examiner Vagrant pour cela.
Une vidéo montre comment utiliser le combo de livres de cuisine Vagrant et Chef. Et il y a une page dédiée à Vagrant et Chef sur le site Opscode (mise à jour 2015-01-23: la page est partie ...).
Il y a la cucumber-chef
gemme rubis et un livre récemment publié Nelson-Smith et al - "Infrastructure pilotée par les tests avec Chef" qui utilise cette gemme - http://www.cucumber-chef.org/
Je viens de m'en souvenir de ma liste de surveillance github: https://github.com/gregretkowski/vmth/
Le VMTH (Virtual Machine Test Harness) fournit un mécanisme de test unitaire de l'automatisation de votre infrastructure - politiques de marionnettes, recettes de chef, libération de scripts de déploiement, etc. cet état après chaque test, afin qu'une série de tests puisse être effectuée sur une instance de VM en succession rapide
Il y a plusieurs options.
Opscode a sur le support "no-op" de la feuille de route de développement de Chef qui aidera à tester. Nous ne soutenons que « no-op » ne fait pas nécessairement ce que vous voulez, mais comprendre le désir de la fonction.
Certaines des réponses ici semblent un peu anciennes. Pour le CI et les tests locaux, je chercherais à tirer parti d'un outil de test de test comme Test Kitchen qui prend également en charge Vagrant si vous l'avez déjà utilisé.
Il vous permettra d'exécuter vos coobkooks contre de nombreuses solutions de cloud et de virtualisation aujourd'hui: EC2, Digital Ocean, Vagrant, Docker, etc.
Il dispose également de plugins pour vous permettre d'exécuter l'un des nombreux outils de test d'infrastructure qui existent aujourd'hui:
D'après mon expérience, la seule façon de vraiment faire cela est d'avoir un environnement de mise en scène et des pratiques de développement minutieuses. Se moquer du travail à faire est incroyablement compliqué et fragile, et les suites de tests CI s'exécutant sur commit ou push demandent beaucoup d'efforts pour écrire et maintenir (bien que Chef soit probablement beaucoup mieux que Puppet, qui est mon expérience principale) ), et prenez un temps ridicule à courir.
ÉDITER
Juste après avoir écrit ceci, j'ai soudain réalisé qu'il pourrait y avoir un moyen de faire des tests "unitaires" raisonnablement efficaces des recettes de Chef / Puppet avec un système de fichiers union et une quantité importante d'échafaudages. Cependant, je ne trouve rien là-bas que quelqu'un ait déjà fait dans ce domaine. J'aurais peut-être trouvé un projet.