web-dev-qa-db-ja.com

'run_list add'、 'run_list remove'、および 'rackspace server delete'を実行すると、 'undefined method'例外が発生するのはなぜですか?

[元々これをopscodeフォーラムに投稿しましたが、応答がありません]

無料でホストされているchef-serverアカウントをテストしていますが、複数のサブコマンドが「予期しないエラー」で失敗しています。おそらく私のバージョンとサーバーのバージョンに互換性がありませんか?

OS:Ubuntu 12.04LTS

ローカルシェフ:10.12.0(gemを介してインストール)

ローカルRuby:1.8.7

また、ワークステーションマシンは手動で構成されていますが、私が実験しているクライアントは、Rackspaceプラグインを使用して起動されます(「kniferackspaceservercreate…」を使用)。ホストシェフと話しているときに問題のコマンドが失敗するようです。 -ただし、サーバーはクライアントを変更しようとする前に、問題が発生する場所ではないと思います。 「kniferackspaceserver create」によって起動された仮想サーバーは正しく起動されますが、knifeでそれらを削除すると失敗します。

サーバーの作成時にrun_listにレシピを含めると、レシピはrun_listに適切に追加されます。後で追加したり、サーバーが初期化されたものを削除しようとすると、これらのコマンドは失敗します。

関連するいくつかのコマンド(スタックトレース付き)の出力は次のとおりです。

https://Gist.github.com/7100ada3fd6690113697

3
Peter Groves

要旨を見ると(非常に役立ちますが、ところで!)、run_listの変更の構文が少しずれているようです。

一例では、以下を提供します。

knife node run_list remove rs-chefdemo-03 init_noop -VV

エラーはあまり役に立ちません、同意しました。

使用すべき正しい構文は次のとおりです。

knife node run_list remove rs-chefdemo-03 'recipe[init_noop]' -VV

これは、期待どおりに機能するはずです。

knife rackspaceコマンドに関しては、readmeに記載されているように、間違ったキーを使用していると思われます。

サーバー/インスタンスIDによって、現在構成されているRackspaceCloudアカウントの既存のサーバーを削除します。 「kniferackspaceserver list」と入力すると、インスタンスIDを見つけることができます。

したがって、これの正しい構文は次のようになります。

knife rackspace server delete 20950789 -VV

頑張ってください!

1
Mike Fiedler