knife ssh
не находит мои узлы. Я знаю, что должен быть в состоянии, потому что, когда я могу искать их, я нахожу их
# knife search node name:*
2 items found
Node Name: web_01
...
Node Name: admin
...
Однако, когда я запускаю knife ssh
(я покажу это с флагом 'debug'), я получаю
# 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 и всегда получал одинаковые результаты. Я пробовал:
- узел:*
- роль:*
- *
- *: *
Есть идеи?
-a ipaddress
" буквально. По-видимому, он говорит,knife ssh
чтобы подключиться по IP, а не FQDN. Такое поведение глупо - по умолчанию оно должно быть отменено.Кроме того, если
-a ipaddress
не работает, попробуйте-a cloud.public_ipv4
Мне было показано это решение после того, как я выяснил, что
knife ssh
он пытается использовать внутренние IP-адреса для моих узлов, и потребовалось некоторое количество запросов в IRC-канале шеф-повара (#chef на irc.freenode.net), прежде чем кто-то по имени retr0h показал мне это .источник
knife ssh 'name:mydc1*' interactive -a node.node_name
Попробуй
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"
?Я использую шеф-повар 10.x, и он работает для меня.
На мой взгляд, при использовании
knife search [INDEX] [QUERY]
первый параметрINDEX
используется для указания типа запрашиваемого элемента. При использованииknife ssh
команды он знает, что вы пытаетесь найти узлы, поэтому все, что вам нужно сделать, это указать[QUERY]
часть, котораяname:*
в вашем случае.источник
Я решил это, используя ssh / config и подключившись через fqdn.
источник