web-dev-qa-db-ja.com

AWSカスタムAMIがuserdataスクリプトを実行していません

私たちはAMIをベイクし、最近、インスタンスの起動が完了してサービスを開始したときにクラウド形成を通知するために、いくつかのユーザーデータスクリプトを実行したいと考えていました。私はこれを行うためにcfn-signalを使用しています。元のubuntuイメージではスクリプトが実行されますが、カスタムAMIをベイク処理した後、ユーザーデータスクリプトは実行されません。

スクリプトの先頭に「#cloud-boothook」を配置すると実行されますが、実行が非常に早いため、マシンが起動したことを通知するのに役立ちません。誰かが、それがマシンの最初の起動であることをcloudinitに示すフラグまたはファイルがどこにあるかを知っていることを望んでいます。

また、提案されたように構成を変更してみました ここ

AMI作成プロセスの前に削除できるフラグまたはファイルが必要であることはわかっていますが、フラグまたはファイルが何であるかに関する情報を見つけることができません。

2
jjhughes57

テストしたところ、/var/lib/cloudディレクトリにbootstrapデータがありました。そのディレクトリをクリアした後、ユーザーデータスクリプトは正常に機能しました。

rm -rf /var/lib/cloud/*
2
jkim

この間、cloud-initが実行されていないことを確認する必要があります。それ以外の場合は、再度削除する必要があります。

これは、ユーザーデータ内の/var/lib/cloud/を削除しようとする場合に特に当てはまります。この場合、次のようなものを使用する必要があります。

echo "rm -rf /var/lib/cloud/*" | at now + 1 min

ユーザーデータスクリプトの最後。