В следующем простом примере с использованием подключаемого модуля в Automation Assembler помощники по вычислительным ресурсам и образам управляют размещением и гостевой ОС виртуальной машины.
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)
. Новые ресурсы имеют специальный префикс в коде.
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. В противном случае готовый шаблон готов к тестированию и развертыванию.