Нож SSH не находит мои узлы

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 и всегда получать те же результаты. Я пробовал:

  • узел: *
  • Роль: *
  • *
  • *: *

Любые идеи?

12 голосов | спросил Max 4 Jam1000000amWed, 04 Jan 2012 11:45:51 +040012 2012, 11:45:51

5 ответов


16

Я понял это. у моих узлов не было fqdn. Мне нужно было указать -a ipaddress. сообщение об ошибке не помогло. Я понял это путем отладки кода ssh. есть также ошибка, что он не читает атрибут из файла конфигурации ножа. Я собираюсь открыть билет по этой проблеме и, возможно, отправить патч.

То, что я сделал, чтобы пройти мимо этого, было помещено имя хоста узла chef в файл /etc /hosts с указателем на IP-адрес. Например:

10.3.3.100 chef-client.int

Вы могли бы, конечно, всегда помещать его и в DNS-сервер вместе с остальными узлами. Это полностью решит проблему.

ответил Max 4 Jpm1000000pmWed, 04 Jan 2012 19:43:25 +040012 2012, 19:43:25
4

Кроме того, если -a ipaddress не работает, попробуйте -a cloud.public_ipv4

Мне было показано это решение после выяснения того, что knife ssh пытался использовать внутренние IP-адреса для моих узлов, и потребовалось некоторое задание в канал IRC шеф-повара (#chef на irc.freenode.net) до кто-то с именем retr0h показал мне это .

ответил jLi 25 J000000Wednesday12 2012, 08:40:48
0

Попробуйте 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".

ответил cjc 4 Jpm1000000pmWed, 04 Jan 2012 16:09:35 +040012 2012, 16:09:35
0

Вы когда-нибудь пробовали knife ssh "name:*" "uptime"?

Я использую chef 10.x, и он работает для меня.

По-моему, при использовании knife search [INDEX] [QUERY] первый параметр INDEX используется для указания типа запрашиваемого элемента. При использовании команды knife ssh она знает, что вы пытаетесь найти узлы, поэтому все, что вам нужно сделать, это указать [QUERY], которая в вашем случае name:*.

ответил ley 3 Jam1000000amThu, 03 Jan 2013 11:55:02 +040013 2013, 11:55:02
0

Я решил это, используя ssh /config и подключив fqdn.

ответил h4ck3rm1k3 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 06 Sep 2015 20:10:52 +0300 2015, 20:10:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132