次に示す 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 ネイティブ プロパティはこの後さらに詳細に構成できます。または、完成したテンプレートをこのままテストして展開します。