6

これは非常に基本的なタスクですが、ドキュメントが見つかりません。chef-serverとchefを使用してEC2マシンを起動しています。それが失敗した場合は、レシピを修正してから、ノードを取り出して再作成せずに、そのマシンに役割とレシピを再インストールしたいと思います。それを行うコマンドが見つかりません。

マシンでchef-clientを実行すると、次のようになります。

chef-client
[Wed, 18 Jan 2012 11:23:58 +0000] INFO: *** Chef 0.10.0 ***
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List is []
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List expands to []
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Starting Chef Run for gidsy-staging-web
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Loading cookbooks []
[Wed, 18 Jan 2012 11:23:59 +0000] WARN: Node gidsy-staging-web has an empty run list.
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Chef Run complete in 0.508629 seconds
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Running report handlers
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Report handlers complete

ありがとう

4

3 に答える 3

8

私は同じ問題に遭遇しました、そしてこれは私が問題を解決した方法です。

まず、knifeを使用して問題のロールをインスタンスに適用します。

$ knife node run_list add [NODE] [ENTRY]

Be sure and include the items in [ENTRY] in quotes (for example, "role[my-role]").

役割がEC2インスタンスに適用されたら、問題のインスタンスでchef-clientを呼び出します。

$ sudo chef-client

これにより、開発サイクルが大幅にスピードアップするはずです。

于 2012-01-20T22:51:23.937 に答える
2

ジョーダンの答えは本当に助けになりましたが、私のようなシェフを始めている人のために、もう少し詳しく説明します。

EC2で実行していますが、上記のエラーが発生していました。これは私がそれを解決するためにしたことです:

  1. ローカルマシンで、次knife ec2 server listのコマンドを実行して、EC2サーバー上のホストノードを取得します
  2. ローカル開発マシンからそのノードに実行リストを追加します。knife node run_list add i-xxxxx "role[aws-db-deploy]"ここで、i-xxxxxはノード名です。
  3. aws ec2インスタンスにSSHで接続し、次のコマンドを実行します。sudo chef-client

お役に立てれば

于 2013-08-26T14:17:22.733 に答える
0

runlistを使用してchef-clientを実行できます。

$ sudo chef-client --runlist <role>
于 2014-11-20T15:55:28.573 に答える