[英]How to provide a condition within Chef recipe to see if it running under test kitchen?
我正在Chef內使用加密的數據包,並且想在Chef食譜內添加一個條件,如下所示:
If (test kitchen) then
encryptkey = data_bag_item("tokens", "encryptkey")
If ( not test kitchen ) then
secret = Chef::EncryptedDataBagItem.load_secret("/etc/chef/encrypted_data_bag_secret")
encryptkey = Chef::EncryptedDataBagItem.load("tokens", "encryptkey", secret)
我已經加入data_bags_path
和encrypted_data_bag_secret_key_path
內kitchen.yml
如下:
provisioner:
name: chef_zero
chef_omnibus_url: omni-url/chef/install.sh
roles_path: 'test/integration/default/roles'
data_bags_path: "test/integration/default/data_bags"
encrypted_data_bag_secret_key_path: "test/integration/default/encrypted_data_bag_secret"
使用您的kitchen.yaml中的屬性。
suites:
- name: default
data_bags_path: 'databags'
run_list:
- recipe[x::y]
attributes: {'kitchen' : 'true' }
在您的配方中放入if條件,使用node ['chef-mode']的值。
if node['kitchen'] == 'true'
#something
else
#else
end
只需對兩者都使用data_bag_item("tokens", "encryptkey")
。 它將為您自動進行解密。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.