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

помощь по настройке среды шеф-повара / ножа

В качестве ножа у меня нож.rb:

log_level                :info
log_location             STDOUT
node_name                'user'
client_key               '/home/user/.chef/user.pem'
validation_client_name   'chef-validator'
validation_key           '~/.chef/validation.pem'
chef_server_url          'url:4000'
cache_type               'BasicFile'
cache_options( :path => '/home/user/.chef/checksums' )
cookbook_path [ './', './site-cookbooks' ]

Я могу делать «список поваренных ножей» и все эти забавные вещи, но когда я иду редактировать, я получаю:

# knife node edit test.domain.com -c knife.rb -e vim
ERROR: ArgumentError: Attribute chef_environment is not defined!

У меня настроена среда:

# knife environment list
  _default
  production

и узел, который я пытаюсь редактировать, находится в этой среде. Я пробовал использовать параметр -E, а также добавить параметр «environment» и «chef_environment» в свой Knife.rb (в документации немного двусмысленно, что мне следует использовать), но безрезультатно. У кого-нибудь есть совет по этому поводу?

Какую версию Chef вы установили в локальной системе, в которой вы используете Knife? Какая версия работает на Chef Server? (Я предполагаю, что с 'url: 4000' chef_server_url вы запускаете свой собственный сервер вместо Opscode).

Вы можете получить дополнительную информацию из Knife с помощью '-VV'.

knife node edit test.example.com -c knife.rb -e vim -VV

Настройка в Knife.rb для использования среды по умолчанию: environment. На самом узле chef_environment - это метод объекта Node, который возвращает значение среды узла, а не атрибут.

Также я бы порекомендовал положить Knife.rb в .chef в вашем репозитории Chef или в вашем домашнем каталоге. Knife автоматически определит конфигурацию, выполнив поиск .chef/knife.rb, аналогично git.

Knife также будет использовать редактор, указанный в переменной среды оболочки, EDITOR.

export EDITOR=`which vim`

Он будет использовать vim.