次に示す Automation Assembler のプラグイン ベースの簡単な例では、コンピューティング ヘルパーとイメージ ヘルパーが仮想マシンの配置とゲスト OS を制御します。
1. アカウントとゾーン インフラストラクチャを追加する
クラウド ゾーン us-east-1 と us-west-2 で AWS クラウド アカウントを追加します。また、それぞれのゾーンに region-east および region-west というタグを付けます。
2. イメージ マッピング インフラストラクチャを追加する
ubuntu イメージ マップを 1 つ追加します。このイメージ マップは、ゾーンに応じて識別子が異なるイメージを参照します。
3. プロジェクトを追加する
プロジェクトを作成します。プロジェクトの [プロビジョニング] に 2 つのゾーンを追加します。
4. デザインを開始する
Automation Assembler の [デザイン] タブで、空のキャンバスから新しいデザインを開始します。
5. キャンバスにヘルパーを追加する
コンピューティング ヘルパーとイメージ ヘルパーをキャンバスにドラッグします。
6. ヘルパーを構成する
ヘルパーのコードに ubuntu イメージと、region-west に一致する制約タグを追加します。従来のワークフローでは、これらのプロパティはリソースに直接追加していました。
Allocations_Image_1:
type: Allocations.Image
properties:
image: ubuntu
Allocations_Compute_1:
type: Allocations.Compute
properties:
constraints:
- tag: region-west
7. キャンバスに仮想マシン リソースを追加する
AWS EC2 リソースをキャンバスにドラッグします。これは (Classic) リソースではないことに注意してください。新しいリソースのコードには特殊なプリフィックスが付いています。
8. リソースをヘルパーにいバインドする
ユーザーはデザイン キャンバスで、割り当てヘルパーを始点、EC2 インスタンスを終点とする接続を描いて、プロパティ バインドを追加します。これらのプロパティ バインドは、ヘルパーによって定義済みのインフラストラクチャを参照します。選択はヘルパーによって行われるため、このバインドには selected という単語が含まれています。
Idem_AWS_EC2_INSTANCE_1:
type: Idem.AWS.EC2.INSTANCE
properties:
name: db-demo
account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
region: ${resource.Allocations_Compute_1.selectedRegion.name}
image_id: ${resource.Allocations_Image_1.selectedImageId}
instance_type: t1.micro
デザイン キャンバスで、点線によってリソースがヘルパーに接続されます。
9. テンプレートを完成させる
完成したテンプレートでは次のコードが使用されます。EC2 リソースに instance_type: t1.micro を直接追加する代わりに、フレーバー マッピング インフラストラクチャを構成してフレーバー ヘルパーを使用する方法もあります。
formatVersion: 1
inputs: {}
resources:
Allocations_Image_1:
type: Allocations.Image
properties:
image: ubuntu
Allocations_Compute_1:
type: Allocations.Compute
properties:
constraints:
- tag: region-west
Idem_AWS_EC2_INSTANCE_1:
type: Idem.AWS.EC2.INSTANCE
properties:
name: db-demo
account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
region: ${resource.Allocations_Compute_1.selectedRegion.name}
image_id: ${resource.Allocations_Image_1.selectedImageId}
instance_type: t1.micro
AWS の EC2 ネイティブ プロパティはこの後さらに詳細に構成できます。または、完成したテンプレートをこのままテストして展開します。