2017-08-18 3 views
1

Also in meinem Rezepte testen, ich habe folgende:Wie ein Koch Rezept mit verschlüsselten Daten Taschen

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

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

Wie kann ich diese Zeilen mit meinen Testdaten überschreibt? Das Rezept installiert eine MySQL-Datenbank, daher möchte ich auf die Existenz der DB testen.

Antwort

0

Ich habe separate Daten Taschen für Test erstellt mit den gewünschten Geheimnissen und laden Sie sie, wenn sie ein Testküche Lauf

+0

mein erster Ausflug in Testküche und Koch ... verwenden Sie tatsächlich die gleichen Werte, die Sie in prod? Zum Beispiel habe ich ein root-Passwort im Datenbeutel für mysql install gesetzt. Dies wird im Rezept eingestellt, aber während der Testküche versagt mein Test, wenn ich nicht das richtige Passwort habe. Daher muss ich das Passwort aus dem verschlüsselten Datenbeutel beziehen. – luckytaxi

+0

Warum legen Sie nicht ein anderes Testkennwort/acc für den Test env ... Ich baue lokale Küche vm ... so habe ich verschiedene Geheimnisse wrt prod – OK999

+0

Nun, das Rezept verweist auf ein Root-Passwort aus einer verschlüsselten Daten-Tasche zu verwenden. würde nicht die Küche testen und das Passwort brauchen? aber ich denke, was du implizierst, ist, dass ich das Rezept lesen kann, das von einem anderen Datenbeutel alle toigether liest? – luckytaxi

0

Der beste Ansatz ist nicht verschlüsselt Taschen zu verwenden, um alle für die Prüfung, ändern Sie den Code die verwenden data_bag_item() Helfer anstelle der zugrunde liegenden Klassen und es wird mit beiden arbeiten. Dann legen Sie einfach ein paar normale Data Bag Fixtures in test/integration/data_bags/ (oder setzen Sie data_bags_path in Ihre Konfiguration, um von woanders zu laden).

+0

Zum ersten Mal sehe ich Verweise auf 'data_bag_item()' ... benutze das in meinem normalen Rezept oder in meinen Testspezifikationsdateien? – luckytaxi

+0

Rezept, https://docs.chef.io/data_bags.html#with-recipes deckt die DSL. – coderanger

Verwandte Themen