Inserisci Infobox

Installazione di Linux via rete

Kickstart, Jumpstart e sistemi di installazione centralizzata via rete.

Metodi di Installazione via Rete di Linux
Autore: al - Ultimo Aggiornamento: 2005-05-06 16:54:37 - Data di creazione: 2004-08-18 09:45:56
Tipo Infobox: DESCRIPTION - Skill: 1- NOVICE

Sebbene praticamente ogni distribuzione Linux venga distribuita tramite CDROM è possibile pianificare una installazione via rete, risparmiando tempo e automatizzando le operazioni.

Fondamentalmente esistono 4 diversi metodi di installazione, con livelli di automazione crescente:
1- Normale Installazione via CD
E' la procedura standard, si fa il boot da un CD e si procede alla configurazione del sistema rispondendo alle varie domande fatte dal tool di installazione. I pacchetti installati vengono prelevati direttamente dai CD forniti.

2- Normale installazione con scaricamento dei pacchetti via rete
E' una procedura leggermente più comoda, si presenta come una normale installazione ma si fa in modo di scaricare tutti i pacchetti via rete (locale, di solito) da un proprio repository creato appositamente. Di fatto questo rende più rapida l'installazione e non costringe, una volta fatte le configurazioni iniziali, a presiedere il sistema per cambiare il CD.
Su sistemi tipo RedHat va digitato al prompt di boot del CDROM linux askmethod per poter avere, successivamente, la richiesta su quale fonte di installazione scegliere.
Su Debian esiste il CD Network Install con il minimo necessario per installare un sistema che al primo riavvio procede allo scaricamento via rete di tutti il software che si sceglie.
E' inoltre possibile, ma ormai meno comodo, fare il boot da un floppy e scaricare il resto via rete (il kernel caricato dal floppy deve avere i driver per la propria scheda di rete).
Anche Gentoo prevede un minimal CD che permette il setup iniziale per poi gestire il resto dell'installazione via rete.

3- Installazione via kickstart o analoghi
Ha un livello di automazione maggiore, perchè permette di definire al boot un file da cui prendere tutti i settaggi che normalmente vengono configurati a mano. In questo modo gran parte dell'installazione avviene automaticamente e senza necessità di presidio, anche se il boot iniziale va fatto dal CD ufficiale.
RedHat e derivati usano KickStart, su Debian è disponibile FAI  (Fully Automatic Installation), Suse ha il suo AutoYaST

4- Installazione tramite PXE
E' la forma più automatica, ma prevedere la configurazione di una adeguata infrastruttura. E' possibile solo per le schede di rete che permettono il boot via rete (supportando la funzionalità PXE, Pre Execution Environment) che, oltre a poter essere usata per thin client senza hard disk locale, si può usare per automatizzare completamente una installazione, senza nemmeno la necessità di inserire il CDROM.

Descrizione di RedHat Kickstart
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2005-05-06 16:21:59 - Data di creazione: 2003-08-19 15:08:05
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Kickstart è un sistema che permette di automatizzare e standardizzare il processo di installazione di Linux e risulta particolarmente utile quando si ha a che fare con un parco macchine particolarmente esteso. E' disponibile nelle distribuzioni di RedHat (Fedora e Enterprise Linux) e nelle derivate.
Permette di installare Linux sia tramite i media tradizionali (cd-rom) sia via network (http,ftp,nfs).
Il vantaggio nell'utilizzo di kickstart deriva dalla possibilità di:
- Rendere più facili e veloci i processi di installazione.
- Customizzare e rendere omogenee le installazioni.
- Automatizzare le attività di post-installazione.
- Installare sistemi con pacchetti RPM già aggiornati.

Risulta dunque essere la scelta ideale se si vuole avere un parco macchine uniforme o si deve prevedere un considerevole numero di nuove installazioni.

