1

ソフトウェアを AWS AMI にパッケージ化しようとしています。

ユーザーデータシステム全体を無効にすることなく、bashスクリプトが含まれていることを検出した場合にユーザーデータを実行するロジックをAMIで無効にしたいと思います(メタデータURL(169.254.169.254)を介してユーザーデータにアクセスしています)。

私の AMI は、Amazon Linux AMI x86_64 PV EBSを使用する (ami-5256b825) に基づいていますcloud-init 0.7.2-7.20

の次の行にコメントを付けようとしました/etc/cloud/cloud.cfg.d/defaults.cfgが、AWS AMI の作成プロセスにより、このファイルがデフォルト値で上書きされるようです。

 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user

注: 古い AWS AMI (たとえば、ami-5256b825) では、次の sed コマンドを使用してこれを行っていました。

sed -i 's/once-per-instance/never/g' /etc/init.d/cloud-init-user-scripts
4

1 に答える 1

1

実行する前に、cloud-init ロック ファイル (例: "/var/lib/cloud/sem/user-scripts.i-7f3f1d11") を作成できます。cloud-init は最後に実行され、ユーザー データを実行するためのこのロック ファイルが存在しないことを確認するため、ユーザー データは実行されません。「#!/bin/bash」で始まるユーザーデータにそれを条件付けることができます。

于 2014-05-26T22:40:07.840 に答える