Pythonから、私はサーバーを起動するためにナイフを使用しています。シェフサーバーで、ノードが完全にブートストラップされたときを判断する方法
knife ec2 server create -r "role[nginx_server]" --region ap-southeast-1 -Z ap-southeast-1a -I ami-ae1a5dfc --flavor t1.micro -G nginx -x ubuntu -S sg_development -i /home/ubuntu/.ec2/sg_development.pem -N webserver1
は、私はその後、ブートストラップが完了したときに、私はその後、新しく作成されたサーバを設定するのbotoや他のツールを使用することができるかどうかを確認するためにシェフ・サーバーのAPIを使用します。擬似コードは次のようになります。
cmd = """knife ec2 server create -r "role[nginx_server]...."""
os.system(cmd)
boot = False
while boot==False:
chefTrigger = getStatusFromChefApi()
if chefTrigger==True:
boot=True
continue with code for further proccessing
私の質問は...ノードが完全にシェフによって処理されたときに表示しますシェフ・サーバーでのトリガは何ですか?サーバーの名前を付けるために-Nを使い、そのプロパティをクエリしますが、何を探しますか?ブールはありますか?ステータス?
おかげ
jtimbermanの答えはあなたの質問に対応しています。 私は、このインスタンスを構成するために、なぜシェフ以外のbotoや他のツールを使用しているのかという大きな質問をします。 多分私は何かを見逃していますが、あなたはここでシェフの力を完全に利用していないようです。 –
一度起動すると、ノードがロードバランサに移動する前にタグ名を変更し、テストなどを行います。私はシェフでそれを行うことができると確信していますが、私はそれを行うためにスクリプトを監視することを好む。これはフェールオーバーソリューションです。この最大の理由は、私がシェフを使って失敗したEC2ノードを起動すると、それが正しく起動されていることを知る必要があるということです。ノードのブートストラップには約15分かかります。私は20時にタイムアウトします。もっと長い場合は、中止してもう一度やり直してください。私はシェフとランダムな理由で、時にはブートストラップが初めて仕事をしないことに気付きました。私はそれをシェフの爆弾と呼んでいます! – Tampa