Knife SSHでノードが見つかりません


12

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パラメーターを変更しようとしても、常に同じ結果が得られます。私はもう試した:

  • ノード:*
  • 役割:*
  • *
  • *:*

何か案は?

回答:


16

私はそれを考え出した。私のノードにはfqdnがありませんでした。私は指定しなければなりませんでした-a ipaddress。エラーメッセージは役に立ちませんでした。knife sshコードをデバッグすることでそれを理解しました。ナイフ設定ファイルから属性を読み取らないというバグもあります。私は問題に関するチケットを開き、おそらくパッチを提出します。

この問題を解決するために行ったのは、シェフノードのホスト名を/ etc / hostsファイルにIPアドレスへのポインターと共に入れたことです。例えば:

10.3.3.100 chef-client.int

もちろん、他のノードとともに、常にDNSサーバーに配置することもできます。それは問題を完全に解決するでしょう。


7
他の読者のために明確にするために、「-a ipaddress」はリテラルです。knife sshFQDNではなくIPで接続するように思われます。この動作は愚かです-デフォルトでこのようにフォールバックするはずです。
スティーブベネット

@SteveBennett私はそれがデフォルトの動作であるべきことに同意します。私の投稿がいかに紛らわしいのかわかります。明確にしてくれてありがとう。
マックス

4

また、動作-a ipaddressしない場合は、試してください-a cloud.public_ipv4

knife ssh私のノードに内部IPアドレスを使用しようとしていることがわかった後、このソリューションが表示され、retr0h という名前の誰かがこれを見せてくれる前に、シェフIRCチャネル(irc.freenode.netの#chef)で尋ねました。


素晴らしい、ありがとう!@all ec2を実行しており、インスタンスがパブリックIPで作成されているが、ホスト名がローカルIPを指している場合は、次を使用しますknife ssh 'name:mydc1*' interactive -a node.node_name
。– Ilja

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"


1
回答のおかげで、私は賭けIDの両方のために、「いいえノード」:*と名前:*
マックス

OK、それは奇妙なことです(つまり、私にとってはうまくいきます)。検索で新しいオブジェクトを表示するために時々chef-solrを起動する必要がありましたが、「knife search node」から結果を取得している場合は、「knife ssh」で使用されている同じノードリストを取得する必要があります。結果リストが異なる場合、次にどこを探すべきかわかりません。
cjc

0

試してみたことはありますか knife ssh "name:*" "uptime"ますか?

私はシェフ10.xを使用していますが、それは私のために機能します。

私の意見では、を使用するknife search [INDEX] [QUERY]場合、最初のパラメーターINDEXは照会するアイテムのタイプを指定するために使用されます。knife sshコマンドを使用している間、ノードを検索しようとしていることを知っているので、あなたがしなければならないの[QUERY]name:*、あなたの場合である部分を指定することです。


@cjcの答えも同じだと思います。
レイ

0

ssh / configを使用してfqdnで接続することでこれを解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.