1

シェフの機能を使用して、cloud-init でユーザー データ スクリプトを作成しようとしています。私は制限に遭遇しました。それを回避する方法があるかどうか疑問に思っています。シェフサーバーは一意の名前を持つクライアントのみを受け入れるため、ノード名は一意である必要があります。日時変数またはインスタンス ID を渡すためにいくつかのことを試みましたが、変数を node_name セクションに渡すことができないようです。

node_name: "server-app-$INSTANCE_ID"

また

node_name: "server-app-$(date +%s)"

文字通り解釈されないようにこれをエスケープする方法はありますか?

Chef encountered an error attempting to create the client "server-app-$INSTANCE_ID"
4

1 に答える 1

0

を書き出す前に、展開を行う必要がありますclient.rb

echo "node_name '$(date +%s)' >> /etc/chef/client.rb"

2 台のマシンが同じ秒で起動した場合でも衝突する可能性があるというわけではありません。代わりに EC2 インスタンス ID または IP アドレスを使用することを強くお勧めします。これらはメタデータ サーバーから取得できます。例については、 https://github.com/coderanger/brix/blob/master/packer/client-bootstrap.sh#L26-L37を参照してください。

于 2015-01-09T21:25:29.430 に答える