web-dev-qa-db-ja.com

リブートせずにcloud-initを再実行する方法

Openstackを使用してVM using 'nova boot'コマンドを作成しています。イメージはcloud-initが有効になっています。cloud-のbashシェル形式である--user-dataスクリプトを渡します- VM起動時間中に実行するinit。これはすべて正常に行われます。今の私のユースケースは、VMを再起動せずに同じユーザーデータスクリプトを実行するためにcloud-initを再実行することです。/usr/bin/cloud-initオプションを見て、それらは特定のモジュールの実行について話しますが、同じユーザーデータスクリプトを実行させることはできません。

22
user3532850

Cloud-initをリセットするには、rm -rf /var/lib/cloud/instancesを実行する必要があります。

次に、cloud-init startを再実行すると、完全なブートスクリプトプロセスが再度実行されます。

23
benh57

これは検索結果にポップアップし続けているので、私にとって何がうまくいきますか:

  1. /var/lib/cloud/instances/i-xxxxxxx/semのセマフォを削除します。これらのファイルが存在する場合、cloud-initは再実行されません。
  2. /var/lib/cloud/instances/i-xxxxxxxx/scripts/part-001を編集します。これはユーザーデータスクリプトです。
  3. 実行only cloud-initのユーザースクリプトモジュール。これにより、ユーザーデータが再ダウンロードされることはありませんが、手順2で既にダウンロードされた(そして現在は変更された)スクリプトが実行されます。

    Sudo /usr/bin/cloud-init single -n cc_scripts_user

11
kadrach

コマンドが更新されたため、再実行するには、既存の構成をclean実行する必要があります。

Sudo cloud-init clean

次に、initディレクティブを使用して再実行します。

Sudo cloud-init init

注意:sshホストキーなどのものが再生成される可能性があります。

8
Pierz

Cloud-initのcloud-config部分のパッケージモジュールを実行するには、次のコマンドを実行できます。

# cloud-init-cfg all config

Cloud-initのcloud-config部分のruncmdモジュールを実行するには、次を実行できます。

# cloud-init-cfg all final
1
jrwren