knife ssh
не находит мои узлы. Я знаю, что это должно быть возможно, потому что, когда я могу их искать, я нахожу их
# knife search node name:*
2 items found
Node Name: web_01
...
Node Name: admin
...
Однако когда я бегу knife ssh
(Я покажу это с флагом отладки) Я получаю
# knife ssh "node:*" "uptime" -VV
DEBUG: Using configuration from /root/.chef/knife.rb
DEBUG: Signing the request as dev
DEBUG: Sending HTTP Request via GET to ec2-xx-xx-xx-xx.compute-1.amazonaws.com:4000/search/node
FATAL: No nodes returned from search!
(да, хозяин правильный, я его только что подверг цензуре).
Я пробовал изменять параметр QUERY и всегда получаю одни и те же результаты. Я пробовал:
Любые идеи?
Я понял. у моих узлов не было fqdn. Я должен был указать -a ipaddress
. сообщение об ошибке не помогло. Я понял это, отладив SSH-код ножа. также есть ошибка, что он не читает атрибут из файла конфигурации ножа. Я собираюсь открыть тикет о проблеме и, возможно, отправить патч.
Чтобы обойти это, я поместил имя хоста узла chef в мой файл / etc / hosts с указателем на IP-адрес. Например:
10.3.3.100 chef-client.int
Вы, конечно, всегда можете поместить его на DNS-сервер вместе с остальными узлами. Это полностью решило бы проблему.
Кроме того, если -a ipaddress
не работает, попробуйте -a cloud.public_ipv4
Мне показали это решение после того, как я выяснил, что knife ssh
пытался использовать внутренние IP-адреса для моих узлов, и до этого потребовалось несколько запросов в IRC-канале шеф-повара (#chef на irc.freenode.net) кто-то по имени retr0h показал мне это.
Пытаться knife ssh "id:*" "uptime"
.
Помни это knife ssh
по существу делает knife search node
, поэтому ваш запрос должен работать с knife search node
(т.е. knife search node "node:*"
не работает). knife ssh "role:*"
также должен работать, но только если вашим узлам назначены роли. Если на то пошло, ваш оригинал knife search node "name:*"
также должен работать, если вы измените назначение запроса для knife ssh
. Так, knife ssh "name:*" "uptime"
.
Ты когда нибудь пробовал knife ssh "name:*" "uptime"
?
Я использую Chef 10.x, и он мне подходит.
На мой взгляд, при использовании knife search [INDEX] [QUERY]
, первый параметр INDEX
используется для указания типа запрашиваемого элемента. При использовании knife ssh
команда, она знает, что вы пытаетесь искать узлы, поэтому все, что вам нужно сделать, это указать [QUERY]
часть, которая name:*
в твоем случае.
Я решил это, используя ssh / config и подключившись через fqdn.