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.
Дедлайн: 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
.