次に示す Automation Assembler のプラグイン ベースの簡単な例では、コンピューティング ヘルパーとイメージ ヘルパーが仮想マシンの配置とゲスト OS を制御します。

注: プラグイン ベース デザインはベータ版であり、変更される可能性があります。現在は、AWS プラグインと Google Cloud Platform (GCP) プラグインのみがサポートされています。

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) リソースではないことに注意してください。新しいリソースのコードには特殊なプリフィックスが付いています。

キャンバスへの EC2 リソースのドラッグ

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