4

我有一个用于部署应用程序的厨师食谱。每次运行配方时,它都会创建一个新的“发布”(带有当前时间戳)目录并删除旧的“发布”目录,只留下 5 个最近的“发布”目录。(类似于 Capistrano 的 keep_releases 的工作方式)。

要测试该功能,我需要运行我的“部署”配方 6 次并验证是否只有 5 个“发布”目录。似乎我无法在 run_list 中多次使用相同的配方。

有任何想法吗?

谢谢!

4

3 回答 3

4

2019 年更新:multiple_convergehttps://docs.chef.io/config_yml_kitchen.html中所述使用

旧解决方案:

您可以使用重复的套件名称将节点聚合两次(或多次)。

例如,在您的 .kitchen.yml 中运行两次“默认”套件:

suites:
  - name: default
    run_list:
      - recipe[your-cookbook::recipe]
    attributes:
  - name: default
    run_list:
      - recipe[your-cookbook::recipe]
    attributes:

但是,也许您想使用ChefSpec 对其进行测试,而不必每次都收敛一个节点。

用 test-kitchen 1.4.0 + kitchen-vagrant 0.18.0 测试

于 2015-05-22T02:25:10.360 回答
3

现在测试厨房的配置器中有一个选项,允许您运行多个聚合。

下面的配置器配置将告诉 Chef 收敛 3 次:

provisioner:
  name: chef_zero
  product_name: chef
  deprecations_as_errors: true
  multiple_converge: 3
于 2019-08-07T20:18:24.230 回答
1

如果您使用厨房 dokken 来测试您的食谱,您可以在节点收敛后再次简单地执行“厨房收敛”。类似于在融合节点上再次运行 chef-client。

于 2018-10-29T18:19:46.407 回答