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?


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


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


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.


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.

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.


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.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.