2017-08-18 22 views
1

Donc, dans ma recette que je donne les résultats suivants:Comment tester une recette de chef avec des sacs de données cryptées

secret = Chef::EncryptedDataBagItem.load_secret("/root/.chef/encrypted_data_bag_secret") 

# Decrypt the data bag 
creds = Chef::EncryptedDataBagItem.load("passwords", "mysql-root", secret) 

Comment puis-je remplacer ces lignes avec mes données de test? La recette installe une base de données MySQL, par conséquent, je voudrais tester l'existence de la base de données.

Répondre

0

j'ai créé des sacs de données distincts pour le test avec les secrets souhaités et de les charger, si son une course de cuisine d'essai

+0

ma première incursion dans la cuisine d'essai et le chef ... utilisez-vous réellement les mêmes valeurs que vous produiriez? Par exemple, j'ai un mot de passe root dans le sac de données pour mysql install. Cela se passe dans la recette, mais pendant la cuisine d'essai mon test échoue si je n'ai pas le bon mot de passe. par conséquent, je dois référencer le mot de passe du sac de données crypté. – luckytaxi

+0

Pourquoi ne pas mettre un mot de passe de test différent/acc pour le test env ... je construis cuisine locale vm ... donc j'ai des secrets différents prod prod – OK999

+0

bien, la recette référence un mot de passe root à utiliser à partir d'un sac de données cryptées. wouldnt tester cuisine exécuter et besoin de ce mot de passe? mais je pense que ce que vous impliquez est que je peux faire la lecture de la recette d'un sac de données différent tout à fait? – luckytaxi

0

La meilleure approche est de ne pas utiliser des sacs cryptés tout pour le test, changer votre code pour utiliser la data_bag_item() au lieu des classes sous-jacentes et cela fonctionnera avec les deux. Ensuite, il suffit de mettre quelques fixtures de sac de données normales dans test/integration/data_bags/ (ou de définir data_bags_path dans votre configuration pour charger d'ailleurs).

+0

La première fois que je vois des références à 'data_bag_item()' ... l'utilise dans ma recette normale ou dans mes fichiers de spécification de test? – luckytaxi

+0

Recette, https://docs.chef.io/data_bags.html#with-recipes couvre le DSL. – coderanger