다음에 나오는 Automation Assembler의 간단한 플러그인 기반 예제의 경우 계산 및 이미지 도우미를 통해 가상 시스템의 배치 및 게스트 운영 체제가 제어됩니다.

참고: 플러그인 기반 설계는 변경될 수 있는 베타 오퍼링이며 현재 AWS 플러그인과 GCP(Google Cloud Platform) 플러그인만 지원합니다.

1. 계정 및 영역 인프라 추가

us-east-1 및 us-west-2 클라우드 영역이 있는 AWS 클라우드 계정을 추가합니다. 각각 region-eastregion-west 영역에 태그를 지정합니다.

2. 이미지 매핑 인프라 추가

영역에 따라 서로 다른 식별자의 이미지를 가리키는 하나의 ubuntu 이미지 맵을 추가합니다.

이미지 매핑

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 기본 속성을 여기에서 추가로 구성할 수 있습니다. 구성하지 않는다면 이제 완료된 템플릿을 테스트하고 배포할 수 있습니다.