Автоматическая установка Debian 7 Wheezy по сети
Как полностью автоматизировать установку Debian 7 Wheezy по cети.
Источники:
Исходные данные:
192.168.100.1 — TFTP-сервер (с настройками указанными здесь)
08:00:27:85:33:F7 — МАК-адрес клиента на установку ОС
Добавлю к параметрам ядра переменную для debian-installer дабы грузился файл с настройками (значениями) переменных, которые в «ручном» режиме спрашивает инсталлер. Файл с ответами, загружается не сразу!!!, только после того, как будут заданы пользователю некоторые вопросы, а это значит, что используя только файл preseed нельзя добиться полностью автоматической установки. Поэтому, ответы на вопросы установщика до загрузки preseed нужно передать параметрами загрузки ядра, которые потом подхватит установщик Debian.
— имя хоста (debhost) нужно задавать обязательно, но значение, позже полученное по DHCP, будет иметь высший приоритет. То же относится и к домену (mydrafts.local) и к прочим параметрам.
— страна Россия
— язык установки, клавиатуры и т.д. на время установки — Английские
пароль, 123321 — указан в /var/www/tftp/debpxe/preseed.cfg, d-i passwd/root-password password 123321
Источники:
-
статья на «хабре» — Загрузка и установка Debian по сети для чайников
-
Приложение B. Автоматическая установка с помощью списка ответов
Исходные данные:
192.168.100.1 — TFTP-сервер (с настройками указанными здесь)
08:00:27:85:33:F7 — МАК-адрес клиента на установку ОС
Подготовка
Настройка HTTP-сервера
# mkdir -p /var/www/tftp/debpxe # cd /var/www/tftp/debpxe # wget http://www.debian.org/releases/wheezy/example-preseed.txt ./ # mv /var/www/tftp/debpxe/example-preseed.txt /var/www/tftp/debpxe/preseed.cfg
Сетевой установщик
скачать можно по адресу http://www.debian.org/distrib/netinst#netboot# mkdir -p /srv/tftp/debinst # cd /srv/tftp/debinst # wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz # tar -xvf netboot.tar.gz
Настройка установщика
По-умолчанию загрузчик будет ожидать участия пользователя. Что бы отключить это, отредактирую /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg, а именно значение опции timeout в 1.Добавлю к параметрам ядра переменную для debian-installer дабы грузился файл с настройками (значениями) переменных, которые в «ручном» режиме спрашивает инсталлер. Файл с ответами, загружается не сразу!!!, только после того, как будут заданы пользователю некоторые вопросы, а это значит, что используя только файл preseed нельзя добиться полностью автоматической установки. Поэтому, ответы на вопросы установщика до загрузки preseed нужно передать параметрами загрузки ядра, которые потом подхватит установщик Debian.
# cat /srv/tftp/pxelinux.cfg/default # D-I config version 2.0 #include debian-installer/amd64/boot-screens/menu.cfg include debian-installer/amd64/boot-screens/txt.cfg default debian-installer/amd64/boot-screens/vesamenu.c32 prompt 0 timeout 1 # cat /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg default install label install menu label ^Install menu default kernel debian-installer/amd64/linux append vga=788 initrd=debian-installer/amd64/initrd.gz auto url=http://192.168.100.1/tftp/debpxe/preseed.cfg keymap=en locale=en_US hostname=newdebhost domain=mydrafts.local country=RU language=en -- quiet prompt 0 timeout 1Подробности:
— имя хоста (debhost) нужно задавать обязательно, но значение, позже полученное по DHCP, будет иметь высший приоритет. То же относится и к домену (mydrafts.local) и к прочим параметрам.
— страна Россия
— язык установки, клавиатуры и т.д. на время установки — Английские
preseed.cfg
Место нахождения: /var/www/tftp/debpxe/preseed.cfg# cat /var/www/tftp/debpxe/preseed.cfg #http://www.debian.org/releases/stable/ia64/apbs04.html.ru #### Contents of the preconfiguration file (for wheezy) ### Localization # настройки языка и локали в устанавливаемой системе d-i debian-installer/locale string ru_RU.UTF-8 #Значения можно указывать отдельно для большей гибкости. # The values can also be preseeded individually for greater flexibility. # Используем американскую локаль d-i debian-installer/language string en # но указываем, что наш сервер находится в России. d-i debian-installer/country string RU #d-i debian-installer/locale string en_GB.UTF-8 # Optionally specify additional locales to be generated. d-i localechooser/supported-locales multiselect en_US.UTF-8, ru_RU.UTF-8 # Выбор клавиатуры. # Настройки клавиатуры.(американская раскладка.) # keymap — это псевдоним keyboard-configuration/xkb-keymap d-i keymap select us # При настройке клавиатуры выбирается раскладка и (для нелатинских раскладок) # клавиша переключения между нелатинской раскладкой и раскладкой US. # Во время установки доступны только основные варианты раскладок. # Дополнительные варианты доступны только в установленной системе; их можно # выбрать с помощью команды dpkg-reconfigure keyboard-configuration. d-i keyboard-configuration/toggle select No toggling #d-i console-keymaps-at/keymap select Русская #d-i keyboard-configuration/variant select Английская американская # Чтобы не выполнять настройку клавиатуры укажите в keymap значение # skip-config. В результате останется активной клавиатурная раскладка ядра. # B.4.2. Настройка сети # http://www.debian.org/releases/stable/ia64/apbs04.html.ru # Выбираем интерфейс сети, через который будет происходить установка. # Если сомневаемся - ставим auto. d-i netcfg/choose_interface select eth0 # Настройки сети. Пример для ipv6, для v4 вам просто нужно будет поменять # адреса. # важный момент - если настраиваете здесь ipv6 сеть, # то обязательно используйте ipv6 nameservers. # Иначе netmask ffff:ffff:ffff:ffff:: внутри debian-installer'a # превратится в 255.255.255.0 (или что-то такое) и вам придется лезть в # консоль, чтобы перевбивать настройки лапками. # если вам нужен ipv4 - то просто замените ipaddress, netmask, gateway, # nameservers на корректные v4-адреса. Ничего дополнительно указывать не нужно. d-i netcfg/dhcp_timeout string 2 # hostname и domain для наливаемой машинки. # fqdn машины в данном случае будет temporary.debian.pro - если хотите, # чтобы на сервере нормально работала отправка почты, то такой же fqdn должен # быть прописан в PTR записи "основного" адреса машинки. d-i netcfg/get_hostname string debpxe d-i netcfg/get_domain string mydrafts.local # можно включить ssh-сервер внутри установщика, чтобы продолжить установку # по ssh. Но нам это не нужно - просто оставлю для примера. #d-i anna/choose_modules string network-console #d-i network-console/password password 1234 #d-i network-console/password-again password 1234 # настройки зеркала apt. Вручную указываем БЫСТРЫЙ (aka избранный), # а не выбираем какое-то из списка. # кроме mirror.yandex.ru/mirror6.yandex.ru я пока не встретил работающих # v6-зеркал =) # в данном случае, локальную копию репозитория, которая находится здесь же d-i mirror/country string manual d-i mirror/http/hostname string mirror.yandex.ru d-i mirror/http/directory string /debian # прокси внутри инсталлера нам не нужен. d-i mirror/http/proxy string # Настройки часового пояса - наш сервер будет жить по часикам в Москве. # дополнительно, при установке синхронизируем время с 192.168.100.1 # в данном случае, синхронизация отключена d-i clock-setup/utc boolean true d-i time/zone string Europe/Moscow d-i clock-setup/ntp boolean false #d-i clock-setup/ntp-server string 192.168.100.1 # Настройка HDD. Внутри виртуалок нам подойдет разметка auto regular atomic # (последний раздел - swap = 2xRAM, первый раздел - /, занимающий всё, # что осталось после swap'a). # Саму систему ставим на /dev/sda. d-i partman-auto/disk string /dev/sda d-i partman-auto/method string regular d-i partman-auto/choose_recipe select atomic d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true # устанавливаем рутовый пароль 123321. # после установки его, само собой, ИЗМЕНИТЬ (preseed могут спереть). d-i passwd/root-password password 123321 d-i passwd/root-password-again password 123321 # не создаём дополнительных пользователей, кроме рута. d-i passwd/make-user boolean false #B.4.9. Настройка Apt # остальные настройки apt'a - включаем contrib и non-free репозитории. d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true # в sources.list можно добавитьbackport-ы (в примере - для wheezy). # d-i apt-setup/local0/repository string deb http://mirror.yandex.ru/debian # wheezy-backports main contrib non-free # By default the installer requires that repositories be authenticated # using a known gpg key. This setting can be used to disable that # authentication. Warning: Insecure, not recommended. # d-i debian-installer/allow_unauthenticated boolean true # Некоторые версии программы установки могут отсылать отчёт # об установленных и используемых пакетах. По умолчанию данная # возможность выключена, но отправка отчёта помогает проекту # определить популярность программ и какие из них включать на CD. # не отправляем данные об установленных пакетах. popularity-contest popularity-contest/participate boolean false # дополнительно установим ssh-сервер, htop и mc tasksel tasksel/first multiselect ssh-server # указываем, что нам нужны дополнительные пакеты htop mc d-i pkgsel/include string htop mc #B.4.11. Завершение установки # При установке с консоли на последовательном порту обычные виртуальные # консоли (VT1-VT6) выключаются в /etc/inittab. # Чтобы этого не происходило. d-i finish-install/keep-consoles boolean true # Не показывать последнее сообщение о том, что установка завершена. d-i finish-install/reboot_in_progress note # Не выдвигать лоток CD при перезагрузке, что иногда может пригодиться. d-i cdrom-detect/eject boolean false # В случае с виртаульными машинами, лучше всего # остановливать систему после завершения установки, а # не перегружаться в установленную систему. # d-i debian-installer/exit/halt boolean true # Эта настройка позволяет выключить питание машины, а не просто остановить её. # d-i debian-installer/exit/poweroff boolean true d-i grub-installer/only_debian boolean true #d-i finish-install/reboot_in_progress note #d-i debian-installer/exit/poweroff boolean true # использовать для установки проприетраных драйверов d-i hw-detect/load_firmware boolean trueПо окончанию установки и перезагрузки, можно подключиться к компьютеру:
# ssh root@192.168.100.151 The authenticity of host '192.168.100.151 (192.168.100.151)' can't be established. ECDSA key fingerprint is 63:b7:f1:2b:12:ca:06:e7:5a:1d:e3:af:cc:71:24:a7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.151' (ECDSA) to the list of known hosts. root@192.168.100.151's password: Linux debhost 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Apr 29 13:20:46 2014 root@debhost:~# hostname -f debhost.mydrafts.local root@debhost:~# ip a s 1: lo:Адрес, 192.168.100.151 — указан в настройках DHCPmtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 08:00:27:85:33:f7 brd ff:ff:ff:ff:ff:ff inet 192.168.100.151/24 brd 192.168.100.255 scope global eth0 inet6 fe80::a00:27ff:fe85:33f7/64 scope link valid_lft forever preferred_lft forever
пароль, 123321 — указан в /var/www/tftp/debpxe/preseed.cfg, d-i passwd/root-password password 123321