Назад | Перейти на главную страницу

Chef node.name не задано

С чем я работаю:

До этого момента я всегда использовал 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