Шаблоны виртуальных машин linux

Как создать шаблон виртуальной машины KVM

Из этой инструкции вы узнаете как создать шаблон виртуальной машины KVM. Шаблон виртуальной машины — это, копия установленной виртуальной машины. Которая пригодится, если вы хотите быстро развернуть несколько экземпляров виртуальных машин. Создание шаблона — это 3-х шаговый процесс, который включает в себя:

Давайте посмотрим, как это можно сделать.

Шаг 1: Установка KVM в Linux

Первое что мы сделаем это установим KVM в вашей системе.

Далее надо убедиться что libvirtd запущен и включен. А так же добавлен в автозагрузку системы.

$ sudo systemctl включить libvirtd

$ sudo systemctl start libvirtd

Проверьте работоспособность libvirtd.

$ sudo systemctl status libvirtd

Если вы используете систему Ubuntu или Debian, убедитесь, что образ vhost-net загружен.

Шаг 2: создайте виртуальный образ KVM

Прежде чем мы приступим к созданию шаблона, нам нужен установочный экземпляр. В командной строке с помощью команды qemu-img, мы создадим образ 20G CentOS 8 KVM , как показано на рисунке.

$ sudo qemu-img create-o preallocation=metadata-f qcow2 /var/lib/libvirt/images/centos8.qcow2 20G

Создание образа CentOS KVM

Для создания виртуальной машины CentOS 8 требуется использовать команду virt-install. Делайте так как показано на рисунке.

$ sudo virt-install —virt-type kvm —name centos8 —ram 2096

—disk /var/lib/libvirt/images/centos8. qcow2, format=qcow2

—network network=default

—graphics vnc,listen=0.0.0.0 —noautoconsole

—os-type=linux —os-variant=rhel7.0

—location=/home/tecmint/Downloads/CentOS-8-x86_64-1905-dvd1.iso

Создание Виртуальной Машины CentOS 8

От этого запускается экземпляр виртуальной машины. Вы можете проверить это перейдя в Virtual manager. Если вы откроете окно как показано на рисунке. То вы увидите страницу приветствия для установщика. Вам требуется завершить установку до самого конца.

Установка Виртуальной Машины CentOS 8

Шаг 3: Создание образа шаблона виртуальной машины KVM

После завершения установки войдите в виртуальную машину и обновите все системные пакеты.

Установите необходимые пакеты, которые необходимы для работы. В этом случае я установлю EPEL release, wget, curl, net-tools и vim. Конечно список программ для ваших нужд может отличаться.

$ sudo dnf install epel-release wget curl net-tools vim

Если вы собираетесь развернуть шаблон на облачной платформе, тогда вам потребуется установить пакеты cloud-init.

$ sudo dnf install cloud-init cloud-utils-growpart acpid

Далее отключите маршрут zeroconf.

$ echo «NOZEROCONF=yes» >>> /etc/sysconfig/network

Как только вы закончите, обязательно выключите виртуальную машину и очистите образ шаблона виртуальной машины, как показано ниже.

Virt-sysprep — это утилита командной строки, которая сбрасывает виртуальную машину для создания из нее клонов. Она удаляет такие записи как:

  1. Ключи хоста SSH.
  2. Файлы журналов.
  3. Учетные записи пользователей и некоторые постоянные сетевые конфигурации.

Чтобы использовать эту команду, вы должны убедиться, что виртуальная машина выключена.

Клонирование Виртуальной Машины CentOS 8

И последнее, введите команду, чтобы отменить определение домена виртуальной машины.

Читайте также:  Как установить темы для linux

Как создать шаблон виртуальной машины KVM

Образ шаблона теперь готов к клонированию и развертыванию.

Источник

How to Create a KVM Virtual Machine Template

A virtual machine template is essentially a copy of the installed virtual machine that comes in handy when you want to deploy multiple instances of virtual machines. Creating a template is a 3 step process that involves creating a virtual machine, installing all the requisites packages that you want to be installed, and finally cleaning up the template.

Let’s go ahead and see how you can accomplish this.

