LINUX.ORG.RU

Как научно правильно деплоить линуксы?

 , ,


1

1

По результатам Скопировать Debian на новый диск с EFI и Grub

Одну систему можно еще таким полухакерским образом размножить: grub.cfg подредактировать, еще пару файлов, может initrd развернуть и отредактировать и т.д. Например, в grubx64.efi в бинарнике есть строчка (,gpt2)grub если например gpt2 в двоичном редакторе пропатчить на 3, то загрузчик будет искать остальной груб в /dev/sda3,

Но ясно же, что это не системный подход.

Если развертывается на одинаковых hdd, то можно просто настроенную систему в виде образа развернуть на других.

Ну а если требуется корректировка, ну там размеры немного другие, число разделов разное и т.д., то засада в том, что такое ощущение, что grub и даже вообще популярные linux-системы вроде debian совершенно не предназначены для этого.

Или я чего-то не знаю?

grub какой-то совершенно непрозрачный для кросустановки. Усложненные конфиги, система его генерации подразумевает, что его делают на той же машине для которой ставится. Технически после chroot-а установщика в развертываемую систему.

Опять же может так и непонял как правильно это все готовить, но хотелось бы в идеале каких-то простых инструментов для развертывания базового образа на разных машинах.

Или универсального нет (или оно энтерпрайзно-замороченное с гигабайтами доков, без чтения которых не поймешь) и самое правильное - это заскриптовать те изменения, что я вносил в копируемые файлы с возможностью выбора пары параметров?

★★★★★

Ответ на: комментарий от anonymous

Похоже, что не то

A full clone VM is a complete copy and is fully independent from the original VM or VM Template, but it requires the same disk space as the original.

A linked clone VM requires less disk space but cannot run without access to the base VM Template.

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

Например, как я сейчас сделал: подготовил в виртуалбоксе систему, tar -czvpf разделам efi, boot и root-разделу.

На физической машине в совсем по-иному размеченный диск, сделал tar -xvpf в нужные разделы. Затем патчил grub.cfg и etc/fstab на новые uuid и новые номера в /dev/sdaNN , а также пропатчил grubx64.efi указав в бинарнике новый номер для gpt-boot

Как это вообще может работать? Наверное, нужно, чтобы можно было в устанавливаемые системы добавлять прямо в загрузчик какой-то конфигуратор, донастраивающий установленную систему. Можно конечно вообще инсталл в rescue режиме запустить, но это как-то слишком много и долго.

Или другой вариант - какой-то специальный режим для установщика, в котором можно генерировать образы для других машин с учетом конфигов с параметрами там.

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от anonymous

Почитаю. Может я вообще странного хочу =)

praseodim ★★★★★
() автор топика

Делаешь утилитой dump сохранение файловой системы.

Что бы не было проблем со структурой разделов и прочим в /etc/fstab переносимой системы указывай вместо UUID разделов или имён разделов метки файловых систем (LABEL).

А затем при разваричвании на другую систему тебе нужно создать разделы, на них файловые системы с теми же метками (LABEL), что и в /etc/fstab, разворачиваете на них (restore) backup.

Далее монтируешь /dev, /proc и /sys, делаешь crhoot, ставишь загрузчик и генерируешь конфиг.

Всё это можно сделать скриптом.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо.

Далее монтируешь /dev, /proc и /sys, делаешь crhoot, ставишь загрузчик и генерируешь конфиг.

Но интересно было бы без всякого chroot-а поставить загрузчик. В принципе у меня это получилось, хотя и немного через одно место.

chroot не всегда удобно делать, так как система из которой развертывается система может сильно не совпадать с развертываемой. Наверное между mint 19.1 и дебианом 9.8 разница не большая, но в принципе может даже архитектура процессоров быть разная. Например, если деплоится i386-я система из под amd64

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от praseodim

Например, если деплоится i386-я система из под amd64

linux32 chroot /mnt/gentoo32 /bin/bash


https://wiki.gentoo.org/wiki/Project:AMD64/32-bit_Chroot_Guide
InInteractive
()

Посмотри тщательно, что умеет clonzilla, возможно перекроет значительную часть хотелок.

Elyas ★★★★★
()
Ответ на: комментарий от praseodim

Но интересно было бы без всякого chroot-а поставить загрузчик. В принципе у меня это получилось, хотя и немного через одно место.

Зачем ставить без chroot, в чём проблема? Да и основная суть не просто в установке загрузчика, а в генерации его конфига, потому как в конфиге grub2 раздел GRUB указывается через идентификатор раздела UUID.

Ну и поставить загрузчик через chroot, так же как и сгенерировать конфиг загрузчика в chroot можно одной командой:

chroot /mnt/root /usr/sbin/grub-install --root-directory=/boot /dev/sda
Аналогично генерируется и конфиг загрузчика, что-то вроде:
chroot /mnt/root /usr/sbin/grub-mkconfig > /boot/grub/grub.cfg

chroot не всегда удобно делать, так как система из которой развертывается система может сильно не совпадать с развертываемой. Наверное между mint 19.1 и дебианом 9.8 разница не большая, но в принципе может даже архитектура процессоров быть разная.

Без разницы.

Например, если деплоится i386-я система из под amd64

Про linux32 chroot тебе уже сказали.

anonymous
()
Ответ на: комментарий от anonymous

Команды написаны примерно, но суть ты должен понять.

В итоге в твоём скрипта на разворачивание может быть порядка 10 команд.

Таблицу разделов можно так же сохранять в файл и восстанавливать средствами sfdisk, sgdisk для mbr и gpt соответственно.

anonymous
()
Ответ на: комментарий от anonymous

Ok. Посмотрел, так тоже можно =) Хотя как-то психологически более нравится совсем независимый вариант.

Elyas

Попробую ее поставить, но судя по описанию совсем вольно менять разделы она не сможет. Хотя все-равно интересно, почему-то не знал про нее, про truу image и нортогосты знал, а про нее нет.

praseodim ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.