9

cloud-init/cloud-config を使用して OpenStack ボックスを構成しています。使用を開始する前に、完全に構成されるまで待つつもりです。

これは、いくつかのマーカー ファイルを使用したり、cloud-init プロセスがまだ実行されているかどうかを検出したりするのはそれほど難しいことではありませんが、すべての cloud-init スクリプトでこれを行うのは非常に面倒に思えます。何かおすすめの方法はありますか?理想的には、cloud-init によってネイティブにサポートされていますか?

4

5 に答える 5

3

もう 1 つの方法は、cloud-init電話が終了したらホームに戻すことです。

于 2016-04-19T12:24:17.957 に答える
2

@flyxiao が指摘したように、cloud-init はステータス情報をファイルシステムの専用ディレクトリに置きます(最後の init プロセスを記述することが保証されているため、/run/cloud-init/優先されます)。すべての初期化フェーズに関する詳細が含まれており、初期化全体が完了したことを示します。プロジェクトのドキュメントでは、cloud-init の完了を検出するための Python スクリプトが提案されています。/var/lib/cloud/data/status.jsonresult.json

 fin = "/run/cloud-init/result.json"
 if os.path.exists(fin):

   ret = json.load(open(fin, "r"))

   if len(ret['v1']['errors']):

     print "Finished with errors:" + "\n".join(ret['v1']['errors'])

   else:

     print "Finished no errors"

 else:

   print "Not Finished"
于 2016-02-20T07:02:54.350 に答える
1

/var/lib/cloud/data/status.json で cloud-init のステータスを確認できます。または、ホストが upstart を使用している場合は、/etc/init/newprocess.conf に 1 つの init プロセスを追加し、cloud-final の後に newprocess.conf を開始する必要があります。

于 2016-02-18T08:58:52.470 に答える