Hetzner · Robot · Документация

Установка собственных образов через installimage: подготовка и запуск

Обновлено

Скрипт installimage умеет устанавливать не только готовые образы Hetzner, но и ваши собственные: например, заранее настроенную систему для серии одинаковых серверов. Ниже — как подготовить образ, как указать его в конфигурации и что проверить после установки. Базовый порядок работы с installimage описан в статье Rescue System и installimage.

Что представляет собой образ

Это архив корневой файловой системы Linux (tar, сжатый gzip, bzip2 или xz), а не образ всего диска. Установщик разметит диски по вашей конфигурации, распакует архив, а затем настроит загрузчик и системные файлы. Поэтому внутри образа не должно быть привязки к конкретным дискам. Полный перечень требований Hetzner к образам смотрите в документации на странице об установке собственных образов: она важнее общих рекомендаций.

Создание образа из работающей системы

Загрузитесь в Rescue System и смонтируйте корневой раздел эталонного сервера, затем упакуйте его:

mount /dev/md2 /mnt
tar --numeric-owner --xattrs --acls -czpf /root/my-image.tar.gz \
    --exclude=./proc/* --exclude=./sys/* --exclude=./dev/* \
    --exclude=./run/* --exclude=./tmp/* --exclude=./var/log/* \
    -C /mnt .

Перед упаковкой на эталонной системе удалите то, что должно быть уникальным: SSH-ключи хоста (/etc/ssh/ssh_host_*), файл /etc/machine-id, журналы, историю команд, временные файлы и секреты. Файл /etc/fstab и конфигурацию сети проверьте — installimage перезапишет большую часть дисковых настроек, но сетевые файлы вы настраиваете сами (Конфигурация статического IP).

Альтернатива — собрать чистую систему с нуля утилитой debootstrap (для Debian/Ubuntu) и упаковать полученный каталог: так образ получается воспроизводимым.

Размещение образа

Положите архив туда, откуда Rescue System сможет его прочитать: на Storage Box (инструкция), на веб-сервер с HTTPS или в каталог /root Rescue-системы (диск в памяти — для небольших образов). Проверьте целостность по контрольной сумме: sha256sum my-image.tar.gz.

Запуск installimage с собственным образом

  1. Войдите в Rescue System и скопируйте образ: wget https://example.org/my-image.tar.gz -O /root/my-image.tar.gz.
  2. Запустите installimage, в меню выберите пункт для собственного образа (Custom image) или заранее подготовьте конфигурацию.
  3. В конфигурации укажите путь:
    IMAGE /root/my-image.tar.gz
    и обычные параметры: DRIVE1, SWRAID, HOSTNAME, PART.
  4. Сохраните (F10) и дождитесь завершения.
  5. Перезагрузите сервер и войдите по SSH.

Для автоматической установки используйте файл /autosetup: installimage подхватит его без меню. Проверьте конфигурацию на тестовом сервере.

Что проверить после установки

  • Загрузилась ли система, виден ли RAID (cat /proc/mdstat).
  • Сеть: адрес, шлюз, DNS; IPv6.
  • Уникальные идентификаторы: machine-id, SSH-ключи хоста.
  • Время, часовой пояс, обновления безопасности.

Облачные серверы

В Hetzner Cloud вместо installimage используются снимки (snapshots) и собственные ISO: создайте сервер, настройте, сделайте снимок и затем создавайте новые серверы из него. Сценарий с ISO описан в статье Установка ОС из ISO-образа, а подробности по образам — в разделе Образы — FAQ.

Типичные ошибки

  • В образ попали /proc, /sys и /dev — он огромный и ломается при распаковке.
  • В образе остались жёстко прописанные UUID дисков в fstab и grub.cfg.
  • Одинаковые SSH-ключи хоста и machine-id на всех серверах.
  • Образ без ядра или initramfs — система не загрузится.

Частые вопросы

Можно ли использовать образ другого дистрибутива?

Да, если архив содержит корректную корневую файловую систему и поддерживается загрузчиком. Совместимость проверяйте на тестовом сервере.

Нужно ли в образе устанавливать загрузчик?

Загрузчик настраивает installimage; в образе должны быть пакеты и ядро.

Как обновлять образ?

Создавайте новую версию из эталонного сервера и храните номера версий в имени файла.