tms-dos21-onl / aleksey-ivanishchev

Other
0 stars 0 forks source link

[HW36] Terraform (синтаксис) #37

Open AlexPykavy opened 4 months ago

AlexPykavy commented 4 months ago

Дедлайн: 24/07/2024

1. Написать шаблон для создания виртуальной машины, который использует удаленный gcs backend и принимает следующие переменные:
- machine_type - тип/размер виртуальной машины
- zone - название availability zone
- enable_public_ip - булевая переменная, регулирующая создание публичного IP адреса. Т.е. если она true, то публичный IP адрес для виртуальной машины создается, иначе - не создается. Использовать блок dynamic.
- image_family и image_project - семейство и проект образа виртуальной машины. Использовать блок google_compute_image для получения URI образа.

Создать Firewall правило, которое позволяет доступ к любому порту виртуальной машине с вашего публичного IP адреса, который определяется с помощью http data блока.
2. Изменить шаблон таким образом, чтобы он принимал на вход массив availability zones zones и поправить конфигурацию соответствующе. Т.е. теперь, если enable_public_ip установлена в true, то создаётся не один, а много публичных IP адресов. Использовать аттрибут for_each.
3. Добавить задержку перед созданием каждой VM с помощью ресурса time_sleep.
4. Добавить output переменную ip_addresses, которая будет содержать список перечисленных через запятую созданных публичных IP адресов для виртуальных машин.
5. Используя local-exec provisioner в null_resource выполнить stop всех созданных виртуальных машин с помощью утилиты gcloud.