cfn-init
説明
cfn-init ヘルパースクリプトは、AWS::CloudFormation::Init
キーからテンプレートメタデータを読み取り、それに応じて次のように動作します。
-
CloudFormation のメタデータの取得と解析
-
パッケージのインストール
-
ディスクへのファイルの書き込み
-
サービスの有効化/無効化と開始/停止
cfn-init を使用して既存のファイルを更新すると、同じディレクトリに元のファイルのバックアップコピーが作成され、.bak という拡張子が付けられます。たとえば、/
を更新すると、そのアクションにより 2 つのファイルが生成されます。path
/to
/file_name
/
には元のファイルの内容が含まれ、path
/to
/file_name
.bak/
には更新された内容が含まれます。path
/to
/file_name
テンプレートメタデータについては、「AWS::CloudFormation::Init」を参照してください。
cfn-init は認証情報を必要としないので、--access-key
、--secret-key
、--role
、または --credential-file
オプションを使用する必要はありません。ただし、認証情報が指定されていない場合、CloudFormation はスタックのメンバーシップを確認し、そのインスタンスが属するスタックの呼び出し範囲を制限します。
構文
cfn-init --stack|-s
stack.name.or.id
\ --resource|-rlogical.resource.id
\ --regionregion
\ --access-keyaccess.key
\ --secret-keysecret.key
\ --rolerolename
\ --credential-file|-fcredential.file
\ --configsets|-cconfig.sets
\ --url|-uservice.url
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.proxy
\ --verbose|-v
オプション
名前 | 説明 | 必須 |
---|---|---|
|
スタック名またはスタック ID。 Type: String デフォルト: なし 例: |
はい |
|
メタデータを含むリソースの論理リソース ID です。 Type: String 例: |
はい |
|
使用する CloudFormation リージョンのエンドポイントです。 Type: String デフォルト: 例: |
いいえ |
|
CloudFormation の Type: String |
いいえ |
|
指定した AWS アクセスキーに対応する AWS シークレットアクセスキーです。 Type: String |
いいえ |
|
インスタンスに関連付けられた IAM ロールの名前です。 Type: String 条件: 認証情報ファイルパラメーターは、このパラメーターより優先されます。 |
いいえ |
|
シークレットアクセスキーとアクセスキーの両方を含むファイルです。認証情報ファイルパラメーターは、--role、--access-key、および --secret-key パラメーターよりも優先されます。 Type: String |
いいえ |
|
実行する configset のカンマ区切りリスト (実行順)。 Type: String デフォルト: |
いいえ |
|
使用する CloudFormation エンドポイントです。 Type: String |
いいえ |
|
HTTP プロキシ (非 SSL)。次の形式を使用します。 Type: String |
いいえ |
|
HTTPS プロキシ。次の形式を使用します。 Type: String |
いいえ |
|
詳細を出力します。cfn-init が初期化に失敗した場合のデバッグに役立ちます。 初期化イベントをデバッグするには、DisableRollback を有効にする必要があります。そのためには CloudFormation コンソールを使用し、[Show Advanced Options] (詳細オプションの表示) を選択して [Rollback on failure] (失敗時のロールバック) を [No] (いいえ) に設定します。次に、コンソールに SSH し、/var/log/cfn-init.log のログを読みます。 |
いいえ |
|
ヘルプメッセージを表示して終了します。 |
いいえ |
例
Amazon Linux の例
次のスニペットは、UserData
リソースに関連付けられた InstallAndRun
configset を実行する EC2 インスタンスの WebServerInstance
プロパティを示しています。
完全なサンプルテンプレートについては、「AWS CloudFormation による Amazon EC2 へのアプリケーションのデプロイ」を参照してください。
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -xe\n", "# Install the files and packages from the metadata\n", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref" : "AWS::Region" }, "\n" ]]} }
YAML
UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - | # Install the files and packages from the metadata - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+