Скрипт 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 с собственным образом
- Войдите в Rescue System и скопируйте образ:
wget https://example.org/my-image.tar.gz -O /root/my-image.tar.gz. - Запустите
installimage, в меню выберите пункт для собственного образа (Custom image) или заранее подготовьте конфигурацию. - В конфигурации укажите путь:
и обычные параметры:IMAGE /root/my-image.tar.gzDRIVE1,SWRAID,HOSTNAME,PART. - Сохраните (F10) и дождитесь завершения.
- Перезагрузите сервер и войдите по 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; в образе должны быть пакеты и ядро.
Как обновлять образ?
Создавайте новую версию из эталонного сервера и храните номера версий в имени файла.