Возник вопрос – как можно быстро развернуть Alt Linux на большое количество компьютеров. Ответ напрашивается сам – нужно что-то придумать с автоматической установкой. Предвкушая комментарии в духе – гораздо проще снять образ диска с работающей системой, каким-нибудь Acronisом, или простым dd – отвечу, так сделать можно, но только в том случае, если железо на всех компьютерах у вас будет абсолютно одинаковым, иначе могут быть самые неожиданные проблемы, по этому всё же лучше установка системы. Как это сделать - написано ниже.
Копируем содержимое диска с дистрибутивом куда-нибудь:
mkdir /mnt/disk cp -ar /run/media/test/cusotmAlt/* /mnt/disk/ cd /mnt/disk/Metadata
Создадим файл ответов:
nano autoinstall.scm
Содержимое файла – примерно такое:
; установка языка операционной системы (ru_RU)
("/sysconfig-base/language" language ("ru_RU") action "write" lang ("ru_RU"))
; установка переключателя расладки клавиатуры на Ctrl+Shift
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "alt_sh_toggle")
; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)
; автоматическая разбивка жёсткого диска
("/evms/control" action "write" control open installer #t)
("/evms/control" action "write" control update)
("/evms/profiles/workstation" action apply commit #f clearall #t exclude ())
("/evms/control" action "write" control commit)
("/evms/control" action "write" control close)
; установка пакетов операционной системы
("pkg-init" action "write")
; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел)
("/pkg-install" action "write" lists "workstation/libreoffice workstation/scanning workstation/smartcard workstation/ganttproject workstation/gtk-dictionary workstation/3rdparty workstation/mate-usershare workstation/pidgin workstation/raccess workstation/vlc workstation/emulators workstation/freecad workstation/scribus workstation/evolution" auto #t)
;("/pkg-install" action "write" lists "" auto #t)
("/preinstall" action "write")
; установка загрузчика GRUB в MBR на первый жёсткий диск
("/grub" action "write" device "/dev/sda" passwd #f passwd_1 "*" passwd_2 "*")
; настройка сетевого интерфейса на получение адреса по DHCP
("/net-eth" action "write" reset #t)
;("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "" computer_name "c245")
("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "")
; настройка сетевого интерфейса на статический IPv4
; ("/net-eth" action "write" name "eth0" configuration "static" default "192.168.1.1" search "localhost.com" dns "192.168.1.1" computer_name "c245" ipv "4" ipv_enabled #t)
; ("/net-eth" action "add_iface_address" name "eth0" addip "192.168.1.2" addmask "24" ipv "4")
("/net-eth" action "write" commit #t)
; установка пароля суперпользователя root '123'
("/root/change_password" language ("ru_RU") passwd_2 "123" passwd_1 "123")
; задание первого пользователя 'test' с паролем '123'
("/users/create_account" new_name "test" gecos "" allow_su #t auto #f passwd_1 "123" passwd_2 "123")
("/postinstall/firsttime" run "sleep 30 && curl http://media.loc/post1.sh -o /root/post1.sh && /bin/sh /root/post1.sh")
В этом файле могут со временем измениться параметры, посмотреть список актуальных можно в файле /root/.install-log/wizard.log, после обычной установки системы. Или во время уствновки - /tmp/wizard.log
В целом думаю вопросов к файлу возникнуть не должно, все интуитивно понятно.
Необходимые пакеты добавляются в секции pkg-install. Названия можно посмотреть в файле pkg-groups.tar, который находится той же папке, куда мы помещаем конфиг. По иерархии – lists/workstation/имя, соответственно имя будет, например workstation/evolution. Имена вводятся через пробел.
Что бы добавить дополнительный пакет, которого изначально нет на диске необходимо распаковать pkg-groups.tar и внести изменения:
tar xf pkg-groups.tar
К примеру, добавим evolution.
nano lists/workstation/evolution
Содержимое файла – каждый нужный пакет – с новой строки:
evolution
evolution-ews
nano groups/workstation/evolution.directory
[Desktop Entry]
Encoding=UTF-8
Type=Directory
Name=Evolution mail client
Name[ru_RU]= Почтовый клиент, поддерживающий MS Exchange
X-Alterator-Parent=workstation/20-networking
X-Alterator-PackageList=workstation/evolution
X-Alterator-Required=yes
После внесенных изменений, пакуем папки обратно:
tar cf pkg-groups.tar groups lists
Если на прошлом шаге были добавлены пакеты отсутствующие в репозитории на диске, необходимо все нужные пакеты добавить в репозиторий вручную. Важно добавлять абсолютно все нужные пакеты, включая зависимости, зависимости зависимостей и т.д., иначе не будут установлены ни какие пакеты, помимо базовых, даже те, которые были на диске изначально. Проще всего сделать так – на абсолютно голой минимальной системе установить нужные пакеты. Зависимости стянутся сами, и будут находится в папке /var/cache/apt/archieve.
Если хочется хардкора, можно посмотреть зависимости вручную командной:
apt-cache depends evolution evolution-ews
Если пакет уже есть в системе, но отсутствует в кэше, можно скачать так:
apt-get install --reinstall --download-only evolution
Не забываем про зависимости зависимостей.
Все нужные пакеты копируем в папку ALTLinux/RPMS.main:
cp /home/test/rpms/*.rpm /mnt/disk/ALTLinux/RPMS.main/
/home/test/rpms – директория, куда я копировал нужные пакеты из кэша.
Устанавливаем apt-repo-tools:
apt-get install apt-repo-tools
Чтобы команда обновления репозитория не ругалась, ей нужна папка:
mkdir /mnt/disk/SRPMS.main
Обновление репозитория:
genbasedir --topdir /mnt/disk ALTLinux main
Последняя строка в autoinstall.scm говорит запустить постустановочный скрипт во время первого запуска ОС, что позволяет относительно просто сделать начальные настройки настройки. В моём примере я стягиваю скрипт с веб сервера, и после этого запускаю его. Обратите внимание, что перед началом скачивания скрипта я торможу процесс на 30 секунд. Это нужно для того, чтобы успела инициализироваться сеть, иначе скрипт стягиваться не будет.
Чтобы установка проходила в полностью автоматическом режиме, необходимо отредактировать файл:
nano /mnt/disk/syslinux/isolinux.cfg
В разделе с загрузкой установщика нужно добавить в конец строки ai:
label linux
kernel alt0/vmlinuz
append initrd=alt0/full.cz changedisk fastboot automatic=method:cdrom ramdisk_size=372041 showopts vga=normal quiet splash ai
Тут же меняется порядок меню при загрузке с диска.
Последний шаг - пакуем папку обратно в ISO:
mkisofs -o /home/test/custom2.iso -b syslinux/isolinux.bin -c syslinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V "customAlt" /mnt/disk/
Также можно пользоваться сетевой установкой. Суть там, вродебы такая же, за исключением того, что не нужно перепаковывать ISO.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<