From 9cdb0dbb1805ab351708429dff8f5aba92d1bbd0 Mon Sep 17 00:00:00 2001 From: Esgariot Date: Tue, 13 Dec 2016 01:23:47 +0100 Subject: [PATCH] turns out debian does not support kickstart and I wasted a lot of time --- README.md | 62 +++++++++++++++++++++++++++------------------------ ks.cfg | 41 ++++++++++++++++++++++++++++++++++ pxeappend.cfg | 11 +++++++++ 3 files changed, 85 insertions(+), 29 deletions(-) create mode 100644 ks.cfg create mode 100644 pxeappend.cfg diff --git a/README.md b/README.md index c10dfe1..1deff10 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # PXE_Install -Slice of config files and install scripts for automated PXE linux install. -Not a functional repo, just collection of useful stuff to make it work. +This will become a beautiful parser and generator for preseed file for debian and maybe someday for other distros using diffrent tools ###Research: * Turns out other than RedHat, Ubuntu has some support for Kickstart installation: @@ -10,7 +9,7 @@ Not a functional repo, just collection of useful stuff to make it work. * Some python tools for parsing kickstart files [pykickstart](https://fedoraproject.org/wiki/Pykickstart) * Linux docs kickstart howto: - [HOWTO](http://linuxdocs.org/HOWTOs/KickStart-HOWTO.html Redhat Kickstart Howto) + [HOWTO](http://linuxdocs.org/HOWTOs/KickStart-HOWTO.html) * Setting up PXE server on debian [PXE Client & Server](https://wiki.debian.org/PXEBootInstall#Installing_Debian_using_network_booting) @@ -21,33 +20,38 @@ Not a functional repo, just collection of useful stuff to make it work. ###TODO: -[ ] Uruchom instalacje z przykladowego pliku -[ ] Dodaj repo Ubuntu ktore posiada kickstart config czy jak ten pakiet sie nazywa - +[ ] Generating pxelinux.cfg-valid entry and appending it to default.cfg +[ ] Add automatic locale setting in above in kernel params +[ ] write parser for preseed options Założenia: TEMAT INDYWIDUALNY Robert Marciniak -1. Serwer PXE + kickstart -2. Narzędzie generuje wyjściowy skrypt (kickstart i post-install) z kilku "kawałków". Mogą nimi być np. zestaw pakietów, polecenie tworzenia katalogów dla usera, polecenie instalacji jakiegoś środowiska graficznego. Niektóre rzeczy mogą się wykluczać (np środowiska graficzne). - -Przykładowe scenariusze: -1. Użytkownik chciałby daną dystrybucję z konkretnym zestawem programów. Chciałby też mieć utworzone konto, środowisko graficzne, skonfigurowane niektóre programy - np. sudo -``` -> użytkownik uruchamia narzędzie do generowania skryptu instalacyjnego. -> uruchamia narzędzie interaktywnie lub nie, wybiera dostępne opcje, zatwierdza. -> Skrypt jest zapisywany na serwerze, podczas instalacji PXE pobierane są z niego dane, -> użytkownik dostaje gotowy skonfigurowany system -``` - -2. Maszyna bare metal z ustawionym bootowaniem przez sieć. -``` -> podczas instalacji serwer udostępnia skrypt konfiguracji domyślnej - ustawiane są podstawowe rzeczy, np. partycje, timezone -> po instalacji uruchamiany jest dialog, który czeka jakiś czas na odpowiedź użytkownika - wciśnięcie dowolnego przycisku. -> Jeśli użytkownik odpowie, to przejście do scenariusza A, jeśli nie, to skrypt sprząta po sobie i host się wyłącza. -> maszyna ma zainstalowany system zgodnie z konfiguracją domyślną. -``` -3. Uruchomienie instalacji aż do dostępu do powłoki. -``` -> Użytkownik resztę robi sam -``` \ No newline at end of file +1. Serwer PXE + ~~kickstart~~ -> preseed +2. Narzędzie generuje wyjściowy skrypt (preseed i post-install) z kilku "kawałków". Mogą nimi być np. zestaw pakietów, polecenie tworzenia katalogów dla usera, polecenie instalacji jakiegoś środowiska graficznego. Niektóre rzeczy mogą się wykluczać (np środowiska graficzne). + +Przykładowe scenariusze: + +1. Użytkownik chciałby daną dystrybucję z konkretnym zestawem programów. Chciałby też mieć utworzone konto, środowisko graficzne, skonfigurowane niektóre programy + + ``` + > użytkownik uruchamia narzędzie do generowania skryptu instalacyjnego. + > uruchamia narzędzie interaktywnie lub nie, wybiera dostępne opcje, zatwierdza. + > Skrypt jest zapisywany na serwerze, podczas instalacji PXE pobierane są z niego dane, + > użytkownik dostaje gotowy skonfigurowany system + ``` + +2. Maszyna bare metal z ustawionym bootowaniem przez sieć. + + ``` + > podczas instalacji serwer udostępnia skrypt konfiguracji domyślnej - ustawiane są podstawowe rzeczy, np. partycje, timezone + > po instalacji uruchamiany jest dialog, który czeka jakiś czas na odpowiedź użytkownika - wciśnięcie dowolnego przycisku. + > Jeśli użytkownik odpowie, to przejście do scenariusza A, jeśli nie, to skrypt sprząta po sobie i host się wyłącza. + > maszyna ma zainstalowany system zgodnie z konfiguracją domyślną. + ``` + +3. Uruchomienie instalacji aż do dostępu do powłoki. + + ``` + > Użytkownik resztę robi sam + ``` \ No newline at end of file diff --git a/ks.cfg b/ks.cfg new file mode 100644 index 0000000..c8b87ac --- /dev/null +++ b/ks.cfg @@ -0,0 +1,41 @@ +#Generated by Kickstart Configurator +#platform=AMD64 or Intel EM64T + +#System language +lang en_US +#Language modules to install +langsupport pl_PL --default=en_US +#System keyboard +keyboard us +#System mouse +mouse +#System timezone +timezone --utc Europe/Warsaw +#Root password +rootpw --iscrypted $1$z0BY0NkL$Necy0Mqj6AYqatrm9Pi.Y. +#Initial user +user justuser --fullname "delete me later" --iscrypted --password $1$tmQA0Jxc$/QUItyxu8npyxjoKgEgBv0 +#Reboot after installation +reboot +#Use text mode install +text +#Install OS instead of upgrade +install +#Use Web installation +url --url ftp://192.168.0.1/debian/kickstart +#System bootloader configuration +bootloader --location=mbr +#Clear the Master Boot Record +zerombr yes +#Partition clearing information +clearpart --all --initlabel +#System authorization infomation +auth --useshadow --enablemd5 +#Network information +network --bootproto=dhcp --device=eth0 +#Firewall configuration +firewall --disabled +#X Window System configuration information +xconfig --depth=32 --resolution=1024x768 --defaultdesktop=KDE --startxonboot +#Run the Setup Agent on first boot +firstboot --enable \ No newline at end of file diff --git a/pxeappend.cfg b/pxeappend.cfg new file mode 100644 index 0000000..b517247 --- /dev/null +++ b/pxeappend.cfg @@ -0,0 +1,11 @@ +path debian-installer/amd64/boot-screens/ +include debian-installer/amd64/boot-screens/menu.cfg +default debian-installer/amd64/boot-screens/vesamenu.c32 +prompt 0 +timeout 50 +ONTIMEOUT Kickstart + + +LABEL Kickstart + kernel debian-installer/amd64/linux + append vga=788 initrd=debian-installer/amd64/initrd.gz ks=ftp://192.168.0.2/kickstart/debian/ks.cfg vga=788 initrd=debian-installer/amd64/initrd.gz preseed/url=ftp://192.168.0.2/kickstart/debian/ks.preseed.cfg \ No newline at end of file