【问题标题】:How to multi-provision in kitchen.yml?如何在 kitchen.yml 中进行多重配置?
【发布时间】:2015-09-09 17:21:06
【问题描述】:

我有一个 Vagrantfile,我在其中通过循环访问一个 json 文件来配置不同的虚拟机。例如。

cluster_config.each do |cluster|
cluster_name   = cluster[0] # name of node
nodes_config = (JSON.parse(File.read("test_data_bags/myapp/_default.json")))['clusters'][cluster_name]['nodes']

nodes_config.each do |node|


  config.vm.define node_name do |nodeconfig|  
       processes = node_values['processes']
       processes.each do |process|
          nodeconfig.vm.provision :chef_solo do |chef|
              chef.data_bags_path = 'test_data_bags'
              chef.run_list = run_list              
              chef.roles_path = "roles"
                "myapp" => {
                  "cluster_name" => cluster_name,
                  "role" => node_role
                },
              }
          end
       end
    end
end

我想在厨房里做同样的事情,即。获取一组属性和 foreach 数组项 - 运行配方 xyz - 这样我就可以使用 test-kitchen 编写一些测试,这可能吗?

谢谢

【问题讨论】:

    标签: vagrant chef-infra test-kitchen


    【解决方案1】:

    有几种不同的解决方法可以实现这一点,但它们都绝对是解决方法。有一个问题可供讨论 support of multiple boxes on test-kitchen,你可以去那里阅读更多关于为什么这可能不会很快得到支持的信息。 TL;DR:这并不是项目的真正目标。

    解决方法包括:

    1. Chef-provisioning 可以从单个配置的服务器/测试套件引导更多服务器
    2. Kitchen-nodes provisioner 可以将每个服务器的数据共享给您设置中的其他测试套件
    3. custom Vagrantfile template 用于测试厨房

    【讨论】:

      猜你喜欢
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 2019-08-02
      • 1970-01-01
      • 2020-10-16
      相关资源
      最近更新 更多