【问题标题】:`search` not finding nodes by role on dev`search`没有在dev上按角色查找节点
【发布时间】:2016-09-17 20:11:01
【问题描述】:

我正在构建一个节点集群。在myrepo/cookbooks/mycookbook/.kitchen.yml我有

driver:
  name: vagrant

provisioner:
  name: chef_zero
  roles_path: '../../roles'
  environments_path: '../../environments'
  data_bags_path: '../../data_bags'

platforms:
  - name: ubuntu-12.04
    suites:
      - name: node01
        driver:
          vm_hostname: "node01.localhost"
        run_list:
          - role[genericnode]
        provisioner:
            client_rb:
                environment: development

myrepo/cookbooks/mycookbook/recipes/default.rb我有

nodes = []
search(:node, 'role:genericnode').each do |node|
    nodes.push("http://#{node['ipaddress']}:8080")
end

node.default['mysetting'] = nodes.join(',')

不过,在我的开发环境中,搜索返回一个空列表。除了上面的.kitchen.yml 设置之外,我还需要更多的设置才能访问我网络中具有genericnode 角色的节点的IP 地址吗?

附加信息:

这是角色:

{
  "name": "genericnode",
  "description": "Generic Node",
  "json_class": "Chef::Role",
  "default_attributes": {

  },
  "override_attributes": {

  },
  "chef_type": "role",
  "run_list": [
    "recipe[apt::default]", "recipe[mycookbook::default]"
  ],
  "env_run_lists": {

  }
}

【问题讨论】:

    标签: chef-infra test-kitchen chef-zero


    【解决方案1】:

    要在 chef_zero 下进行搜索,您需要提供一个节点对象文件夹作为 JSON 来作为被搜索的数据。搜索不会找到当前节点,除非它在服务器上(除非您将它添加到该节点/文件夹,否则它不会。

    通常的解决方法是同时使用搜索和检查本地值。

    ips = []
    search(:node, 'roles:genericnode').each do |n|
        ips << n['ipaddress']
    end
    if node['roles'].include?'(genericnode')
      ips |= [node['ipaddress']]
    end
    
    node.default['mysetting'] = ips.map{|ip| "http://#{ip}:8080"}.join(',')
    

    【讨论】:

    • 这似乎有效!但是如何在nodes/genericnode.json 中指定节点的ip?还是我在 .kitchen.yml 中使用 network: - ["private_network", {ip: "192.168.0.2"}] 进行操作,例如?还是两者兼而有之?
    • 知道了!你只需要像这样设置它:{ "name": "genericnode", "chef_type": "node", "json_class": "Chef::Node", "chef_environment": "development", "run_list": ["role[genericnode]"], "role": "genericnode", "automatic": { "ipaddress": "192.168.0.2" } }
    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2020-09-07
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多