Практическая работа. Создаём образ виртуальной машины
Кратко:
- Установка Packer для создания образа виртуальной машины.
- Подготовка файла в формате HCL с спецификацией образа.
- Создание образа виртуальной машины на основе файла спецификации.
- Завершение создания виртуальной машины и проверка работы веб-сервера.
- Удаление виртуальной машины и сохранение созданного образа для последующих практических работ.
Практическая работа. Создаём образ виртуальной машины
В этой практической работе вы установите Packer, подготовите с его помощью образ, а затем создадите из образа виртуальную машину.
- Установите Packer. Дистрибутив для вашей платформы можно скачать из зеркала. Он поддерживает все популярные операционные системы — Windows, macOS, Linux и FreeBSD. Скачать дистрибутив Packer для вашей ОС можно, в том числе, с зеркала Yandex Cloud.
-
Подготовьте файл в формате HCL со спецификацией образа, например
my-ubuntu-nginx.pkr.hcl.При создании файла опирайтесь на документацию Packer.В качестве примера можете взять спецификацию из предыдущего урока:packer { required_plugins { yandex = { version = "~> 1" source = "github.com/hashicorp/yandex" } } } source "yandex" "ubuntu-nginx" { token = "<OAuth-токен>" folder_id = "<идентификатор_каталога>" source_image_family = "ubuntu-2004-lts" ssh_username = "ubuntu" use_ipv4_nat = "true" image_description = "my custom ubuntu with nginx" image_family = "ubuntu-2004-lts" image_name = "my-ubuntu-nginx" subnet_id = "<идентификатор_подсети>" disk_type = "network-ssd" zone = "ru-central1-a" } build { sources = ["source.yandex.ubuntu-nginx"] provisioner "shell" { inline = ["sudo apt-get update -y", "sudo apt-get install -y nginx", "sudo systemctl enable nginx.service"] } }
Не забудьте подставить в спецификацию идентификаторы своего каталога и подсети (подсеть должна быть в той же зоне доступности, которая указана в параметре
zone). Также укажите свой OAuth-токен (или воспользуйтесь переменной окружения YC_TOKEN при сборке образа).- Запустите команду установки плагина для работы с YC
packer init my-ubuntu-nginx.pkr.hcl -
Теперь создайте образ ВМ на основе файла спецификации:
packer build <путь_к_файлу_my-ubuntu-nginx.pkr.hcl> -
После того как команда отработает, убедитесь, что образ появился в каталоге. Для этого в консоли управления перейдите в сервис Compute Cloud. Найдите образ на вкладке Образы.

-
Перейдите на вкладку Виртуальные машины и начните создавать ВМ.Раньше для создания загрузочного диска вы выбирали один из публичных образов, например Ubuntu 20.04. Теперь вместо этого переключитесь на вкладку Пользовательские. Нажмите кнопку Выбрать и в открывшемся окне переключитесь на вкладку Образ.Выберите созданный образ и нажмите Применить.Из образа создастся загрузочный диск.

-
Завершите создание ВМ.
-
Убедитесь, что веб-сервер работает — введите IP-адрес ВМ в адресную строку браузера.
-
Удалите ВМ, в следующих уроках она не понадобится. А вот образ удалять не стоит.
Поздравляем, вы завершили тему «Packer»
Созданный образ пригодится вам для следующих практических работ. Так, шаг за шагом, вы будете накапливать знания и навыки, которые помогут вам эффективнее управлять облачной инфраструктурой и решать всё более сложные задачи.