Tutto quello che si deve avere a disposizione è:
- Un server kickstart (Servizio Web, NFS, FTP o SMB che rende disponibili via rete gli rpm necessari all'installazione)
- Un dischetto o un cdrom per il primo boot della macchina
- Il file di configurazione (default ks.cfg) contenente tutte le opzioni per l'installazione ed eventuali script pre/post-installazione. Questo file può risiedere direttamente sul kickstart server (ce ne possono essere diversi con configurazioni per sistemi di diversa natura).

ks.cfg
Autore: neo - Ultimo Aggiornamento: 2003-01-27 14:16:05 - Data di creazione: 2003-01-27 14:16:05
Tipo Infobox: PATH - Skill: 4- ADVANCED

File di configurazione per l'installazione tramite kickstart.
Puo risiedere sia su un server kickstart oppure sul disketto o cdrom da cui si e' fatto il boot.

Di seguito e' riportato un esempio di un file per di configurazione per l'installazione minima di un server.
[opgnc@draco ksfile]$ cat ks.cfg
#Generated by Kickstart Configurator
Settaggio lingua,tastiera mouse e timezone
lang en_US
langsupport en_US
keyboard us
mouse none
timezone --utc Europe/Rome
Settaggio della password di root, e' possibile metterla anche in chiaro
rootpw --iscrypted $1$DæðxÔjúÒ$.SIedUi6iZyPLDyZ/BWCf1
reboot
Tipo di installazione
text
Configurazione del boot loader, in questo caso di lilo
bootloader --useLilo --linear --location=mbr
Specificazione del tipo di operazione, INSTALL o UPGRADE
install
Media utilizzato per l'installazione, in questo caso cdrom
cdrom
Parametri per la formattazione e partizionamento del disco
clearpart --all --initlabel
part / --fstype ext3 --size 3800 --asprimary
part  swap --size 256 --asprimary
part /var --fstype ext3 --size 2000 --asprimary
part /tmp --fstype ext3 --size 30 --asprimary
Configurazione Network
network --bootproto static  --ip 10.0.0.202  --netmask 255.255.255.0  --gateway 10.0.0.1  --nameserver 10.0.0.150
Tipo di autentificazione utenti del sistema
auth  --useshadow  --enablemd5
Configurazione del  firewall (ipchains), in questo caso disabilitato
firewall --disabled
#Do not configure the X Window System
Configurazioni per X, in questo non verra' nemmeno installato
skipx
Elenco dei package da installare
%packages
stat
openssh-server
traceroute
tcpdump
procinfo
perl-DBD-MySQL
-ipxutils
telnet
radvd
openssl096
screen
-rarpd
lm_sensors
ntp
libcap
tree
strace
lrzsz
-ethereal
tcp_wrappers
-openssh
ttcp
lsof
ethtool
perl-DBI
lslk
-ircii
-mysql
nmap
ltrace

Script post installazione
%post
/usr/sbin/useradd pippo
chfn -f '' pippo
/usr/sbin/usermod -p '$1$ÉÛiùQíåC$V8KChpD2avz1vCRbjbHsZ.' pippo

Avvio dell'installazione via kickstart
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2005-05-06 16:09:42 - Data di creazione: 2003-09-20 11:05:07
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

Creato un file di configurazione .ks e messo a disposizione sul kickstart server o su un floppy, è possibile avviare l'installazione tramite kickstart.
L'operazione comune per qualunque media che verrà utilizzato per l'installazione è l'avvio del sistema con il boot dai device tradizionali come cd-rom o dischetto.

Al prompt di boot, specificando alcuni parametri è possibile indicare al sistema quale media dovrà utilizzare ma soprattutto dove risiede il file di configurazione per iniziare l'installazione.

Ammettiamo di avere un dischetto contenente sia l'immagine sia il file di configurazione, il comando al boot sarà:
boot: linux ks=floppy
oppure se il file di configurazione si chiama in modo diverso da quello di default (ks.cfg) è possibile specificarlo nel seguente modo:
boot: linux ks=hd:fd0/pippo.cfg
Nel caso in cui il file risieda nel cd-rom lanciare il seguente comando:
boot: linux ks=cdrom:/[path]
Comando di avvio in caso il file di configurazione risieda su un web o NFS server:
boot: linux ks=nfs:[server]:/[path]
boot: linux ks=http://[server]/[path]
In entrambi i casi sarà un dhcp server ad assegnare un indirizzo di rete.

Gli esempi sopra illustrati sono gli esempi delle modalità più utilizzate ma è possibile caricare il file di configurazione sia da un file system locale oppure tramite il dhcp server il quale assegnerà un ip e tutti i parametri necessari per raggiungere il file di configurazione.

Nel caso in cui il sistema preveda più interfacce di rete è possibile specificare tramite la seguente opzione quale interfaccia abilitare per l'installazione.
ksdevice=[device]
Esempio:
boot: linux ks=http://192.168.0.10/distro/servermail.ks ksdevice=eth2

Creazione di un file di configurazione di kickstart
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2005-05-06 16:01:41 - Data di creazione: 2003-01-27 14:24:10
Tipo Infobox: TIPS - Skill: 3- INTERMEDIATE

Creare il file di kickstart con i parametri da impostare via rete è semplice e può seguire due strade, fra loro non alternative:
- Fare una normale installazione su un sistema "master" e poi creare comodi cloni con le stesse impostazioni
- Creare da zero un file di configurazione con gli strumenti forniti dal sistema

Clonare una installazione
Ad ogni installazione di RedHat Linux, viene creato in modo automatico il file di configurazione per kickstart in /root/anaconda-ks.cfg con i parametri e i settaggi relativi alla installazione appena conclusa.
Editandolo a seconda delle proprie esigenze ci si ritrova con un file di configurazione kickstart utilizzabile su macchine clone (che avranno stesse impostazioni e possibilmente hardware simile).

Creazione di un file di configurazione di kickstart
RedHat rende disponibile un front-end grafico avviabile dal menu di gnome o kde (KickStart Configurator) oppure tramite shell lanciando il comando /usr/sbin/system-config-kickstart. Questo strumento permette di definire tutti i parametri relativi ad una installazione di Fedora/RedHat, con una interfaccia che ha gli stessi elementi di Anaconda (l'installer di RedHat), e quindi rende particolarmente semplice la creazione di uno o più file di kickstart da usare per scenari diversi.

Creazione del dischetto di avvio per kickstart
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2005-05-06 15:25:46 - Data di creazione: 2003-08-19 15:24:04
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Una modalità di avvio della macchina che dovrà ospitare Linux è quella tramite floppy disk.

Se non si hanno a disposizione i CD di una distribuzione (qui si fa riferimento a RedHat) si possono utilizzare le immagini e le utility contenute nel primo cd.

Nella directory images si trovano le immagini dei floppy da creare
[neo@dido cdrom]$ ls -l images/boot*
Immagine per il boot senza il supporto di rete
-rw-r--r--    3 root     root      1474560 Sep 10  2001 images/boot.img
Immagine per il boot con il supporto di rete, indispensabile se si utilizza un media di installazione diverso dal cd-rom o dal proprio hdd
-rw-r--r--    3 root     root      1474560 Sep 10  2001 images/bootnet.img


Nella directory dosutils si trovano le utility (rawrite) che permettono di creare il boot-disk per RedHat in ambiente DOS / Windows.

[neo@dido cdrom]$ ls -l dosutils/
total 392
[...]
-rw-r--r--    3 root     root         2017 Jul 28  1996 rawrite3.doc
-rw-r--r--    3 root     root        14305 Jul 28  1996 rawrite.exe
[...]


Creazione del bootdisk da Linux
[neo@dido neo]$ dd if=/mnt/cdrom/images/bootnet.img of=/dev/fd0 bs=1440k
1+0 records in
1+0 records out


[neo@dido neo]$ mount /mnt/floppy/
[neo@dido neo]$ ls -l /mnt/floppy/
total 1413
-rwxrwxr-x    1 neo      neo           955 Sep  9  2001 boot.msg
-rwxrwxr-x    1 neo      neo           658 Sep  9  2001 expert.msg
-rwxrwxr-x    1 neo      neo          1202 Sep  9  2001 general.msg
-rwxrwxr-x    1 neo      neo        761737 Sep  9  2001 initrd.img
-r-xr-xr-x    1 neo      neo          6192 Sep  9  2001 ldlinux.sys
-rwxrwxr-x    1 neo      neo           862 Sep  9  2001 param.msg
-rwxrwxr-x    1 neo      neo           506 Sep  9  2001 rescue.msg
-rwxrwxr-x    1 neo      neo           716 Sep  9  2001 syslinux.cfg
-rwxrwxr-x    1 neo      neo        671411 Sep  9  2001 vmlinuz


ll disco di boot è pronto, inserire il floppy nel pc e riavviare.

Creazione del bootdisk da una finestra DOS in Windows tramite rewrite
C:\> d:
D:\> cd \dosutils
D:\dosutils> rawrite
Enter disk image source file name: ..\images\boot.img
Enter target diskette drive: a:
Please insert a formatted diskette into drive A: and press --ENTER-- :
D:\dosutils>

Preboot eXecution Environment
Autore: kbonasia - Ultimo Aggiornamento: 2013-12-19 10:19:49 - Data di creazione: 2013-12-19 10:19:49
Tipo Infobox: SAMPLE - Skill:

The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment; sometimes pronounced "pixie") is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or installed operating systems.

The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment; sometimes pronounced "pixie") is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or installed operating systems.

