質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Chef

ChefはRuby等で書かれた構成管理ツールです。 システム構築や、運用作業を自動化してくれます。

knife

knifeは、サーバ管理ツールであるChefと一緒にインストールされる、 サーバ上にあるデータを編集するためのコマンドラインツールです。 主に、Chefのクライアントサーバーモデルで使用されます。

Q&A

1回答

5484閲覧

knife ssh接続ができない時トラブルシューティング

Kimsehwa

総合スコア312

Chef

ChefはRuby等で書かれた構成管理ツールです。 システム構築や、運用作業を自動化してくれます。

knife

knifeは、サーバ管理ツールであるChefと一緒にインストールされる、 サーバ上にあるデータを編集するためのコマンドラインツールです。 主に、Chefのクライアントサーバーモデルで使用されます。

0グッド

1クリップ

投稿2015/08/04 15:46

knife ssh か
knife zero chef_client
をすると以下のようなエラーが出ています。

knife zero chef_client 'name:*' -x ec2-user -i xx.pem --sudo FATAL: 1 nodes found, but does not have the required attribute to establish the connection. Try setting another attribute to open the connection using --attribute.

この場合、どのように原因を調べばよろしいですか。

色々調べて -a にchef-client側のIPを指定してもダメでした。

後interface名を指定すれば直ったという記事を見て以下のようにすると
別のエラーが発生しています。

knife zero chef_client 'name:*' -x ec2-user -a network.interfaces.eth0.addresses.keys.rotate.first --sudo
ERROR: knife encountered an unexpected error
This may be a bug in the 'zero chef client' knife command or plugin
Please collect the output of this command with the -VV option before filing a bug report.
Exception: NoMethodError: undefined method `has_key?' for ["0A:CD:6E:65:5C:05", "10.7.2.10", "fe80::8cd:6eff:fe65:5c05"]:Array

秘密鍵とかに問題があるのかと思ってテキストのパスワードを設定してもこんなエラーが出てます。

knife zero chef_client 'name:*' -x root --sudo -z -p xxx
FATAL: 2 nodes found, but does not have the required attribute to establish the connection. Try setting another attribute to open the connection using --attribute.

chef-zero -> chef-clientにssh接続できればこのコマンドは当たり前に接続できると思ったですが、僕の認識間違いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自分は chef 初心者なのでどこまでお役に立てるか分かりませんが、

どのように原因を調べばよろしいですか。

との事でしたので、エラーメッセージを元に「解決の糸口」を検索サイト(google)から引き出すためのヒントを少し。

当たり前のことですが、

  • 検索キーワードが長すぎる(単語が多すぎる)と、ヒットする情報が激減する
  • 一方、短すぎる(単語が少なすぎる)と、情報の洪水に埋もれて目的の情報が見つけられなくなる
  • 複数の単語(or 複数の音節からなる長い単語)を指定すると、検索エンジンが勝手に分割して「関連性のある情報」をより多くヒットさせようとするので、予想外の情報(いわゆるノイズ)がヒットする

以上のような google の『癖』を考慮し、以下のようなポリシーで「試行錯誤」を繰り返してみます。

  • エラーメッセージの「主要なフレーズ」を使ってそのまま検索する
  • 検索結果をざっと眺めて、めぼしい情報が得られていないかを確認する
  • ノイズが多い場合は、フレーズが勝手に分割されないように「"」で括ってみる
  • 検索結果が多ければキーワードを追加し、逆に少なすぎれば重要度の低いキーワードを削ってみる
  • 検索結果が思わしくなければ、キーワードの重要度に沿って「順序」を入れ替えてみる

(※ この時、検索結果が思わしくなくてもガッカリしたりせず、検索に使えそうなキーワードが一つでも見つかれば儲けものくらいの気持ちで根気よく検索する)
…などなど。

言葉にするのはなかなか難しいのですが、上記のようなザックリとしたポリシーで少し検索してみました。

① まず、分からないながらもエラーメッセージをじっと眺めると、以下のフレーズが目に付きます。
(最初は難しい部分ですが、何度か繰り返すと要領が掴めます)
does not have the required attribute 〜

chef"does not have the required attribute" で検索してみる
パッとしませんね…この質問のページが上位にヒットしたりしています。

③ 結果がパッとしないので、まずは chef ssh 使い方 で検索し「使えそうなキーワード」を拾ってみます。
そうすると、意外にも以下のような関連性の高い情報がヒットしました!
knife(chef)のsshでホスト名以外のattributeを使う
中をザッと見ると IPが引けないとこうなる という気になるフレーズが見つかりました。
それと ohaiで取れる別のattributeを使う というフレーズもヒントになりそうです。
↑こうした使えそうなキーワードやフレーズを嗅ぎつける能力は、懲りずに検索し続けると身に着きます。

ちなみに、knife ssh attribute で検索しても、上記のページがトップでヒットしました。

④ 今度は knife ohai で検索し、ちょっと辛抱してよ〜く眺めてみます。
そうすると、下記の2つの記事を見つけました。
hef の node.name が fqdn に設定している行を探る。
→ 対処法については To be continued とあったが、残念ながら続きの記事が見つからず…

Chef Server が FQDN を取得できない時の対処法

でもって、検索結果を簡単にまとめてみると

  • ホスト名で接続に行くので、IPが引けないとこうなる
  • クライアント側サーバーの /etc/hosts で自分の IP と hostname を定義すると解決(するらしい)

ということが分かりました。

環境が無いので確認していませんが、よろしければ試してみてください。

投稿2015/08/05 15:14

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問