Step 1: Installing KVM in Linux

The first step is to install KVM on your system. We have comprehensive tutorials on:

Additionally, ensure that the libvirtd daemon is running and is enable to automatically kick on bootup.

$ sudo systemctl enable libvirtd $ sudo systemctl start libvirtd

Verify if the libvirtd daemon is running.

$ sudo systemctl status libvirtd

Verify libvirtd Status

If you are running a Ubuntu / Debian system, ensure that the vhost-net image is loaded.

Step 2: Create a KVM Virtual Image

Before we get to creating a template, we need to, first of all, have an installation instance. On the command-line, we are going to create a 20G CentOS 8 KVM image using the qemu-img command as shown.

$ sudo qemu-img create -o preallocation=metadata -f qcow2 /var/lib/libvirt/images/centos8.qcow2 20G

Create CentOS KVM Image

Next, use the virt-install command to create a CentOS 8 virtual machine as shown.

$ sudo virt-install --virt-type kvm --name centos8 --ram 2096 \ --disk /var/lib/libvirt/images/centos8.qcow2,format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=rhel7.0 \ --location=/home/tecmint/Downloads/CentOS-8-x86_64-1905-dvd1.iso

Create CentOS 8 Virtual Machine

This launches the virtual machine instance. You can confirm this by heading over to the virt-manager and opening the console window as shown. What you can see is the default welcome page for the installer. Be sure to complete the installation to the very end.

CentOS 8 Virtual Machine Installation

Step 3: Creating KVM Virtual Machine Template Image

Once the installation is complete, log into the VM and update all the system packages.

Install the prerequisite packages that you feel are essential to get started with. In this case, I will install EPEL release, wget, curl, net-tools, and vim. This may be different for your case.

$ sudo dnf install epel-release wget curl net-tools vim

If you intend to deploy your template on a cloud platform, install the cloud-init packages as shown.

$ sudo dnf install cloud-init cloud-utils-growpart acpid

Next, disable the zeroconf route.

$ echo "NOZEROCONF=yes" >> /etc/sysconfig/network

Once you are done, be sure to power off your virtual machine and clean up the VM template image as shown.

$ sudo virt-sysprep -d centos8

The virt-sysprep is a command-line utility that resets a virtual machine in order for clones to be made from it. It removes entries such as SSH host keys, log files, user accounts, and some persistent network configurations. To use the command, first, you must always make sure that the VM is powered off.

$ sudo virt-sysprep -d centos8

Clone CentOS 8 Virtual Machine

Lastly, invoke the command shown to undefine the VM domain.

$ sudo virsh undefine centos8

Undefine VM Domain

The template image is now ready for cloning and deployment.

Читайте также:  Подключение общей папки windows linux

Источник

Создание шаблона VMware vSphere для Ubuntu Server 18.04

В этой статье приводятся рекомендации по созданию шаблона виртуальной машины VMware vSphere Ubuntu Server 18.04.

Предварительные требования

Предполагается, что вы уже немного знакомы с VMware vSphere. В этом руководстве не рассматриваются рекомендации по VMware или Ubuntu.

  • Скачайте актуальный ISO-файл Ubuntu Server 18.04
  • VMware vSphere 6.5 и более поздней версии
  • Его можно использовать локально, но для ускорения развертывания отправьте файл в хранилище данных vSphere или в библиотеку содержимого vCenter.

Создание шаблона виртуальной машины Ubuntu 18.04

