簡體   English   中英

如何在廚師食譜中提供條件以查看其是否在測試廚房下運行?

[英]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_pathencrypted_data_bag_secret_key_pathkitchen.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM