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

bootstrap (добавить узел) localhost в chef

Проблема. Следующая командная строка

knife bootstrap 127.0.0.1 -r 'recipe[chef-client]' -x user -p password --sudo

возвращается

Bootstrapping Chef on 127.0.0.1
WARNING: Failed to connect to 127.0.0.1 -- Errno::ECONNREFUSED: Connection refused - connect(2)

Ожидается что эта команда будет успешной и после нее

knife node list

вернется

[
"127.0.0.1"
]

SSH-сервер отлично работает на localhost и ssh user@127.0.0.1 -p password работает как положено.

Похоже, проблема с вызовом в том, что вы указали пароль с -p вариант, который knife bootstrap используется для указания альтернативного порта ssh. Вы хотели использовать -P (заглавная P), что является правильным вариантом для указания пароля к команде начальной загрузки.

И, как указал Джастин, bootstrap, вероятно, технически не нужен, если у вас уже установлен chef до такой степени, что вы можете запускать команды «нож». Вы должны иметь возможность запустить «шеф-клиент», чтобы зарегистрировать свой узел на сервере (возможно, потребуется ключ проверки с -K вариант, если он еще не установлен / не доступен в / etc / chef). После регистрации на сервере вы можете выдать knife node run_list add команды для добавления соответствующих ролей / рецептов в список выполнения, затем вызвать другой chef-client чтобы он вступил в силу. Затем снова, bootstrap делает все с помощью одной команды, так что это неплохой вариант.

И вы должны добавить IP и NODENAME (имя хоста) в / etc / hosts:

127.0.0.1 NODENAME

Затем разделите% knife bootstrap 127.0.0.1 -r 'recipe [chef-client]' -x user -p password --sudo на два шага:

Шаг 1:

% knife bootstrap IP_ADDRESS -x ubuntu -P PASSWORD --sudo

Шаг 2:

% knife ssh name:NODENAME -x ubuntu -P PASSWORD "sudo chef-client"

Если вы получаете отказ в соединении, значит, соединение SSH не может быть открыто, потому что:

  • SSH не работает в системе.
  • Правило брандмауэра блокирует доступ к порту 22.
  • SSH работает на порту, отличном от 22.

Тем не менее, «нож начальной загрузки» предназначен для использования для настройки удаленных систем с Ruby / RubyGems, установки Chef и настройки его для подключения к настроенному серверу Chef (из вашей локальной конфигурации ножа). Дополнительную информацию о команде «Knife bootstrap» см.

Кроме того, именем узла будет обнаруженное полное доменное имя (обычно выводится hostname -f), если не указано с -N NODE_NAME.