Добавление роли к узлу не работает

Я следую точному синтаксису, но вижу странное поведение при добавлении роли в один из моих узлов.

Я запускаю следующую команду, которая в идеале должна добавить роль - веб-сервер к do_node

knife node run_list add do_node 'role[webserver]'

Но вместо этого возвращается следующее:

do_node:
 run_list: recipe[roles]

Также команда show node показывает, что что-то пошло не так:

Run List:    recipe[roles]
Roles:

Моя рабочая станция представляет собой машину Win7 и использует размещенного шеф-повара. Пробовал несколько раз, но одно и то же. Пробовал подробный вывод, который не раскрывает многого!


person Vishal Biyani    schedule 28.10.2014    source источник


Ответы (1)


Что, вероятно, происходит, так это то, что

role[webserver]

интерпретируется как глобус и завершается в каталоге «ролей» в вашем каталоге шеф-повара. Таким образом, с точки зрения ножа вы ввели:

knife node run_list add do_node roles

который он преобразует в «рецепт [роли]». Обычно одинарные кавычки избегают такого типа подстановки, но я видел проблему, возникающую с mingw. Вы можете подтвердить, что это проблема, попытавшись добавить роль, которая не будет соответствовать папке в вашем текущем каталоге:

knife node run_list add do_node 'role[foo]'

Лучший способ процитировать вашу исходную команду немного зависит от вашей оболочки и настройки терминала, но вы можете попробовать следующее:

knife node run_list add do_node '"role[webserver]"'

или (с двойными кавычками снаружи элемента списка выполнения)

knife node run_list add do_node "'role[webserver]'"

В системе отслеживания ошибок Chef есть ряд ошибок, связанных с этим. Вот один из них: https://tickets.opscode.com/browse/CHEF-4277.

person Steven D    schedule 28.10.2014
comment
Большое спасибо, это довольно близко - вы правильно заметили проблему. Хотя «роль [веб-сервер]» не работает на моей машине — делает то же самое, что и раньше! Необходимость - person Vishal Biyani; 29.10.2014
comment
Я думаю, что «роль [веб-сервер]» сработала вместо «роль [веб-сервер]» - person Vishal Biyani; 29.10.2014
comment
Как (я думаю) прокомментировал @vishal.biyani, "'role[webserver]'" (т.е. с двойными кавычками на снаружи) работал в окне терминала MINGW32 (Git Bash), но не с двойными кавычками на внутри. - person Kenny Evitt; 11.12.2015