OpenNebula/Создание образа
В данной статье рассмотрены примеры подготовки образов ОС Альт (Image for ALT Virtual Machines) в среде OpenNebula.
Методы добавления образов в облако:
- создание образов в среде OpenNebula из файла ISO-образа диска;
- использование шаблона из магазина приложений OpenNebula (marketplace).
Создание образа в среде OpenNebula из файла ISO-образа диска
Управлять образами можно в командной строке (команда oneimage) или в веб-интерфейсе (вкладка «Storage» → «Images»). Для создания образа ОС, необходимо подготовить ВМ и извлечь её диск.
В командной строке
1. Загрузить ISO-образ:
$ wget -O /var/tmp/alt-workstation-9.1-x86_64.iso https://mirror.yandex.ru/altlinux/p9/images/workstation/x86_64/alt-workstation-9.1-x86_64.iso
2. Создать два образа в хранилище данных.
$ onedatastore list
Создать образ типа CDROM в хранилище данных по умолчанию (ID = 1), для файла ISO-образа, загруженного на предыдущем шаге:
$ oneimage create -d 1 --name "ALT Workstation ISO" --path /var/tmp/alt-workstation-9.1-x86_64.iso --type CDROM
ID: 31
Создать пустой образ диска, на котором будет установлена операционная система (тип образа — DATABLOCK, размер 45 ГБ, драйвер qcow2):
$ oneimage create -d 1 --name "ALT Workstation" --type DATABLOCK --size 45G --persistent --driver qcow2
ID: 33
Просмотреть список образов:
$ oneimage list
3. Создать шаблон ВМ, который использует два созданных образа в качестве локальных дисков.
Создать файл template со следующим содержимым:
NAME = "ALT Workstation"
CONTEXT = [
NETWORK = "YES",
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ]
CPU = "0.25"
DISK = [
IMAGE = "ALT Workstation ISO",
IMAGE_UNAME = "oneadmin" ]
DISK = [
DEV_PREFIX = "vd",
IMAGE = "ALT Workstation",
IMAGE_UNAME = "oneadmin" ]
GRAPHICS = [
LISTEN = "0.0.0.0",
TYPE = "SPICE" ]
HYPERVISOR = "kvm"
INPUTS_ORDER = ""
LOGO = "images/logos/alt.png"
MEMORY = "1024"
MEMORY_UNIT_COST = "MB"
NIC = [
NETWORK = "VirtNetwork",
NETWORK_UNAME = "oneadmin",
SECURITY_GROUPS = "0" ]
NIC_DEFAULT = [
MODEL = "virtio" ]
OS = [
BOOT = "disk1,disk0" ]
SCHED_REQUIREMENTS = "ID=\"0\""
Создать шаблон:
$ onetemplate create template
ID: 22
Просмотреть список шаблонов:
$ onetemplate list
4. Создать экземпляр шаблона:
$ onetemplate instantiate 22
VM ID: 94
5. Подключиться к созданной ВМ через SPICE и установить ОС.
Подключиться К ВМ можно как из веб-интерфейса Sunstone, так и используя любой клиент SPICE: spice://192.168.0.190:5994
где 192.168.0.190 адрес хоста с ВМ, а 94 идентификатор ВМ (номер порта 5900 + 94).
6. Настроить контекстуализацию на ВМ.
OpenNebula использует метод, называемый контекстуализацией, для отправки информации на виртуальную машину во время загрузки. Контекстуализация позволяет установить или переопределить данные ВМ, имеющие неизвестные значения или значения по умолчанию (имя хоста, IP-адрес, .ssh/authorized_keys).
Для настройки контекстуализации на установленной ОС:
- Подключиться к ВМ через SPICE или по ssh.
- Установить opennebula-context:
# apt-get update # apt-get install opennebula-context
- Переключиться на systemd-networkd
- установить пакет systemd-timesyncd
# apt-get install systemd-timesyncd
- создать файл автонастройки всех сетевых интерфейсов по DHCP /etc/systemd/network/lan.network со следующим содержимым:
[Match] Name = * [Network] DHCP = ipv4
- переключиться с etcnet/NetworkManager на systemd-networkd:
# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
- установить пакет systemd-timesyncd
Перезагрузить систему. После перезагрузки доступ в систему будет возможен по ssh-ключу, ВМ будет назначен IP-адрес, который OpenNebula через механизм IPAM (подсистема IP Address Management) выделит из пула адресов.
7. Произвести необходимую настройку системы для дальнейшего использования (например, при подготовке шаблона ВМ для UDS необходимо установить и настроить openuds-actor, удалённый доступ).
8. Удалить ВМ и изменить тип диска с установленной ОС. После завершения установки и настройки системы следует выключить и удалить ВМ. Диск находится в состоянии Persistent, поэтому все внесенные изменения будут постоянными.
Удаление ВМ в командной строке:
$ onevm terminate 94
Изменить тип блочного устройства с «Datablock» на «OS» и в состояние «Non Persistent»:
$ oneimage chtype 33 OS
$ oneimage nonpersistent 33
9. Образ готов. Далее можно использовать как имеющийся шаблон, так и создать новый на основе образа диска «ALT Workstation».
В веб-интерфейсе
1. Загрузите ISO-образ:
$ wget -O /var/tmp/alt-workstation-9.1-x86_64.iso https://mirror.yandex.ru/altlinux/p9/images/workstation/x86_64/alt-workstation-9.1-x86_64.iso
2. Создать два образа в хранилище данных.
Создать образ типа CDROM в хранилище данных по умолчанию, для файла ISO-образа, загруженного на предыдущем шаге. Перейти в раздел «Storage»→«Images» («Образы ВМ»), нажать на «+» → «Create», в открывшемся окне заполнить поле «Name», выбрать тип образа «Readonly CD-ROM» («CD-ROM только для чтения»), хранилище, расположение образа «Path in OpenNebula Server», укажите путь к файлу (.iso), нажать кнопку «Create» («Создать»):
Создать пустой образ диска, на котором будет установлена операционная система. В разделе «Images», нажать на «+» → «Create», в открывшемся окне заполнить поле «Name», выбрать в выпадающем списке «Type» значение «Generic storage datablock», в выпадающем списке «This image is persistent» значение Yes», отметить в «Image Location» пункт «Empty disk image», установить размер выбранного блока, например 45GB, а также драйвер qcow2 и нажать кнопку «Create»:
3. Создать шаблон ВМ, который использует выше упомянутые два образа в качестве локальных дисков:
- в левом меню выбрать «Templates» → «VMs»,на загруженной странице нажать кнопку «+» и выбрать пункт «Create»;
- на вкладке «General» («Общие») необходимо указать параметры процессора, оперативной памяти, а также гипервизор:
- на вкладе «Storage» («Хранилище») укажите диск с установщиком ОС, далее добавьте новый диск и укажите ранее созданный пустой диск (DATABLOCK), развернуть «Advanced options» и в выпадающем списке «BUS» выбрать «Virtio»:
- на вкладке «Network» («Сеть») в поле «Default hardware model to emulate for all NICs» указать «virtio» и если необходимо выбрать сеть:
- на вкладке «OS&CPU» укажите архитектуру устанавливаемой системы, далее установите в качестве первого загрузочного устройства — пустой диск (DATABLOCK), а в качестве второго — CDROM (при такой последовательности загрузочных устройств при пустом диске загрузка произойдёт с CDROM, а в дальнейшем, когда ОС будет уже установлена на диск, загрузка будет осуществляться с него).
- на вкладке «Input/Output» («Ввод/Вывод») установите отметку на SPICE:
- на вкладке «Context» («Контекст»), укажите ваш открытый SSH (.pub) для доступа к ВМ по ключу (если оставить поле пустым, будет использована переменная $USER[SSH_PUBLIC_KEY]), включить параметр «Add Network contextualization», а также авторизацию по RSA-ключам:
- на вкладке «Scheduling» («Планирование») следует выбрать кластер/хост, на котором будет размещаться виртуальное окружение:
4. Создать экземпляр шаблона.
Для инициализации установки ОС из созданного шаблона в левом меню следует выбрать пункт «Templates» → «VMs», выбрать шаблон и нажать кнопку «Instantiate»:
В открывшемся окне необходимо указать имя ВМ и нажать кнопку «Instantiate»:
5. Подключиться к созданной ВМ через SPICE и установить ОС.
Подключиться к ВМ можно как из веб-интерфейса (раздел «Instances» → «VMs», нажать на кнопку «SPICE/VNC», находящуюся в крайнем правом столбце напротив соответствующей ВМ):
Так и используя любой клиент SPICE: spice://192.168.0.190:5994 где 192.168.0.190 адрес хоста с ВМ, а 94 идентификатор ВМ (номер порта 5900 + 94).
6. Настроить контекстуализацию на ВМ.
OpenNebula использует метод, называемый контекстуализацией, для отправки информации на виртуальную машину во время загрузки. Контекстуализация позволяет установить или переопределить данные ВМ, имеющие неизвестные значения или значения по умолчанию (имя хоста, IP-адрес, .ssh/authorized_keys).
Для настройки контекстуализации на установленной ОС:
- Подключиться к ВМ через SPICE или по ssh.
- Установить opennebula-context:
# apt-get update # apt-get install opennebula-context
- Переключиться на systemd-networkd:
- установить пакет systemd-timesyncd:
# apt-get install systemd-timesyncd
- создать файл автонастройки всех сетевых интерфейсов по DHCP /etc/systemd/network/lan.network со следующим содержимым:
[Match] Name = * [Network] DHCP = ipv4
- переключиться с etcnet/NetworkManager на systemd-networkd:
# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
- установить пакет systemd-timesyncd:
Перезагрузить систему. После перезагрузки доступ в систему будет возможен по ssh-ключу, ВМ будет назначен IP-адрес, который OpenNebula через механизм IPAM (подсистема IP Address Management) выделит из пула адресов.
7. Произвести необходимую настройку системы для дальнейшего использования (например, при подготовке шаблона ВМ для UDS необходимо установить и настроить openuds-actor, удалённый доступ).
8. Удалить ВМ и изменить тип диска с установленной ОС.
После завершения установки и настройки системы следует выключить и удалить ВМ. Диск находится в состоянии Persistent, поэтому все внесенные изменения будут постоянными.
Для удаления ВМ в левом меню следует выбрать пункт «Instances» → «VMs», выбрать ВМ и нажать кнопку «Terminate»:
Перейти в раздел «Storage»→«Images», выбрать образ с установленной ОС (ALT Workstation). Изменить тип блочного устройства с «Datablock» на «OS» и состояние на «Non Persistent»:
9. Образ готов. Далее можно использовать как имеющийся шаблон, так и создать новый на основе образа диска «ALT Workstation».
Использование магазина приложений OpenNebula
Для загрузки образа из магазина необходимо перейти в «Storage» → «MarketPlaces», выбрать «OpenNebula Public» → «Apps» (или сразу выбрать «Apps»). В списке необходимо выбрать подходящий образ диска, гипервизор (KVM). Внимательно изучите описание шаблонов готовых ВМ.