Ошибка запуска ножа ssh name: * 'sudo chef-client'

Я пытаюсь запустить «sudo chef-client» на всех узлах. Для этого я пытаюсь запустить команду:

sudo knife ssh name:* 'sudo chef-client'

но получаю ошибки при подключении к машине

ВНИМАНИЕ: Не удалось подключиться к -- Net::SSH::AuthenticationFailed: *chef_workstation_user_name*@*node_name*

Узлы — это настоящие машины в локальной сети. Я зарегистрировал узлы, запустив

sudo knife bootstrap node_ip_address -x node_name -P node_pass --sudo

Когда я бегу

sudo knife ssh name:node_name -x node_user -P node_pass 'sudo chef-client'

он по-прежнему запрашивает пароль локальной машины (узла), а затем запускает шеф-клиент с правами суперпользователя.

Итак, вопрос в том, как запустить «sudo chef-client» на всех узлах в моей ситуации?

P.S. Все узлы имеют разное имя суперпользователя


person Hroft    schedule 18.09.2013    source источник


Ответы (4)


Пытаться

sudo knife ssh 'name:*' 'sudo chef-client' вместо

sudo knife ssh name:* 'sudo chef-client'

person PMint    schedule 18.09.2013
comment
Кажется, нет никакой разницы между этими командами. Проблема в другом: например, имя пользователя рабочей станции — workstation_user, пользователь машины узла — node_user, а имя машины — node_machine. Итак, в этом случае, когда я запускаю sudo knife ssh 'name:*' 'sudo chef-client', он пытается подключиться к workstation_user@node_machine вместо node_user@node_machine, что правильно. - person Hroft; 18.09.2013

Укажите пользователя, которого вы хотите подключить к экземпляру, как с -x. например.

sudo knife ssh 'name:*' 'sudo chef-client' -x ubuntu
person martin    schedule 31.07.2014

У меня тот же суперпользователь, и я пробовал ниже, который работает нормально. Укажите имя пользователя и пароль в качестве аргумента вместе с knife ssh, т.е.

knife ssh -x username -P password 'name:' 'sudo chef-client'*

knife ssh -x root -P qwerty 'name:*' 'sudo chef-client'
person Anonymous    schedule 08.10.2018

Команда работала, как и ожидалось, после добавления полного имени (или имени узла) в файл hosts системы, из которой вы запускаете команду, в соответствии с тем, что зарегистрировано на шеф-сервере. (/etc/hosts в системах Linux и *nix. DNS также может/должен работать, с DNS не проверял).

То есть файл hosts chef-workstation должен содержать IP-адрес и полные имена всех узлов, зарегистрированных на Chef-сервере, и иметь возможность пинговать эти адреса. После некоторого осмотра оказывается, что команда knife ssh дойдет до сервера, чтобы запросить все узлы -> получить список адресов как полные доменные имена, а ЗАТЕМ -> выполнить команду на адресах, полученных как полные доменные имена (не ip- адреса). Рабочая станция должна иметь возможность разрешать эти полные доменные имена.

sudo knife ssh '*:*' "sudo chef-client"

Он будет запрашивать у вас пароль sudo для каждого узла один за другим, но будет работать параллельно.

person Lennin Marte    schedule 17.11.2020