Automatinstallera Debian

Permalänk
Medlem

Automatinstallera Debian

Tänkte jag skulle skriva lite här om dom erfarenheter jag skaffat mig när jag stökat runt i mitt hemmalabb. Börjar med hur man automatinstallerar en Debian-maskin.

Vet inte hur det är med er, men har man väl börjat köra virtualisering så är det lätt att man vill ha upp en separat maskin för varje liten sak man pillar med; En för Plex, en för DNS, en för DHCP etc.. Det blir ju lätt lite träligt då att sitta och knappa sig igenom installationsförfarandet varje gång.

Med debian kan man peka ut ett preseed-script som automatiskt installerar och konfar upp maskinen åt dig.

För att få allt det här att fundera krävs följande:

  • En DHCP-server där du själv kan sätta lite options

  • En weberver som kan serva statiska filer

  • En debian netinstall iso

Installationsproceduren går till såhär:

  • Man bootar maskinen från netinstall ison

  • Man väljer "Automated install"

  • Installern frågar DHCP-servern efter URL:en till preseed-scriptet

  • Installern laddar ner preseed-scriptet från webservern

  • Installern kör igång installationen och gör det som står i preseed-scriptet.

Vi börjar med DHCP-servern. I min miljö finns det en Windows 2012-server som hanterar DNS och DHCP åt mig, men det går bra med en Linux DHCP-server med, det är faktiskt lite enklare att konfigurera det där..

  • I alla fall. Dra upp DHCP-konsollen i Windows server, högerklicka på din server och välj "Define Vendor Classes...", klicka på "Add..." för att lägga till en ny klass. Kalla den för "Debian" och skriv in "d-i" under ASCII. Klicka på "Close".

  • Högerklicka på "Policies" och välj "New Policy...". Skriv "Debian" som Policy Name, klicka på Next.

  • I "Configure conditions..." klicka på Add, välj Vendor Class i Criteria-menyn och Equals i Operator-menyn.

  • I Value-menyn, välj Debian och klicka på Add, sedan Next

  • I Configure Settings.. välj Debian i Vendor Class menyn

  • Under Available options, kryssa i 067

  • I rutan String value, knappa in URL:en till din webserver och a´namnet på preseed-filen (som vi inte skapat än): Till exempel http://192.168.0.20/files/preseed.cfg

  • Använd IP-nummer här, inga domännamn.

  • Klicka på Next, sedan Finish

Vad vi nu har gjort är att skapa en policy som säger åt alla maskiner som presenterar sig hos DHCP-servern som en Debian-installation vart dom kan hitta preseed-scriptet, alla andra maskiner kommer inte att se den här inställningen.

Om du har en Linux DHCP-server så kan du lägga in den här strängen i din konfig:

if substring (option vendor-class-identifier, 0, 3) = "d-i" { filename "http://192.168.0.20/preseed.cfg"; }

Då ska vi skapa preseed-filen.

Jag börjar med att paste:a in filen jag använder för tillfället, så går vi igenom den lite efteråt:

#### Contents of the preconfiguration file (for jessie) ### Localization d-i debian-installer/locale string en_US.UTF-8 d-i debian-installer/keymap select se d-i keymap select se d-i keyboard-configuration/xkb-keymap select se ### Network configuration d-i netcfg/choose_interface select auto d-i netcfg/wireless_wep string ### Mirror settings d-i mirror/protocol string http d-i mirror/country string se d-i mirror/http/hostname string repo.hemma.lokal d-i mirror/http/directory string /debian d-i mirror/http/proxy string # Suite to install. #d-i mirror/suite string testing ### Account setup d-i passwd/root-login boolean false d-i passwd/user-fullname string Scuttle d-i passwd/username string scuttle d-i passwd/user-password password hemligtlösenord d-i passwd/user-password-again password hemligtlösenord ### Clock and time zone setup d-i clock-setup/utc boolean true d-i time/zone string Europe/Stockholm d-i clock-setup/ntp boolean true ### Partitioning d-i partman-auto/method string lvm d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true 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 d-i partman-md/confirm boolean true 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 ### Apt setup d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true ### Package selection tasksel tasksel/first multiselect minimal d-i pkgsel/include string openssh-server rsync unzip mc open-vm-tools ntpdate apt-transport-https curl wget python d-i pkgsel/upgrade select full-upgrade ### Boot loader installation d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i grub-installer/bootdev string default ### Finishing up the installation d-i finish-install/reboot_in_progress note

Nedan följer filen uppstyckad med lite kommentarer

#### Contents of the preconfiguration file (for jessie) ### Localization d-i debian-installer/locale string en_US.UTF-8 d-i debian-installer/keymap select se d-i keymap select se d-i keyboard-configuration/xkb-keymap select se

Här börjar vi med att ställa in språkinställningarna, svenskt tangentbord etc.

### Network configuration d-i netcfg/choose_interface select auto d-i netcfg/wireless_wep string

Nätverksinställningar, säger till den att köra alla interface på DHCP

### Mirror settings d-i mirror/protocol string http d-i mirror/country string se d-i mirror/http/hostname string repo.hemma.lokal d-i mirror/http/directory string /debian d-i mirror/http/proxy string

Vart ska jag hämta installationsfilerna? I mitt fall så har jag ett lokalt debian-repo (mer om detta i ett senare inlägg)

# Suite to install. #d-i mirror/suite string testing

Som default så installerar den stable (jessie för tillfället), men om man vill installera testing är det bara att avkommentera raden här.

### Account setup d-i passwd/root-login boolean false d-i passwd/user-fullname string Scuttle d-i passwd/username string scuttle d-i passwd/user-password password hemligtlösenord d-i passwd/user-password-again password hemligtlösenord

