Создание собственного образа в Yandex.Cloud с использованием Packer.

Создание собственного образа в Yandex.Cloud с использованием Packer.

Ссылка на документацию YC: https://cloud.yandex.ru/docs/tutorials/infrastructure-management/packer-quickstart

Packer позволяет создавать образы дисков виртуальных машин с заданными в конфигурационном файле параметрами. Сценарий описывает создание образа диска с помощью Packer.

Packer устанавливаем из репозитория YC.

Для создания образа потребуются folder-id, token — получаем командой yc config list

А также ID подсети (subnet_id) — подсеть создаём командой
yc vpc subnet create --name netology-subnet-a --zone ru-central1-a --range 10.1.2.0/24 --network-name netology --description "my first subnet via yc"

ID получаем командой yc vpc subnet list

Примеры использования yc можно посмотреть по ссылке.

Packer для создания образов использует файл описания в формате json.
Пример файла для создания собственного образа CentOS 7 ( centos-7-base.json ):

{
  "builders": [
    {
      "disk_type": "network-nvme",
      "folder_id": "b1giv01e8j41n6fkprqq",
      "image_description": "by packer",
      "image_family": "centos",
      "image_name": "centos-7-base",
      "source_image_family": "centos-7",
      "ssh_username": "centos",
      "subnet_id": "e9bev8vvi5vcq824c85k",
      "token": "1234567890",
      "type": "yandex",
      "use_ipv4_nat": true,
      "zone": "ru-central1-a"
    }
  ],
  "provisioners": [
    {
      "inline": [
        "sudo yum -y update",
        "sudo yum -y install bridge-utils bind-utils iptables curl net-tools tcpdump rsync telnet openssh-server"
      ],
      "type": "shell"
    }
  ]
}

Выполняем инициализацию packer:
$ packer init

Проверяем файл на наличие ошибок:
$ packer validate centos-7-base.json

И собираем образ:
packer build centos-7-base.json

Сборка занимает несколько минут.

Проверяем наличие образа в YC:
$ yc compute image list
+----------------------+---------------+--------+----------------------+--------+
| ID | NAME | FAMILY | PRODUCT IDS | STATUS |
+----------------------+---------------+--------+----------------------+--------+
| fd8k9fs2f2c9t4839rda | centos-7-base | centos | f2e99agij1uhrk2ioilk | READY |
+----------------------+---------------+--------+----------------------+--------+

Nicko

Добавить комментарий