Развертывание и установка Ubuntu

  • Разверните новую виртуальную машину Снимок экрана: создание виртуальной машины VMware vSphere.Второй снимок экрана: создание виртуальной машины VMware vSphere.Третий снимок экрана: создание виртуальной машины VMware vSphere.Четвертый снимок экрана: создание виртуальной машины VMware vSphere.Пятый снимок экрана: создание виртуальной машины VMware vSphere.Шестой снимок экрана: создание виртуальной машины VMware vSphere.
  • Убедитесь, что в качестве гостевой ОС выбрано Ubuntu Linux (64-бит). Снимок экрана: гостевая ОС Ubuntu Linux (64-разрядная версия).
  • Укажите расположение ISO-файла Ubuntu server. Седьмой снимок экрана: создание виртуальной машины VMware vSphere.Восьмой снимок экрана: создание виртуальной машины VMware vSphere.
  • Включите виртуальную машину и запустите установку Ubuntu. Конкретных инструкций нет, но:
    • Рекомендуем использовать статический IP-адрес
    • Установите сервер OpenSSH Первый снимок экрана: установка UbuntuВторой снимок экрана установки Ubuntu.Третий снимок экрана: установка Ubuntu.Четвертый снимок экрана установки Ubuntu.Пятый снимок экрана установки Ubuntu.Шестой снимок экрана: установка Ubuntu.Седьмой снимок экрана установки Ubuntu.Восьмой снимок экрана: установка Ubuntu.Девятый снимок экрана: установка Ubuntu.Десятый снимок экрана установки Ubuntu.Одиннадцатый снимок экрана установки Ubuntu.Двенадцатый снимок экрана установки Ubuntu.Тринадцатый снимок экрана установки Ubuntu.Четырнадцатый снимок экрана: установка Ubuntu.Пятнадцатый снимок экрана установки Ubuntu.Шестнадцатый снимок экрана установки Ubuntu.Семнадцатый снимок экрана установки Ubuntu.Восемнадцатый снимок экрана: установка Ubuntu.Девятнадцатый снимок экрана: установка Ubuntu.Двадцатый снимок экрана: установка Ubuntu.Двадцать первый снимок экрана установки Ubuntu.

После установки

Перед преобразованием виртуальной машины в шаблон необходимо выполнить несколько действий.

sudo apt-get update sudo apt-get upgrade -y 
sudo sed -i 's/preserve_hostname: false/preserve_hostname: true/g' /etc/cloud/cloud.cfg sudo truncate -s0 /etc/hostname sudo hostnamectl set-hostname localhost 
sudo rm /etc/netplan/50-cloud-init.yaml 
cat /dev/null > ~/.bash_history && history -c sudo shutdown now 

Преобразуйте шаблон

Сократите количество ЦП виртуальной машины и ресурсы памяти до минимального значения и преобразуйте виртуальную машину в шаблон. Переключите дисковод оптических дисков на клиентское устройство, а также отключите его и преобразуйте виртуальную машину в шаблон.

Источник

Как создать cloud-init шаблон ОС Astra Linux в Proxmox

Вы когда-нибудь задумывались над тем, как вы создаете виртуальные машины?
Классический и самый банальный способ создания виртуальной машины (VM):

  1. Создать VM в гипервизоре
  2. Сконфигурировать параметры VM
  3. Примонтировать ISO-образ ОС, которую нужно установить на VM
  4. Запустить VM и установить ОС с ISO-образа
  5. Для упрощения будущей жизни, можно создать из данной VM шаблон (template)

Как правило, это долгий и скучный процесс, богатый ручной работой. Конечно, можно использовать Packer, но время установки это сократит лишь чуть-чуть.
При таком подходе, создание кластера из нескольких одинаковых VM может затянуться на долгое время, только из-за установки хостовой ОС.

Сейчас нас окружает мир облачных технологий, когда вы покупаете VM у одного из клауд-провайдеров, где все происходит быстро:

  1. Ввели имя пользователя, которого необходимо создать при инициализации VM
  2. Пароль или публичный ключ от создаваемого пользователя
  3. Нажали на кнопку «Создать»
  4. Вуаля! VM готова к работе! Без какой-либо установки и ручной конфигурации пользователя!

Вот для этого и были придуманы cloud-init образы. Сloud-init это программа для инициализации виртуальных машин, обычно применяющаяся в облачных платформах. Но использовать cloud-init можно и локально, например в Proxmox, который успешно поддерживает данную технологию.
Все что нам надо — cloud-init образ нужной ОС. Данная статья применима для любого cloud-init образа. Я покажу, как это делать на примере Astra Linux 1.7

