Debiani pxe automaatpaigaldus

Allikas: Kuutõrvaja
Redaktsioon seisuga 15. veebruar 2016, kell 18:00 kasutajalt Jj (arutelu | kaastöö) (Puuduvad draiverid)

Meil on väga palju servereid, mida installida. Vaja oleks automaatselt debian paigaldada ja mõned utiliidid koos temaga. Tundub, et üheks lihtsaks lahenduseks on preseed

Süsteem töötab selliselt, et esmapt boodib server end üles pxe pealt, käivitab kerneli ja tõmbab veebiserverist konfiguratsiooni, mille alusel hakkab läbi http proxy mirroritest pakette tõmbama ja neid kettale installima. Järgmine reboot boodib server võrgu asemel juba kõvakettalt valmis süsteemi.

Preseed.png

Äraseletatult tuleb kõigepealt seadistada Tftp ja Isc-dhcpd_server (eeldame, et need on juba paigaldatud, konfitud ja vajavad vaid täiendamist).

Dhcp konfi lisame vaid ühe enda installimist ootava masina mac aadressi.

 host debian-netboot-test {
   hardware ethernet EA:D7:90:65:00:8F;
   fixed-address 10.0.0.7;
 }

Tõmmata http://www.debian.org/distrib/netinst#netboot). aadressilt netboot.tar.gz ja pakkida selle sisu lahti tftp deemoni töökausta milleks meil /srv/tftpboot.

Tekitada spetsiaalne masina mac nimega konfifail /srv/tftproot/pxelinux.cfg/MAC-AADRESS Võib tekitada muidugi ka eraldi võrgu kus kõigis booditud arvutites käivitatakse debiani paigaldus. Selleks tuleb lihtsalt lubada dhcpst terve võrguvahemik ja pxelinux.cfg alla teha samade parameetrite konfifail nimega default.

default debian-installer/amd64/linux
append auto=true priority=critical vga=normal interface=eth0 initrd=debian-installer/amd64/initrd.gz url=http://10.0.0.2/debian2-conf

Vajadusel võib lisada veel võtmeid. Näiteks see, et ruuterit meil võrgus pole netcfg/no_default_route=true ning määrata kindlaks nimeserveri netcfg/get_nameservers=10.0.0.8. Millegipärast samad parameetrid kerneli konfis töötasid aga http kaudu sikutavas konfifailis mitte. Seejärel tekitame 10.0.0.2 veebiserverisse serveri seadistust sisaldava fail debian2-conf (see võib olla üsna suvalise nimega).

d-i debian-installer/locale string en_US
d-i console-keymaps-at/keymap select us
d-i keyboard-configuration/xkb-keymap select us

d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_hostname seen true
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/get_domain seen true

d-i mirror/protocol string http
d-i mirror/country string EE
#d-i mirror/country string manual
d-i mirror/http/hostname string ftp.ee.debian.org
d-i mirror/http/directory string /debian/
d-i mirror/http/proxy string http://10.0.0.4:8123/
d-i mirror/suite string wheezy
d-i mirror/codename string wheezy

d-i clock-setup/utc boolean true
d-i time/zone string Europe/Tallinn

d-i passwd/root-password password parool
d-i passwd/root-password-again password parool
d-i passwd/make-user boolean false

popularity-contest popularity-contest/participate boolean false

d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular

# Pick the "everything in one partition" layout
d-i partman-auto/choose_recipe select atomic

# Say yes to all the standard "are you sure you want to delete your
# disk" warnings.
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

d-i base-installer/kernel/linux/initramfs-generators string yaird
#d-i base-installer/kernel/image linux-image-2.6-amd64
tasksel tasksel/first multiselect standard
d-i pkgsel/include string ssh rsync initrd-tools cramfsprogs lzop
d-i pkgsel/upgrade select full-upgrade
d-i grub-installer/only_debian boolean true
d-i finish-install/reboot_in_progress note

Ja peale masinale tehtud rebooti hakkab installiprotsess käima. See mis versioon debianist peale tuleb määratakse muutujatega

d-i mirror/suite string jessie
d-i mirror/codename string jessie

proxy serverina sai kasutatud Polipod http://kuutorvaja.eenet.ee/wiki/Polipo

Täiendav skript proxmoxi paigalduseks näide kuidas täiendada installiskripti post skriptiga, mis paigaldab proxmox ve keskkonna.


Probleemid

2015.03.27 seisuga on preseedil probleem paigutada bootivat opsüsteemi nt järjekorras teisele sdb kettale, asi tundub olevat grubi seadistamises. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666974 ideeliselt võiks probleemi lahendada

d-i grub-installer/bootdev string /dev/sdb

Puuduvad draiverid

Kuna suletud lähtekoodiga draiverid on debianist välja visatud võib juba paigalduse alguses näha veateadet, et võrgukaarti ei saa kasutada kuna selleks on firmware fail puudu. Selle parandamiseks saab jessiel ja uuematel debianidel tõmmata mitteametliku non-free firmwaresid sisaldava faili

cd /tftpboot/debian-installer/i386
[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig
[ -f firmware.cpio.gz ] || wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/stable/current/firmware.cpio.gz
cat initrd.gz.orig firmware.cpio.gz > initrd.gz 

Selleks, et firmwared aga ka installitavasse opsüsteemi lisatakse tuleb nende deb failid lisada firmware kataloogi. Näiteks bnx2 firmware deb faili saab

https://packages.debian.org/wheezy/all/firmware-bnx2/download

Täielikum juhend https://wiki.debian.org/DebianInstaller/NetbootFirmware

Lingid

https://www.debian.org/releases/wheezy/i386/apb.html.en

https://github.com/papamoose/proxmox/blob/master/pxe/preseed/post.sh

http://blog.adrenlinerush.net/?p=204