Meilleure pratique pour tester des recettes de chef?

18

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?

linusthe3rd
la source
On dirait qu'il appartient à cooking.se;)
Mark Henderson
Pendant un instant, je pensais que vous parliez de Chef: en.wikipedia.org/wiki/Chef_%28programming_language%29
Janne Pikkarainen

Réponses:

7

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 ...).

Henk
la source
3

Il y a la cucumber-chefgemme 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

pfo
la source
1

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.

jtimberman
la source
1

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:

  • serverspec - Framework de test le plus populaire.
  • goss - YAML, binaire simple et autonome, extrêmement rapide.
  • inspec - pensez-y comme serveurspec amélioré (écrit par les chefs).
  • testinfra - Framework de test de serveur basé sur Python.
Ahmed Elsabbahy
la source
0

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.

womble
la source
Tester l'infrastructure elle-même est extrêmement important. Naturellement, il existe un certain nombre de méthodologies, c'est-à-dire fonctionnelles et non fonctionnelles, nécessaires pour implémenter cela légèrement différemment des méthodologies logicielles.