План работы

  1. Качаем cloud образ Astra Linux 1.7 (можно создать самому, с использованием cloud-init, но это тема другой статьи)
  2. Создаем VM в Proxmox используя скачанный образ
  3. Конвертируем собранную VM в шаблон (template)
  4. Клонируем из шаблона полноценную VM
  5. Инициализируем VM через cloud-init
Читайте также:  Linux скрыть все окна

Качаем cloud образ Astra Linux 1.7

Интересующие нас образы я брал отсюда.

Заходим по ssh на наш Proxmox и качаем нужный нам образ, в моем случае — alse-vanilla-1.7.3-cloud-max-mg8.2.1.qcow2

wget alse-vanilla-1.7.3-cloud-max-mg8.2.1.qcow2

Создаем VM в Proxmox используя скачанный образ

qm create 700 --name "alse-vanilla-1-7-3-cloudinit-max-template" --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 qm importdisk 700 alse-vanilla-1.7.3-cloud-max-mg8.2.1.qcow2 local-lvm qm set 700 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-700-disk-0 qm set 700 --boot c --bootdisk scsi0 qm set 700 --ide2 local-lvm:cloudinit qm set 700 --serial0 socket --vga serial0 qm set 700 --agent enabled=1

Знакомых с синтаксисом управления Proxmox данные строчки удивить не должны.
Для начинающих поясню. В примере создается виртуальная машина с VMID=700 (можно указать любой, это просто идентификатор вашей VM), 2Gb RAM, 2 ядрами CPU, соответствующим сетевым интерфейсом.
Затем мы импортируем скачанный нами cloud образ Астры в локальное хранилище Proxmox и подключаем как диск к созданной VM. После этого подключаем cloud-init хранилище, для последующей инициализации.

Вы можете использовать любые нужные вам настройки или настраивать все в GUI. Все что надо — подключить диск со скачанным образом и cloud-init хранилище.

Конвертируем собранную VM в шаблон (template)

После всех подготовительных мероприятий создаем шаблон нашей ОС.

Клонируем из шаблона полноценную VM

Шаблоны нужны нам для клонирования VM, поэтому нажимаем ПКМ на созданном темплейте и выставляем мод «Full Clone».
Назвал я свою VM astra-test , вы можете как угодно обозвать.

Нажимаем «Clone» и дожидаемся окончания клонирования.

Инициализируем VM через cloud-init

После завершения клонирования VM, можно поправить настройки «железа» и увеличить размер диска.

Расширяем диск

Для этого в разделе Hardware нажимаем на Hard Disk -> Disk Action -> Resize.

Указываем нужный вам размер диска и нажимаем «Resize disk». Самое главное, что система сама займет и разметит нужное пространство при загрузке.

Теперь самое главное — переходим в раздел Cloud-init

Настраиваем cloud-init

В соответствующих полях задаем нужные нам параметры, которые мы хотим создать в системе во время запуска:

  • логин пользователя
  • пароль пользователя
  • настройки DNS
  • открытый SSH ключ пользователя
  • настройка сети (можно оставить DHCP, но я укажу IP-вручную)

Далее жмем «Regenerate Image».

Подготовительные мероприятия завершены, можно запускать VM для проверки!

Запускаем и проверяем VM

После запуска VM astra-test в статистике мы видим 2 IP-адреса: один получен от моего DHCP-сервера, второй мы задали сами.
Такое бывает, можно отключить DHCP уже в самой ОС.

Пробуем подключиться по SSH к нашей VM, используя адрес и креды, которые мы указывали при настройке cloud-init в Proxmox

Готово, даже hostname настроился сам, по имени виртуальной машины в Proxmox. И да, если переименовать VM, hostname изменится за вас сам.
Теперь можно натравливать свой Terraform с Ansible на данный шаблон и создавать кластеры из большого количества виртуальных машин за считанные минуты!

Надеюсь, что данная статья будет кому-то полезна, для упрощения и экономии времени на создание стендов, кластеров и т.д.

Источник

Оцените статью
Adblock
detector