CloudFormationテンプレートを作成しており、テンプレートで提供するユーザーデータスクリプトをデバッグしようとしています。 cloud-init
を手動で実行し、新しいインスタンスを起動するときと同じアクションを実行させるにはどうすればよいですか?
次のように実行できます。
/usr/bin/cloud-init -d init
これにより、初期モジュールでクラウドの初期設定が実行されます。 (-dオプションはデバッグ用です)実行する必要があるすべてのモジュールを実行する場合:
/usr/bin/cloud-init -d modules
これらを2回目に実行するときは、ブート時にすでに実行されているため、あまり実行されないことに注意してください。起動後に強制的に実行するには、コマンドラインから実行できます。
( cd /var/lib/cloud/ && Sudo rm -rf * )
古いバージョンでは、cloud-init init
は:
/usr/bin/cloud-init start
この質問は、cloud-initの古いバージョンに適用されますが、役に立つかもしれません: EC2インスタンスが起動するたびにcloud-init起動スクリプトを実行するにはどうすればよいですか?
Cloud init here のドキュメントは例を示しています。ただし、コマンドラインオプションや各モジュールについて説明しているわけではないため、目的の結果を得るには、構成内の異なる値をいじる必要があります。もちろん、コードも見ることができます。
ほとんどのLinuxディストリビューション(CentOSおよびUbuntuを含む)では、systemctlを使用してcloud-initサービスを再起動できます。
systemctl restart cloud-init
次に、ジャーナルの出力を確認して結果を確認します。
journalctl -f -u cloud-init
Kudusから@Ricoに、また、単一のモジュールを実行する場合-テストのため、またはディストリビューションがデフォルトでモジュールを有効にしないため(こんにちはPrecise!)
/usr/bin/cloud-init -d single -n <module-name>
たとえば、私のディストリビューションが実行されない場合write_files
デフォルトでは(多くの古いディストリビューションのように)、runcmdの先頭でこれを使用します。
runcmd:
- /usr/bin/cloud-init -d single -n write-files
[私はそれがOPに対する実際の答えではないことを知っていますが、私の問題を解決しようとするとき、この質問はトップの結果の1つでした。
rm -f /var/log/cloud-init.log \
&& rm -Rf /var/lib/cloud/* \
&& cloud-init -d init \
&& cloud-init -d modules --mode final