Создание образа с помощью Packer
Packer позволяет создавать образы виртуальных машин с нужными параметрами при помощи конфигурационного файла. В качестве примера будет использован образ ОС Alt Linux P9 в формате QCOW.
-
Установите последнюю версию Packer.
Вы можете скачать Packer с зеркала VK Cloud.
-
Установите OpenStack CLI, если он еще не установлен. Убедитесь, что вы можете авторизоваться в облаке с его помощью.
-
Загрузите образ ОС Alt Linux P9 локально (файл
alt-p9-cloud-x86_64.qcow2
).
Используйте утилиту qemu-img
:
-
Установите
qemu-img
, если этого не сделано ранее:RHLE/CentosUbuntusudo yum install qemu-img
-
Запустите конвертацию файла с помощью команды:
qemu-img convert -f qcow2 -O raw alt-p9-cloud-x86_64.qcow2 alt-p9-cloud-x86_64.raw
Синтаксис команды конвертации приведен в официальной документации QEMU.
Импортируйте образ по инструкции.
-
Определите реквизиты сети и загруженного образа:
-
Получите идентификатор внешней сети, к которой будет подключена создаваемая виртуальная машина.
-
Скопируйте название загруженного образа, получив список образов с помощью команды
openstack image list
. -
Запишите полученные значения в переменные:
1export SOURCE_IMAGE=8b64c09b-7141-41ad-XXXX-9f5a8dbbd87e 2export NETWORK_ID=f19e1e54-bce9-4c25-XXXX-e0f40e2cff14
-
-
Создайте файл
altlinux.pkr.hcl
:altlinux.pkr.hcl
1variable "network_id" { 2 type = string 3 default = "${env("NETWORK_ID")}" 4 validation { 5 condition = length(var.network_id) > 0 6 error_message = <<EOF 7The NETWORK_ID environment variable must be set. 8EOF 9 } 10} 11 12variable "source_image" { 13 type = string 14 default = "${env("SOURCE_IMAGE")}" 15 validation { 16 condition = length(var.source_image) > 0 17 error_message = <<EOF 18The SOURCE_IMAGE environment variable must be set. 19EOF 20 } 21} 22 23source "openstack" "altlinux" { 24 flavor = "Standard-2-6" 25 image_name = "Alt-Linux-P9-Starter-Kit" 26 source_image = "${var.source_image}" 27 config_drive = "true" 28 networks = ["${var.network_id}"] 29 security_groups = ["default", "ssh"] 30 ssh_username = "altlinux" 31} 32 33build { 34 sources = ["source.openstack.altlinux"] 35 provisioner "shell" { 36 execute_command = "sudo {{ .Path }}" 37 inline = [ 38 "apt-get update", 39 "apt-get install -y irqbalance bash-completion bind-utils qemu-guest-agent cloud-utils-growpart", 40 "systemctl enable qemu-guest-agent" 41 ] 42 } 43}
-
Проверьте созданную конфигурацию с помощью команды:
packer validate altlinux.pkr.hcl
-
Запустите создание образа с помощью команды:
packer build altlinux.pkr.hcl
-
Дождитесь появления сообщения об успешной загрузке:
1==> Builds finished. The artifacts of successful builds are: 2--> openstack.altlinux: An image was created: c6320138-035f-40d8-XXXX-e814edb2ce5f
-
Запишите идентификатор
c6320138-035f-40d8-XXXX-e814edb2ce5f
— он понадобится на следующем шаге.
-
Установите метатеги созданному образу с помощью команды:
1openstack image set \ 2--property hw_video_model='qxl' \ 3--property hw_watchdog_action='reset' \ 4--property hw_vif_multiqueue_enabled='true' \ 5--property hw_qemu_guest_agent='yes' \ 6--property os_require_quiesce='yes' \ 7--property mcs_name='Alt Linux P9 Starter Kit' \ 8--property mcs_os_distro='debian' \ 9--property mcs_os_type='linux' \ 10--property mcs_os_version='P9' \ 11--property os_admin_user='altlinux' \ 12--property os_distro='altlinux-p9' \ 13--property os_type='linux' \ 14--property os_version='p9' \ 15c6320138-035f-40d8-XXXX-e814edb2ce5f
-
Убедитесь, что образ корректно отображается.
Личный кабинетOpenStack CLI- Перейдите в личный кабинет VK Cloud.
- Перейдите в раздел Облачные вычисления → Образы.
- Найдите образ в списке и нажмите на него. Откроется страница образа.
Образ также станет доступен при создании ВМ.
Если образ вам больше не нужен, удалите его.