Installazione debian senza clic
Boot da rete
Servizi necessari
Server
- dhcp3-server
- tftpd-hpa (questa versione, non un'altra)
- server web Apache
Client
- scheda di rete con supporto pxe o floppy/cd avvio con rom pxe www.rom-o-matic.net
Il servizio tftp gira sulla porta 69/UDP. Se si usano le iptables, bisogna aprire questa porta.
Dubbi
DHCP TFTP
I tentativi di avvio da rete su client con nic 3c905 hanno avuto esito positivo solo quando la lease dhcp è stata data dallo stesso server con il demone tftp. Nella schermata di avvio l'opzione next server viene passata ed è visualizzata sui client come "DHCP Server: " con l'indirizzo corretto del server TFTP, ma il client và in tftp time out. Eseguendo le prove su client virtuali vmware (nic amd),su workstation HP (nic intel proset), chipset realtek 8139 family l'installazione procede regolarmente. Al momento i client enface (nic sis900) avviano l'installazione da rete, ma si bloccano nel caricamento dei pacchetti da mirror.unimore.it
Bisogna registrare l'host nel dhcpd? Potrebbe bastare modificare le options del maintain?
La registrazione doppia dell'host nel dhcp di maintain e del server TFTP sembra quindi obbligatoria per le schede 3com 3c905, non è chiaro cosa succeda se la lease viene assegnata dai server dns unimo
Esempi
In questo esempio sia il server dhcp che quello tftp sono presenti sulla stessa macchina. File /etc/dhcp3/dhcp3.conf
option domain-name "unimo.it"; option domain-name-servers 155.185.1.2; # allow bootp; # allow booting; default-lease-time 600; max-lease-time 7200; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. subnet 155.185.0.0 netmask 255.255.255.0 { option routers 155.185.0.254; } host install { filename "pxelinux.0"; next-server Thor.cesia.unimo.it; hardware ethernet 00:01:02:19:3A:F6; fixed-address 155.185.0.91; }
Riferimenti
Setting up a server for PXE network booting
preseed.cfg
Esempi
File /var/lib/tftpboot/pxelinux.cfg/default per passare alcuni parametri:
DISPLAY debian-installer/i386/boot-screens/boot.txt F1 debian-installer/i386/boot-screens/f1.txt F2 debian-installer/i386/boot-screens/f2.txt F3 debian-installer/i386/boot-screens/f3.txt F4 debian-installer/i386/boot-screens/f4.txt F5 debian-installer/i386/boot-screens/f5.txt F6 debian-installer/i386/boot-screens/f6.txt F7 debian-installer/i386/boot-screens/f7.txt F8 debian-installer/i386/boot-screens/f8.txt F9 debian-installer/i386/boot-screens/f9.txt F0 debian-installer/i386/boot-screens/f10.txt DEFAULT install LABEL install kernel debian-installer/i386/linux append auto url=http://155.185.0.89/di/preseed.cfg debian-installer/locale=it_IT languagechooser/language-name=Italian countrychooser/shortlist=IT console-keymaps-at/keymap=it netcfg/get_hostname=unassigned-hostname netcfg/get_domain=unassigned-domain time/zone=Europe/Rome vga=normal initrd=debian-installer/i386/initrd.gz -- LABEL linux kernel debian-installer/i386/linux append vga=normal initrd=debian-installer/i386/initrd.gz -- LABEL expert kernel debian-installer/i386/linux append priority=low vga=normal initrd=debian-installer/i386/initrd.gz -- LABEL rescue kernel debian-installer/i386/linux append vga=normal initrd=debian-installer/i386/initrd.gz rescue/enable=true -- LABEL auto kernel debian-installer/i386/linux append auto=true priority=critical vga=normal initrd=debian-installer/i386/initrd.gz -- PROMPT 1 TIMEOUT 0
Impostando TIMEOUT ad 1 l'installer non aspetterà conferma per iniziare l'installazione.
Per la creazione del file preseed.cfg si consiglia di fare molta attenzione alle domande che avranno risposta in italiano ed a quelle che invece avranno risposta in inglese. Per questo motivo è consigliato l'uso del comando debconf-get-selections per avere una panoramica di tutte le domande e le risposte che vengono fatte durante l'installazione di DEBIAN.
In questo esempio il file preseed.gfg è stato messo all'interno della directory /var/www/di/
File preseed.cfg:
Referimenti
Compliazione dei file di preseed
capistrano
capistrano è un progetto in ruby per automatizzare il deployment di applicazioni rails, ma si presta molto bene ad eseguire degli script di configurazione post-installazione.
Installare Capistrano su un server
Dopo aver installato ruby, fare il download di rubygems-*.tgz dal sito del progetto, scompattare il pacchetto e installarlo con ruby setup.rb, eseguire:
gem update --system gem install capistrano
Importare il progetto command e setup del server
svn checkout svn+ssh://vm-debian.lab.unimo.it/var/lib/svn/command/trunk command
(se questo comando non funziona, significa che mancano dei permessi sul server svn, oppure che c'e' un mismatch nel nome degli utenti tra linux e svn e bisogna dare la possibilita' all'utente svn di cambiare i permessi del file .ssh /known_host dell'utente linux: setfacl -m u:francesco:rwx /home/command/.ssh )
Copiare il file id_command dalla cartella doc in ~/.ssh e fare chmod 600.
Modificare il file config/setup.rb nella riga ssh_options[:keys] di conseguenza.
Preparare un client agli aggiornamenti tramite capistrano
Eseguire sul client il file setup.sh che si trova in /doc.
Configurare/aggiornare un client
Il file da modificare è setup/deploy.rb.
Per ogni client da installare, aggiungere una sezione:
task :enface6 do role :app, "enface6.lab.unimo.it" end
Ed eventualmente modificare il task :all.
L'elenco dei task disponibili è:
cap -T
(gli unici si interesse sono quelli prefissati da setup)
I task si eseguono con:
cap enface6 setup_ldap
E si possono concatenare:
cap enface6 setup_ntp setup_ldap
E si può sostituire il nome host con all.