Här sätter jag upp konton. Jag börjar med att "stänga av" root-kontot, detta get automatiskt det kontot jag skapar i raderna efter sudo-rättigheter. Lösenordet kan man även ange som en hash om man inte tycker att det är en bra ide att ha sina lösenord i klartext.

### Clock and time zone setup d-i clock-setup/utc boolean true d-i time/zone string Europe/Stockholm d-i clock-setup/ntp boolean true

Svensk tid

### Partitioning d-i partman-auto/method string lvm d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true 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 d-i partman-md/confirm boolean true 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

Här är "receptet" för diskpartitioneringen. Den blåser alla eventuella partitioner och sätter upp en standard lvm-uppsättining. Här kan man ju göra på många olika sätt, men jag tycker att standardinställningarna funkar fint för mig, den delar inte upp disken i några partitioner utan lägger allt under /. Jag föredrar att skapa en disk med en lite mindre ursprungsdisk och sedan eventuellt haka på fler diskar och utöka med LVM

### Apt setup d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true

Aktiverar non-free och contrib-repona

### Package selection tasksel tasksel/first multiselect minimal d-i pkgsel/include string openssh-server rsync unzip mc open-vm-tools ntpdate apt-transport-https curl wget python d-i pkgsel/upgrade select full-upgrade

Här säger jag till installeraren att installera en minimal, text-only server, med lite extra småpaket tillagda efteråt

### Boot loader installation d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i grub-installer/bootdev string default

Installerar en standard bootloader

### Finishing up the installation d-i finish-install/reboot_in_progress note

Sen är vi klara

Spara filen på lämpligt ställe på din webserver. Den ska vara åtkomlig från URL:en du angav i DHCP-servern (http://192.168.0.20/files/preseed.cfg)

Boota upp din maskin med netinstall-ison, välj "Advanced options", sen "Automated install". Har du gjort allt rätt så kommer datorn stå och rassla en stund, sen presentera dig med en färdiginstallerad Debian-maskin

lite stavfel...
Permalänk
Medlem

Tack för denna guide, har själv funderat på liknande. Vad är skillnaden för Ubuntu?

Visa signatur

Citera för svar

Stora Owncloud/Nextcloud-tråden: http://www.sweclockers.com/forum/122-server/1212245-officiell...
Jobb: Datacenter Manager
Grundare: https://www.hanssonit.se

Permalänk
Medlem

@Scuttle: Vad använder du för hypervisor till dessa VM?

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Den här tråden bör bli klistrad!

Skickades från m.sweclockers.com

Permalänk
Medlem

Varför inte bara köra containers, ala docker?

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem

@zarkov: VMWare 6, men det ska inte spela nån roll för just det här momentet

Permalänk
Medlem

@Commander: Kan man göra, men eftersom jag inte gör det så gör jag såhär...

Permalänk
Medlem

@enoch85: I fallet Ubuntu tror jag skillnaden är minimal då båda använder apt och debian-installer, skulle gissa att min konf nog skulle funka rakt av med en ubuntu-installation

Permalänk
Medlem
Skrivet av Scuttle:

@enoch85: I fallet Ubuntu tror jag skillnaden är minimal då båda använder apt och debian-installer, skulle gissa att min konf nog skulle funka rakt av med en ubuntu-installation

Du skriver i guiden att det är enklare med Linux, vore nice med en guide där med då du har en Windows Server. Såg nu att du addat koden.

Keep it up!

Visa signatur

Citera för svar

Stora Owncloud/Nextcloud-tråden: http://www.sweclockers.com/forum/122-server/1212245-officiell...
Jobb: Datacenter Manager
Grundare: https://www.hanssonit.se

Permalänk
Medlem

Ett annat sätt att få nya maskiner snabbt är att sonika installera en mall och sen kopiera den disken, lite jobbigare om man har olika storlek på diskarna till många VM's men för mig fungerar det bra.

Det enda extra med metoden jag kör är att jag får gå in och byta hostname på maskinen, men med tanke på hur fort det går att skapa nya maskiner genom att kopiera en färdiginstallerad så är jag okej med det.

Permalänk
Medlem
Skrivet av liten1:

Ett annat sätt att få nya maskiner snabbt är att sonika installera en mall och sen kopiera den disken, lite jobbigare om man har olika storlek på diskarna till många VM's men för mig fungerar det bra.

Det enda extra med metoden jag kör är att jag får gå in och byta hostname på maskinen, men med tanke på hur fort det går att skapa nya maskiner genom att kopiera en färdiginstallerad så är jag okej med det.

Inte lika nördigt och "snyggt"

Visa signatur

.

Permalänk
Medlem

@liten1: Absolut. Fördelen med den här metoden är att den är tämligen hands-off när du väl har miljön uppe. Du behöver inte bry dig om att ändra hostnamet och systemet är alltid uppdaterat.

En image kan ju lätt "ruttna", man gör en Debian 7 image, sen kommer Debian 8, 9...

Permalänk
Medlem
Skrivet av Scuttle:

@liten1: Absolut. Fördelen med den här metoden är att den är tämligen hands-off när du väl har miljön uppe. Du behöver inte bry dig om att ändra hostnamet och systemet är alltid uppdaterat.

En image kan ju lätt "ruttna", man gör en Debian 7 image, sen kommer Debian 8, 9...

Jag kör säjlv med "base images" för de VMs jag producerar (för nedladdning) och precis som du säger, vid varje ny release så får man göra om allt. Drygt!

Visa signatur

Citera för svar

Stora Owncloud/Nextcloud-tråden: http://www.sweclockers.com/forum/122-server/1212245-officiell...
Jobb: Datacenter Manager
Grundare: https://www.hanssonit.se