EC2 AMIでは、ユーザーデータを一度だけ実行できることを読みました。 EC2 インスタンスでカスタム AMI を生成する場合、カスタム AMI でユーザーデータスクリプトを実行することはできません。 Ubuntuインスタンスでは、/var/lib/cloud/*を削除し、カスタムAMIを作成し、カスタムAMIからユーザーデータを実行できます。 FreeBSDで/var/lib/cloud/*に対応するエントリが見つかりません。
カスタムFreeBSD AMIでuserdataを実行する方法、またはuserdataスクリプトを再実行できるようにAMIを生成する方法はありますか?
Linuxには#cloud-boothookがありますが、FreeBSDでは私のニーズに合わないconfiginitだけが見つかりました。インスタンスを起動すると、コマンドラインからユーザーデータスクリプトにパラメータを渡します。
ベストアンサー1
AWS の FreeBSD AMI は、他の AMI と同じレベルの user_data スクリプトサポートを提供しません。指摘したように、#cloud-boothook
user_dataはサポートされておらず、起動後に渡されたuser_dataは無視されます。
簡単な解決策は次のとおりです。
sed -i '' '/KEYWORD: *firstboot$/d' /usr/local/etc/rc.d/ec2_configinit
これはハッキングです。これで、インスタンスはタグなしのスクリプトを含むすべてのuser_dataスクリプトを実行します#cloud-boothook
が、私の意見ではスクリプトのデフォルトの動作よりはるかに優れています。人々はいつもec2_configinit
にアクセスできます/etc/rc.conf
。