С чем я работаю:
До этого момента я всегда использовал node.name для установки имени хоста экземпляра. Пример:
{
"name": "web-01",
"chef_environment": "_default",
"normal": {
"tags": [
]
},
"run_list": [
"recipe[web-server@2.0.1]"
]
}
Однако недавно установка node.name из ключа "name" перестала работать. node.name остается именем хоста, предоставленным моим облачным провайдером. Это происходит при запуске chef-client, chef-solo и даже в chef-shell. Кажется, он правильно установлен в моем client.rb, но все равно node.name не обновляется. Я пробовал работать с -N
flag, но все равно безуспешно.
Кто-нибудь еще сталкивается с этой проблемой? Как мне установить node.name? Или, скорее, как устанавливается node.name?
Как я обнаружил, атрибут в chef-client устанавливается иначе, чем в chef-solo. Chef Solo любит node [: name], а chef-client использует node.name. Если у кого-то есть понимание того, почему, это было бы признательно.
if Chef::Config[:solo]
node[:name]
else
node.name
end