我怎样才能多次获得测试厨房 运行 相同的厨师食谱?
How can I get test kitchen run same chef recipe multiple times?
我有一个用于部署应用程序的厨师食谱。每次配方 运行s 它都会创建一个新的 "release"(带有当前时间戳)目录并删除旧的 "release" 目录,只留下 5 个最新的 "release" 目录。 (类似于 Capistrano 的 keep_releases 的工作方式)。
为了测试该功能,我需要 运行 我的 "deploy" 食谱 6 次并验证只有 5 个 "release" 目录。看来我不能在 run_list 中多次使用相同的食谱。
有什么想法吗?
谢谢!
2019 年更新:使用 multiple_converge
,如 https://docs.chef.io/config_yml_kitchen.html
中所述
旧解:
您可以使用重复的套件名称来收敛一个节点两次(或更多次)。
例如在你的 .kitchen.yml 到 运行 "default" 套件中两次:
suites:
- name: default
run_list:
- recipe[your-cookbook::recipe]
attributes:
- name: default
run_list:
- recipe[your-cookbook::recipe]
attributes:
然而,也许您想使用 ChefSpec 来测试它,而不必每次都收敛一个节点。
如果您使用 kitchen dokken 来测试您的食谱,您可以在节点收敛后再次执行 'kitchen converge'。在聚合节点上再次与 运行 chef-client 类似。
现在 Test Kitchen 的配置器中有一个选项,允许您 运行 多个聚合。
下面的供应器配置将告诉 Chef 收敛 3 次:
provisioner:
name: chef_zero
product_name: chef
deprecations_as_errors: true
multiple_converge: 3
我有一个用于部署应用程序的厨师食谱。每次配方 运行s 它都会创建一个新的 "release"(带有当前时间戳)目录并删除旧的 "release" 目录,只留下 5 个最新的 "release" 目录。 (类似于 Capistrano 的 keep_releases 的工作方式)。
为了测试该功能,我需要 运行 我的 "deploy" 食谱 6 次并验证只有 5 个 "release" 目录。看来我不能在 run_list 中多次使用相同的食谱。
有什么想法吗?
谢谢!
2019 年更新:使用 multiple_converge
,如 https://docs.chef.io/config_yml_kitchen.html
旧解:
您可以使用重复的套件名称来收敛一个节点两次(或更多次)。
例如在你的 .kitchen.yml 到 运行 "default" 套件中两次:
suites:
- name: default
run_list:
- recipe[your-cookbook::recipe]
attributes:
- name: default
run_list:
- recipe[your-cookbook::recipe]
attributes:
然而,也许您想使用 ChefSpec 来测试它,而不必每次都收敛一个节点。
如果您使用 kitchen dokken 来测试您的食谱,您可以在节点收敛后再次执行 'kitchen converge'。在聚合节点上再次与 运行 chef-client 类似。
现在 Test Kitchen 的配置器中有一个选项,允许您 运行 多个聚合。
下面的供应器配置将告诉 Chef 收敛 3 次:
provisioner:
name: chef_zero
product_name: chef
deprecations_as_errors: true
multiple_converge: 3