Подготовка образа для разворачивания облачного сервера
Перед созданием облачного сервера из образа необходимо провести предварительную настройку. Это гарантирует успешную установку и надежную работу панели управления.
В следующем разделе рассмотрим необходимые проверки и настройки для успешного разворачивания сервера.
На нашем репозитории GitHub вы можете найти образцы конфигураций сборочной системы Packer для автоматической сборки виртуальных машин.
Основные Настройки
Таблица Разделов
Убедитесь в правильной структуре разделов на диске. Мы рекомендуем использовать разделы MBR или GPT, так как они поддерживаются большинством дистрибутивов Linux и могут быть настроены с помощью командных инструментов, таких как fdisk, gdisk и другие.
gdisk -l /dev/vda
Пример вывода:
GPT fdisk (gdisk) version 1.0.5
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
Если используется другая структура разделов, возможно, потребуется пересоздание образа с правильной конфигурацией.
Разметка Диска
Если на диске есть только один раздел (корневой), и он использует файловую систему ext3 или ext4, при установке сервера из образа будет выполнено автоматическое изменение размера файловой системы. Она будет расширена до размера диска, указанного в конфигурации сервера.
Например, если размер блочного устройства в образе составляет 10 Гб, а размер диска при установке указан как 15 Гб, блочное устройство и файловая система будут автоматически увеличены до 15 Гб.
Расширение файловой системы не будет выполнено, если используется LVM (Logical Volume Manager).
Загрузчик ОС
Для запуска виртуальных машин мы используем SeaBIOS, поэтому в ОС должен быть установлен обычный загрузчик для BIOS. Если установлен UEFI-загрузчик, его следует удалить и установить загрузчик для BIOS.
Если вы используете GRUB2, найдите инструкции по установке и настройке здесь.
Настройка /etc/fstab
Для обеспечения стабильной работы системы необходимо выполнить настройку файла /etc/fstab для корневого раздела с использованием монтирования по UUID. Пример:
UUID=f19002a1-6e7a-45ac-91cd-24b7cc0e4cd9 / ext4 defaults 0 1
Для получения UUID раздела, можно воспользоваться командой:
blkid
Пример вывода:
/dev/vda1: UUID="f19002a1-6e7a-45ac-91cd-24b7cc0e4cd9" TYPE="ext4" PARTUUID="f7a1fae1-01"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
Наличие основного пользователя
При создании сервера будет сгенерирован пароль для пользователя root (или Администратор в случае Windows). Убедитесь, что такой пользователь существует. Обычно пользователь существует, если он не был удален специально.
Наличие qemu-guest-agent
Проверьте наличие и запущенный статус службы qemu-guest-agent. Она необходима для выполнения определенных операций из панели управления, например, для создания резервных копий.
- Проверка статуса службы.
Systemd:
systemctl status qemu-guest-agent.service
OpenRC и init.d:
/etc/init.d/qemu-guest-agent status
или:
service qemu-guest-agent status
- Установка агента, если его нет в системе:
Debian/Ubuntu:
apt-get install qemu-guest-agent
CentOS / RHEL:
yum install qemu-guest-agent
Alpine Linux:
apk add qemu-guest-agent
- Добавление в автозагрузку:
Systemd:
systemctl enable qemu-guest-agent.service
init.d:
chkconfig --add qemu-guest-agent
OpenRC:
rc-update add qemu-guest-agent
Для Windows вам необходимо установить эту службу с использованием специального ISO-образа, который можно загрузить здесь. С его помощью вы также можете установить virtio-драйверы, которые необходимы для поддержки виртуализированных устройств.
Эти настройки достаточны для создания облачного сервера из образа. Однако рекомендуется выполнить остальные настройки для более удобной работы с сервером.
Дополнительные настройки
Установка Zabbix
Для сбора информации с серверов мы применяем агент Zabbix. Для установки Zabbix и отображения статистики в панели управления, вы можете воспользоваться следующим скриптом:
wget -O - http://zabbix.repo.timeweb.ru/zabbix-install.sh | bash
Сетевые настройки
После запуска сервера важно обеспечить его доступность в сети. Для этого настроим DHCP-клиент для автоматического получения IP- и IPv6-адресов.
В большинстве систем DHCP-клиент уже установлен по умолчанию, но мы рекомендуем использовать утилиту dhclient с настройками, указанными ниже:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option dhcp6.next-hop code 242 = ip6-address;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers, dhcp6.next-hop;
timeout 300;
Доступ по SSH
Поскольку для удаленного доступа к серверу обычно используется протокол SSH, важно проверить, что SSH установлен и запускается при загрузке сервера.
- Проверка статуса:
Systemd:
systemctl status ssh.service
OpenRC и init.d:
/etc/init.d/ssh status
или:
service ssh status
- Установка SSH, если его нет:
Debian/Ubuntu:
apt-get install openssh-server
CentOS / RHEL:
yum -y install openssh-server openssh-clients
Alpine Linux:
apk add openssh
- Добавление в автозагрузку:
Systemd:
systemctl enable ssh.service
Init.d:
chkconfig --add ssh
OpenRC:
rc-update add sshd
- Также убедитесь, что в используемом брандмауэре разрешен доступ к порту SSH (по умолчанию — 22).
Отключение swap
Рекомендуется отключить файл подкачки.
- Проверьте информацию о текущем состоянии swap-файла:
swapon --show
Пример вывода:
NAME TYPE SIZE USED PRIO
/swap.img file 685M 0B -2
- Выключите swap:
swapoff -a