PXE can be considered one of the ways to load the operating system on a computer. When the computer has the PXE capabilities, the bios shows the user the ability to choose among the possible devices to load the operating system, booting from the network.

If this option is selected, the firmware PXE uses DHCP to configure an IP address on the network adapter and locate a server (the "boot server") via TFTP to download a file, storing it in RAM memory. This file is then executed, providing for booting an operating system.

In standard mode, the DHCP server does not provide directly the boot server, but acts as a "PXE redirection service", which redirects the client to the PXE server available. The PXE server are modified DHCP servers, which use UDP port 4011, and provide the client with the IP address of the boot server and the name of the network bootstrap program (NBP) to download.

In practice, usually the PXE firmware is able to directly receive the necessary parameters from the DHCP server to identify the server and the boot file to download, and you can configure a standard DHCP server to provide the necessary parameters to boot via PXE.
sudo apt-get install tftpd-hpa dhcp3-server netkit-inetd lftp

Modify the /etc/default/tftpd-hpa file as follows
RUN_DEAMON="yes" TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -v -v --secure"

The last row will have a verbose log. Now we work on the files related to the DHCP Service:
vim /etc/dhcp3/dhcpd.conf

and write:
option domain-name-servers 8.8.8.8;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 113.112.117.0 netmask 255.255.255.0 {range 113.112.117.118 113.112.117.250; filename "pxelinux.0";
option subnet-mask 255.255.255.0;
option broadcast-address 113.112.117.255;
option routers 113.112.117.1;
next-server 113.112.117.118; }

