The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Автоматическая установка Debian с помощью preseed
Требовалось установить Debian с флешки или CD в полностью автоматическом
режиме. Без доступа к Интернету. Софт- минимальный набор (Debian Jessie
netinstall ISO). Архитектура - i686. После инсталляции необходимо установить
дополнительные пакеты, произвести определенные настройки установленной ОС. Тоже
в автоматическом режиме.

Установку Debian'a можно полностью автоматизировать путем создания файла со
сценарием ответов на все вопросы инсталлятора. Интегрировав данный сценарий в
инсталляционный образ получим полностью самоустанавливаемый Debian. Способ
автоматической установки называется Debian Preseed. Созданный файл-сценарий
ответов (preseed.cfg) пакуется его в initrd инсталляционного ISO-образа Debian.
На выходе получаем обычный ISO-образ, готовый к автоматической установке.


Для создания собственного инсталляционного ISO-образа необходимо произвести ряд действий. А именно:

  • смонтировать оригинальный ISO;
  • "выудить" из него initrd, распаковать его;
  • скопировать в "корень" initrd созданный файл preseed.cfg и все необходимое для настройки устанавливаемой системы по завершении установки (см. ниже);
  • собрать обратно ISO образ. Для автоматизации сборки образа сделаем скрипт makeiso.sh. Выполнять его необходимо с правами рута. Для работы скрипта нужны установленные пакеты rsync, syslinux, genisoimage, md5sum. В директорию, где находится скрипт,  необходимо скопировать оригинальный Debian ISO и файл-сценарий preseed.cfg. Также необходимо создать директорию extra - в ней будут находиться пост-инсталляционный скрипт и все необходимое, для его работы. cat makeiso.sh #!/bin/bash mkdir mnt mkdir irmod mkdir cd INISO=debian-8.3.0-i386-netinst.iso OUTISO=debian-preseed.iso mount -o loop $INISO mnt rsync -a -H --exclude=TRANS.TBL mnt/ cd umount mnt rmdir mnt # Pack custom initrd cd irmod gzip -d < ../cd/install.386/initrd.gz | cpio --extract --verbose --make-directories --no-absolute-filenames cp -f ../preseed.cfg preseed.cfg find . | cpio -H newc --create --verbose | gzip -9 > ../cd/install.386/initrd.gz cd ../ rm -fr irmod/ # Fix md5 sum cd cd md5sum `find -follow -type f` > md5sum.txt cd .. # Copy custom postinst script to new ISO cp -Rf extra cd/ # Create new ISO rm test.iso genisoimage -o $OUTISO -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./cd rm -rf cd isohybrid -o $OUTISO При успешной отработке скрипта получим образ debian-preseed.iso (в формате hybrid iso), готовый для записи как на USB-носитель, так и на CD. Записать образ на флешку можно, например, вот так: cat debian-preseed.iso /dev/sdX где sdХ - флешка Теперь, собственно, сам preseed-сценарий. cat preseed.cfg d-i debian-installer/locale string ru_RU.UTF8 d-i console-keymaps-at/keymap select ru ### Network configuration d-i netcfg/enable boolean false d-i netcfg/get_hostname string host_name d-i netcfg/get_domain string domain.name ### Mirror settings d-i mirror/country string enter information manually d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string ### Partitioning d-i partman-auto/method string regular d-i partman-auto/disk string /dev/sda d-i partman-auto/expert_recipe string \ boot-root:: \ 1000 10000 1000000 ext4 \ $primary{ } $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ / } \ label{root} \ \ 500 10000 1000000000 ext4 \ $primary{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /var } \ \ 128 2048 150% linux-swap \ $primary{ } method{ swap } format{ } \ d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select Finish partitioning and write changes to disk d-i partman/confirm boolean true d-i clock-setup/utc boolean true d-i time/zone string Europe/Moscow ### Apt setup d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true d-i apt-setup/use_mirror boolean false # Additional repositories, local[0-9] available d-i apt-setup/local0/repository string deb http://mirror.yandex.ru /debian jessie main d-i apt-setup/local0/source boolean true d-i apt-setup/local0/source string http://mirror.yandex.ru/debian jessie main d-i debian-installer/allow_unauthenticated string true ### Account setup d-i passwd/root-login boolean true d-i passwd/root-password-crypted password MD5_password_hash d-i passwd/make-user boolean true d-i passwd/user-fullname string user d-i passwd/username string user d-i passwd/user-password-crypted password MD5_password_hash ### Base system installation d-i base-installer/kernel/linux/initramfs-generators string yaird ### Boot loader installation d-i grub-installer/skip boolean false d-i lilo-installer/skip boolean true d-i grub-installer/bootdev  string default d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true ### Package selection tasksel tasksel/first multiselect standard, ssh-server popularity-contest popularity-contest/participate boolean false ### Finishing up the first stage install d-i finish-install/reboot_in_progress note d-i preseed/late_command string cp -R /cdrom/extra/ /target/root/; \ cd /target; \ chmod +x /target/root/extra/postinst.sh; \ in-target /bin/bash /root/extra/postinst.sh; Пароль рута и пользователя задан в виде хеша. Хеш получаем командой: mkpasswd -m md5 Диск разбивается на 3 раздела: /, /var, и swap. ФС - ext4, Размер swap - не менее 128Мб, примерно 150% от объема установленной памяти. Остальные разделы - примерно пополам от объема диска. После окончания установки в свежеустановленную (т.н. "target") систему копируется директория extra и в chroot-окружении запускается постинсталляционный скрипт postinst.sh. Что ему делать - решать вам. Например, доустановить дополнительный софт, произвести донастройку системы и т.п. Все. Литература * How to modify an existing CD image to preseed d-i * Автоматическая установка с помощью списка ответов * Example preseed * Bug #712907 * HOWTO automate Debian installs with preseed
  •  
    14.02.2016 , Автор: l8saerexhn1 , Источник: http://l8sae-rexhn1.livejournal.com...
    Раздел:    Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux

    Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, VecH (ok), 21:25, 15/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А нельзя установить Debian в виртуалке и во время установки выдернуть/сгенерировать файл ответов для сохранения что бы описывать каждый параметр вручную?
     
     
  • 2.5, myhand (ok), 20:26, 16/02/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да можно, конечно.  Но ведь автору прочитать мануал по установке - влом.

    https://www.debian.org/releases/jessie/amd64/apbs03.html.en

     
     
  • 3.12, ACCA (ok), 08:57, 19/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Мануал недостаточен.

    Сегодня хотел с одним preseed взлететь и поднять sshd, потом зайти по ssh, залить дополнение именно для этого хоста и продолжить debian-install.

    В доках по preseed нет даже упоминания про debconf-set-selections. Спасибо парням с #debian, подсказали.

     
     
  • 4.14, myhand (ok), 14:45, 19/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > В доках по preseed нет даже упоминания про debconf-set-selections.

    Я что, простите, какие-то тайные "доки" процитировал?

     

  • 1.2, Аноним (-), 00:37, 16/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Осталось понять кому и зачем в 2016 году нужен образ сдрома.
     
     
  • 2.3, Аноним (-), 03:21, 16/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А как ещё установить ос на виртуалку под KVM например?
     
     
  • 3.4, thresh (??), 19:12, 16/02/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Руками уже давным давно никто не делает, как и не занимается странностями как это делает автор.

    Откройте для себя https://www.packer.io/

     
     
  • 4.6, Аноним (-), 09:45, 17/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Откройте для себя https://www.packer.io/

    Спасибо, посмотрю.
    Но честно говоря, я не доверяю всяким сторонним программам, сервисам и т.д.
    Просто с точки зрения безопасности, кто их знает, что туда засунут. Может и не сами авторы, может их просто взломали.
    Мой девиз: чем меньше деталей в инструменте тем он надёжнее.

     
     
  • 5.7, myhand (ok), 14:09, 17/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В чем проблема просто класть ему preseed на флешке/дискете/SD/нужное подчеркнуть?
     
     
  • 6.8, Аноним (-), 16:00, 17/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да в принципе не в чем. Вообще-то я писал про то, что iso образы мне актуальны для быстрого подъёма виртуальных серверов, без всяких заморочек и лишних телодвижений.
    А автор написал как автоматизировать процесс установки ОС, за что ему спасибо, мне было интересно прочитать. Узнал кое-что новое для себя.


     
     
  • 7.9, myhand (ok), 16:44, 17/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Да в принципе не в чем. Вообще-то я писал про то, что
    > iso образы мне актуальны для быстрого подъёма виртуальных серверов, без всяких
    > заморочек и лишних телодвижений.

    Так ковырять себе официальный iso, вместо того чтобы просто
    указать инсталятору pressed.cfg (в вашем случае, наверно удобнее
    всего с DHCP сервера файл указать) - разве не та самая, заморочка?

    > Узнал кое-что новое для себя.

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

     
  • 4.11, manofring (?), 20:43, 17/02/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Недавно сдавал RHCSA, везде qemu, сделан явно руками, явно чуваками из РедХат...2-3 команды сделано, ниразу ни какой то пакет.Ыо, че вы тут трёте нам?
     

  • 1.10, manofring (?), 20:40, 17/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    2author: Спасибо за статью, у самого руки недоходили до конца доделать самодостаточную исошку дебина, однозначно в закладки. Спасибо.

    2myhand: Пы...ть не мешки ворочить, я чето не особео Вас заметил в афторах более менее нужной инфы, Тролим?

     
  • 1.13, ACCA (ok), 09:01, 19/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пароль нужно генерировать mkpasswd -m sha-512. А то выебут.
     
  • 1.15, поле Name (?), 20:36, 19/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Записать образ на флешку можно, например, вот так:
    >   cat debian-preseed.iso /dev/sdX

    Разве так запишется?
    Тут или ">" надо, или другую команду, типа dd:
        dd if=debian-preseed.iso of=/dev/sdX bs=1M

     
  • 1.16, Аноним (-), 22:05, 21/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    откройте для себя debootstrap
     
  • 1.18, Не представившийся (?), 17:03, 01/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Говорит "Failed to process the preconfiguration file"...
     
  • 1.19, Дмитрий (??), 12:52, 19/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    isohybrid -o
    После параметра -о нужно указать номер раздела, иначе:

    isohybrid: invalid offset "name.iso"

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру