Я работаю над разворачиванием кластера узлов. В myrepo/cookbooks/mycookbook/.kitchen.yml
У меня есть`search` не найти узлы по ролям на dev
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
, чтобы иметь доступ к ip-адресам узлов в моей сети с ролью genericnode
?
Дополнительная информация:
Вот роль:
{
"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": {
}
}
Это, кажется, работает Но как я могу указать IP-адрес этого узла в 'узлов/genericnode.json' Или делать это в .kitchen.yml с' сети:!? - [ «private_network» , {ip: "192.168.0.2"}] ', например? или оба? – KeatsKelleher
Получил это! Вам просто нужно настроить его так:' { "name": "genericnode", "chef_type": "node ", " json_class ":" Шеф :: Узел ", "chef_environment": "развитие", "run_list": [ "роль [genericnode]"], "роль": "genericnode", "автомат": { "IPAddress": "192.168.0.2" } } ' – KeatsKelleher