The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Раздел полезных советов: Автоматическая установка Debian с п..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Автоматическая установка Debian с п..."  +/
Сообщение от auto_tips (ok) on 15-Фев-16, 21:25 
Требовалось установить 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. Что ему делать - решать вам. Например, доустановить дополнительный софт, произвести донастройку системы и т.п.
Все.


Литература
* [[https://wiki.debian.org/DebianInstaller/Preseed/EditIso How to modify an existing CD image to preseed d-i]]
* [[https://www.debian.org/releases/jessie/mips/apbs04.html.ru Автоматическая установка с помощью списка ответов]]
* [[https://www.debian.org/releases/etch/example-preseed.txt Example preseed]]
* [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712907 Bug #712907]]
* [[https://fak3r.com/2011/08/18/howto-automate-debian-installs-.../ HOWTO automate Debian installs with preseed]]


URL: http://l8sae-rexhn1.livejournal.com/13806.html
Обсуждается: https://www.opennet.ru/tips/info/2939.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от VecH email(ok) on 15-Фев-16, 21:25 
А нельзя установить Debian в виртуалке и во время установки выдернуть/сгенерировать файл ответов для сохранения что бы описывать каждый параметр вручную?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Автоматическая установка Debian с помощью preseed"  +1 +/
Сообщение от myhand (ok) on 16-Фев-16, 20:26 
Да можно, конечно.  Но ведь автору прочитать мануал по установке - влом.

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

12. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от ACCA (ok) on 19-Фев-16, 08:57 
Мануал недостаточен.

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

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

14. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от myhand (ok) on 19-Фев-16, 14:45 
> В доках по preseed нет даже упоминания про debconf-set-selections.

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

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

2. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от Аноним (??) on 16-Фев-16, 00:37 
Осталось понять кому и зачем в 2016 году нужен образ сдрома.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от Аноним (??) on 16-Фев-16, 03:21 
А как ещё установить ос на виртуалку под KVM например?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Автоматическая установка Debian с помощью preseed"  +1 +/
Сообщение от thresh (??) on 16-Фев-16, 19:12 
Руками уже давным давно никто не делает, как и не занимается странностями как это делает автор.

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от Аноним (??) on 17-Фев-16, 09:45 
> Откройте для себя https://www.packer.io/

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от myhand (ok) on 17-Фев-16, 14:09 
В чем проблема просто класть ему preseed на флешке/дискете/SD/нужное подчеркнуть?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от Аноним (??) on 17-Фев-16, 16:00 
Да в принципе не в чем. Вообще-то я писал про то, что iso образы мне актуальны для быстрого подъёма виртуальных серверов, без всяких заморочек и лишних телодвижений.
А автор написал как автоматизировать процесс установки ОС, за что ему спасибо, мне было интересно прочитать. Узнал кое-что новое для себя.


Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от myhand (ok) on 17-Фев-16, 16:44 
> Да в принципе не в чем. Вообще-то я писал про то, что
> iso образы мне актуальны для быстрого подъёма виртуальных серверов, без всяких
> заморочек и лишних телодвижений.

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

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

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

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Автоматическая установка Debian с помощью preseed"  –1 +/
Сообщение от manofring email on 17-Фев-16, 20:43 
Недавно сдавал RHCSA, везде qemu, сделан явно руками, явно чуваками из РедХат...2-3 команды сделано, ниразу ни какой то пакет.Ыо, че вы тут трёте нам?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

10. "Автоматическая установка Debian с помощью preseed"  –1 +/
Сообщение от manofring email on 17-Фев-16, 20:40 
2author: Спасибо за статью, у самого руки недоходили до конца доделать самодостаточную исошку дебина, однозначно в закладки. Спасибо.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Раздел полезных советов: Автоматическая установка Debian с п..."  +/
Сообщение от ACCA (ok) on 19-Фев-16, 09:01 
Пароль нужно генерировать mkpasswd -m sha-512. А то выебут.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от поле Name on 19-Фев-16, 20:36 
> Записать образ на флешку можно, например, вот так:
>   cat debian-preseed.iso /dev/sdX

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Автоматическая установка Debian с помощью preseed"  –1 +/
Сообщение от Аноним (??) on 21-Фев-16, 22:05 
откройте для себя debootstrap
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от Не представившийся on 01-Апр-16, 17:03 
Говорит "Failed to process the preconfiguration file"...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Автоматическая установка Debian с помощью preseed"  +/
Сообщение от Дмитрий email(??) on 19-Авг-16, 12:52 
isohybrid -o
После параметра -о нужно указать номер раздела, иначе:

isohybrid: invalid offset "name.iso"

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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