Помощь

Подготовка образа для разворачивания облачного сервера

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

В следующем разделе рассмотрим необходимые проверки и настройки для успешного разворачивания сервера.

На нашем репозитории 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

Остались вопросы - пишите