clearly ip addresses are totally invented, you put the right ones. The filename parameter is usually pxelinux.0 but can be modified at will by placing it where it  is convenient to you. It is not over yet with DHCP...
vim /etc/default/dhcp3-server

specifying the interface to use with the INTERFACES directive. We put in /var/ lib/tftpboot an Ubuntu distribution netboot version taking it from here
lftp -c "open http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/current/images/; mirror netboot/"

then we start the services
sudo /etc/init.d/tftpd-hpa start
sudo /etc/init.d/dhcp3-server start

and we pass to the configuration of the PC terminal on which it will be installing the operating system.

Usually the modern BIOS have the option of the boot set the F12 key, but I recommend the classic RTFM ... to dispel any doubt. the computer that will be used as a terminal try the IP address via DHCP and once it has obtained this will allow access to the folder of the tftp server from showing the typical GRUB installation.

I usually work with server versions of Ubuntu, but it could happen that the desktop version, using the graphical installer does not allow the proper display of the options, especially if the machine on which you want to proceed is a bit 'old and has not large-capacity video graphics.

in this case, edit the
/var/lib/tftpboot/ubuntu-installer/i386/boot-screens
and write
wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/
ubuntu-installer/i386/boot-screens/boot.txt
wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/
ubuntu-installer/i386/boot-screens/splash.rle

This will allow you to boot with options also apply to older machines.

Privacy Policy