説明
Ansible で新しい CloudFormation スタックを作成するには、リソースを定義したテンプレートが必要です。テンプレートがなければ、新規作成は失敗します。
既存スタックの更新は異なります。amazon.aws.cloudformation は、新しいテンプレート入力を省略すると以前のテンプレートを再利用できます。スタックの削除にも新しいテンプレートは不要です。
想定される影響
- 新規作成の失敗により、デプロイの処理が中断する場合があります。
- 意図せず既存テンプレートを再利用すると、予定したリソース変更が反映されない場合があります。
対処方法
- 新しいスタックには、
template_bodyやtemplate_urlなど、インストール済みモジュールが対応する入力を一つ指定してください。複数のテンプレート入力を重複して指定しないでください。 - 既存スタックではテンプレートを再利用するか置き換えるかを明確にし、変更内容を確認してください。新しい StackSet の作成時にも、対象モジュールの必須テンプレート入力を渡してください。
例
既存の例は新しいスタックの作成を想定しています。URL をアクセス可能な実際のテンプレートに置き換え、パラメーターと値をそのテンプレートと環境に合わせてください。
変更前
yaml
- name: CloudFormation 스택 생성
amazon.aws.cloudformation:
stack_name: ansible-cloudformation
state: present
region: us-east-1
disable_rollback: true
template_parameters:
KeyName: jmartin
DiskType: ephemeral
InstanceType: m1.small
ClusterSize: 3
tags:
Stack: ansible-cloudformation
新しいスタックではテンプレートがなく、作成できません。既存スタックなら以前のテンプレートを再利用できるため、操作の目的を確認してください。
変更後
yaml
- name: CloudFormation 스택 생성
amazon.aws.cloudformation:
stack_name: ansible-cloudformation
state: present
region: us-east-1
disable_rollback: true
template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
template_parameters:
KeyName: jmartin
DiskType: ephemeral
InstanceType: m1.small
ClusterSize: 3
tags:
Stack: ansible-cloudformation
template_url でテンプレートを指定します。テンプレートの有効性とアクセス権限も確認してください。