В следующем простом примере с использованием подключаемого модуля в Automation Assembler помощники по вычислительным ресурсам и образам управляют размещением и гостевой ОС виртуальной машины.

Примечание: Проектирование на основе подключаемого модуля предлагается в бета-версии, которая может изменяться. В настоящее время поддерживаются только подключаемые модули AWS и Google Cloud Platform (GCP).

1. Добавление учетной записи и инфраструктуры зоны

Пользователь добавляет облачную учетную запись AWS с облачными зонами us-east-1 и us-west-2. Пользователь присваивает теги зонам region-east и region-west соответственно.

2. Добавление инфраструктуры сопоставления образов

Пользователь добавляет одно сопоставление образов ubuntu, которое указывает на образы с различными идентификаторами в зависимости от зоны.

Сопоставления образов

3. Добавление проекта

Пользователь создает проект. В раздел Provisioning проекта пользователь добавляет две зоны.

4. Запуск проекта

В Automation Assembler на вкладке Design пользователь запускает новый проект с пустого холста.

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. Готовый шаблон

В готовом примере используется следующий код. Следует отметить, что пользователь мог настроить инфраструктуру сопоставления конфигураций ресурсов, а также использовать помощник по конфигурации ресурсов, а не добавлять instance_type: t1.micro напрямую в ресурс EC2.

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

Здесь можно дополнительно настроить собственные свойства EC2 от AWS. В противном случае готовый шаблон готов к тестированию и развертыванию.