/
/
/
Plusieurs méthodes permettent l'installation d'un serveur Solaris 10x86 :
Via le DVD (ou CD) : méthode simple et efficace mais pas très optimal (en production)
Via le réseau : méthode d'installation basé sur les réseaux avec une image de type flar.
Cette dernière méthode peut être mise en oeuvre soit par :
Un boot via PXE : nécessite la mise en place d'un serveur DHCP (un peu lourd) et d'un serveur d'images
Un boot via GRUB : nécessite la mise en place d'un serveur TFTP (très simple) et d'un serveur d'images
L'article va porter sur une installation réseau initialisé par GRUB.
Petits rappels
Sur une architecture i386, l'activation d'un device (disque, clé usb, cd, dvd, ...) fonctionne si et seulement si une structure MBR (Master Boot Record) est présente sur les premiers secteurs du device. A partir de l'update 1 de Solaris 10, la structure MBR est initialisée par le programme GRUB (qui plus est un chainloader).
Il faut donc que le serveur soit initialisé avec un device possédant une MBR valide.
Schéma
Explications
Le plus simple est de créer une image iso bootable pour l'utiliser comme :
Une image gravée sur un support physique (clé usb, dvd, cd, ...) à mettre dans le serveur
Une image lancée via la javaconsole du déport Console
Cette image contiendra le programme GRUB ainsi qu'un fichier "menu.lst" contenant :
La configuration de l'interface réseau
L'entrée pour rechercher les fichiers de configuration jumpstart
Le nom du miniroot Solaris
Boot réseau selon GRUB
GRUB permet la configuration dynamique d'une interface réseau disponible sur le serveur (à condition que GRUB dispose du bon driver réseau). Par exemple :
ifconfig --address=192.168.100.20 --gateway=192.168.100.254 --mask=255.255.255.0 --server=192.168.0.20
root (nd)
Dans cette exemple:
Le serveur à installer est configuré avec l'adresse 192.168.100.20/24
L'adresse du routeur par défaut est 192.168.100.254
Le server tftpd (contenant le miniroot et le programme multiboot) est joignable à l'adresse suivante 192.168.0.20
Une fois l'intercace réseau correctement configurée, il faut indiquer l'emplacement des fichiers de configuration jumpstart. Par exemple :
Quelques précisions sont nécessaires :
kernel multiboot kernel/unix : on utilise le programme multiboot qui doit être disponible sur le serveur tftpd
install : mot clé qui sera interprété par le miniroot Solaris 10 pour lancer le processus d'installation
nfs://... : indique l'emplacement des fichiers jumpstart archivés par la commande tar.
-B install_media : indique l'emplacement des fichiers catalogues de l'image Solaris 10
output-device=ttya : redirection de la sortie sur le port série (uniquement utilise si utilisation d'un déport console)
input-device=ttya : redirection de l'entrée sur le port série (uniquement utilise si utilisation d'un déport console)
-k : lancement du kernel en mode debug
Il suffit de préciser l'emplacement du miniroot Solaris 10 par l'instruction module :
module x86.miniroot
Schéma :
Exemple complet du fichier menu.lst
ifconfig --address=192.168.100.20 --gateway=192.168.100.254 --mask=255.255.255.0 --server=192.168.0.20
root (nd)
Configuration du serveur ftpd
Si tout est correctement assimilé, le serveur tftpd doit contenir :
Le miniroot Solaris 10
Le programme multiboot
Le miniroot et le programme multiboot sont disponibles sur l'image Solaris 10 dans ./Solaris_10/Tools/Boot.
# mkdir /tftpboot
# chmod 755 /tftpboot
# cd /jumpstarts/image/0508/Solaris_10/Tools/Boot
# cp -pr multiboot /tftpboot
# cp -pr x86.miniroot /tftpboot
# egrep tftp /etc/inetd.conf
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
# inetconv -i /etc/inetd.conf
# inetadm -l svc:/network/tftp/udp6:default
SCOPE NAME=VALUE
name="tftp"
endpoint_type="dgram"
proto="udp6"
isrpc=FALSE
wait=TRUE
exec="/usr/sbin/in.tftpd -s /tftpboot"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
# inetadm | egrep tftp
enabled online svc:/network/tftp/udp6:default
Configuration du serveur d'images
Le serveur d'images et le serveur tftp peuvent être sur le même serveur. Le service nfs server doit être activé.
# svcs svc:/network/nfs/server:default
STATE STIME FMRI
disabled Sep_29 svc:/network/nfs/server:default
# svcadm enable svc:/network/nfs/server:default
# svcs svc:/network/nfs/server:default
STATE STIME FMRI
online Sep_29 svc:/network/nfs/server:default
Il faut partager le répertoire où l'archive des fichiers jumpstart est présente, tout comme le répertoire où les images flar sont disponibles. Par exemple :
Les fichiers de configuration se trouvent dans /jumpstart/config
On distingue la configuration d'un serveur par son nom
Les images flar sont disponibles dans /jumpstart/flar
# share -F nfs -o ro,anon=0 /jumpstarts/config
# share -F nfs -o ro,anon=0 /jumpstarts/flar
# ls /jumpstarts/config
bros maya porcine snoopy
# cd /jumpstarts/config/maya
# ls -l
-rwxr-xr-x 1 root sys 59536 Dec 30 2005 check
-rw-r--r-- 1 root sys 494 Oct 14 10:16 class
-rw-r--r-- 1 root sys 89600 Oct 14 10:16 config.tar
-rwxr-xr-x 1 root sys 2115 Oct 14 10:14 final
-rwxr-xr-x 1 root sys 104 Oct 14 09:59 rules
-rw-r--r-- 1 root sys 50 Oct 14 10:16 rules.ok
-rw-r--r-- 1 root sys 8211 Oct 14 10:16 start
-rw-r--r-- 1 root sys 493 Oct 14 10:16 sysidcfg
# tar tpvf config.tar
-rwxr-xr-x 0/3 59536 Dec 30 16:38 2005 check
-rw-r--r-- 0/3 494 Oct 14 10:16 2008 class
-rwxr-xr-x 0/3 2115 Oct 14 10:14 2008 final
-rwxr-xr-x 0/3 104 Oct 14 09:59 2008 rules
-rw-r--r-- 0/3 50 Oct 14 10:16 2008 rules.ok
-rw-r--r-- 0/3 8211 Oct 14 10:16 2008 start
-rw-r--r-- 0/3 493 Oct 14 10:16 2008 sysidcfg
# cd /jumpstarts/flar
# ls -l
-rw-r--r-- 1 nobody nobody 1395713430 Jul 24 22:11 Solaris10_0508_i386_137112-03.flar
-rw-r--r-- 1 nobody nobody 1354739700 Jun 27 2007 Solaris10_0606_i386_125101-03.flar
-rw-r--r-- 1 nobody nobody 1537956952 Jul 23 15:35 Solaris10_0807_i386_127112-11.flar
-rw-r--r-- 1 nobody nobody 1308381763 Jun 29 2007 Solaris10_1106_i386_125101-10.flar
Informations sur les fichiers jumpstart
Le contenu des fichiers jumpstart ne sera pas expliqué ici (ce n'est pas le but de larticle). Le fichier class doit contenir les informations suivantes :
# pwd
/jumpstarts/config/maya
# cat class
install_type flash_install
archive_location nfs 192.168.0.20:/jumpstarts/flar/Solaris10_0508_i386_137112-03.flar
...
En résumé
Il est possible de charger un serveur Solaris 10x86 par le réseau en utilisant GRUB pour initialiser la connexion. Une fois les points suivants adaptés, il s'agit d'une solution reobuste pour un environnement de production :
Génération automatique des fichiers iso bootables
Génération automatique des fichiers jumpstart
Via le DVD (ou CD) : méthode simple et efficace mais pas très optimal (en production)
Via le réseau : méthode d'installation basé sur les réseaux avec une image de type flar.
Cette dernière méthode peut être mise en oeuvre soit par :
Un boot via PXE : nécessite la mise en place d'un serveur DHCP (un peu lourd) et d'un serveur d'images
Un boot via GRUB : nécessite la mise en place d'un serveur TFTP (très simple) et d'un serveur d'images
L'article va porter sur une installation réseau initialisé par GRUB.
Petits rappels
Sur une architecture i386, l'activation d'un device (disque, clé usb, cd, dvd, ...) fonctionne si et seulement si une structure MBR (Master Boot Record) est présente sur les premiers secteurs du device. A partir de l'update 1 de Solaris 10, la structure MBR est initialisée par le programme GRUB (qui plus est un chainloader).
Il faut donc que le serveur soit initialisé avec un device possédant une MBR valide.
Schéma
Explications
Le plus simple est de créer une image iso bootable pour l'utiliser comme :
Une image gravée sur un support physique (clé usb, dvd, cd, ...) à mettre dans le serveur
Une image lancée via la javaconsole du déport Console
Cette image contiendra le programme GRUB ainsi qu'un fichier "menu.lst" contenant :
La configuration de l'interface réseau
L'entrée pour rechercher les fichiers de configuration jumpstart
Le nom du miniroot Solaris
Boot réseau selon GRUB
GRUB permet la configuration dynamique d'une interface réseau disponible sur le serveur (à condition que GRUB dispose du bon driver réseau). Par exemple :
ifconfig --address=192.168.100.20 --gateway=192.168.100.254 --mask=255.255.255.0 --server=192.168.0.20
root (nd)
Dans cette exemple:
Le serveur à installer est configuré avec l'adresse 192.168.100.20/24
L'adresse du routeur par défaut est 192.168.100.254
Le server tftpd (contenant le miniroot et le programme multiboot) est joignable à l'adresse suivante 192.168.0.20
Une fois l'intercace réseau correctement configurée, il faut indiquer l'emplacement des fichiers de configuration jumpstart. Par exemple :
kernel multiboot kernel/unix install nfs://192.168.0.20/jumpstarts/config/maya/config.tar -B
install_media=192.168.0.20:/jumpstarts/miniroot/0508,output-device=ttya,input-device=ttya -k
Attention il s'agit d'une seule ligne
Quelques précisions sont nécessaires :
kernel multiboot kernel/unix : on utilise le programme multiboot qui doit être disponible sur le serveur tftpd
install : mot clé qui sera interprété par le miniroot Solaris 10 pour lancer le processus d'installation
nfs://... : indique l'emplacement des fichiers jumpstart archivés par la commande tar.
-B install_media : indique l'emplacement des fichiers catalogues de l'image Solaris 10
output-device=ttya : redirection de la sortie sur le port série (uniquement utilise si utilisation d'un déport console)
input-device=ttya : redirection de l'entrée sur le port série (uniquement utilise si utilisation d'un déport console)
-k : lancement du kernel en mode debug
Il suffit de préciser l'emplacement du miniroot Solaris 10 par l'instruction module :
module x86.miniroot
Schéma :
Exemple complet du fichier menu.lst
ifconfig --address=192.168.100.20 --gateway=192.168.100.254 --mask=255.255.255.0 --server=192.168.0.20
root (nd)
kernel multiboot kernel/unix install nfs://192.168.0.20/jumpstarts/config/maya/config.tar -B
install_media=192.168.0.20:/jumpstarts/miniroot/0508,output-device=ttya,input-device=ttya -k
module x86.minirootConfiguration du serveur ftpd
Si tout est correctement assimilé, le serveur tftpd doit contenir :
Le miniroot Solaris 10
Le programme multiboot
Le miniroot et le programme multiboot sont disponibles sur l'image Solaris 10 dans ./Solaris_10/Tools/Boot.
# mkdir /tftpboot
# chmod 755 /tftpboot
# cd /jumpstarts/image/0508/Solaris_10/Tools/Boot
# cp -pr multiboot /tftpboot
# cp -pr x86.miniroot /tftpboot
# egrep tftp /etc/inetd.conf
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
# inetconv -i /etc/inetd.conf
# inetadm -l svc:/network/tftp/udp6:default
SCOPE NAME=VALUE
name="tftp"
endpoint_type="dgram"
proto="udp6"
isrpc=FALSE
wait=TRUE
exec="/usr/sbin/in.tftpd -s /tftpboot"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
# inetadm | egrep tftp
enabled online svc:/network/tftp/udp6:default
Configuration du serveur d'images
Le serveur d'images et le serveur tftp peuvent être sur le même serveur. Le service nfs server doit être activé.
# svcs svc:/network/nfs/server:default
STATE STIME FMRI
disabled Sep_29 svc:/network/nfs/server:default
# svcadm enable svc:/network/nfs/server:default
# svcs svc:/network/nfs/server:default
STATE STIME FMRI
online Sep_29 svc:/network/nfs/server:default
Il faut partager le répertoire où l'archive des fichiers jumpstart est présente, tout comme le répertoire où les images flar sont disponibles. Par exemple :
Les fichiers de configuration se trouvent dans /jumpstart/config
On distingue la configuration d'un serveur par son nom
Les images flar sont disponibles dans /jumpstart/flar
# share -F nfs -o ro,anon=0 /jumpstarts/config
# share -F nfs -o ro,anon=0 /jumpstarts/flar
# ls /jumpstarts/config
bros maya porcine snoopy
# cd /jumpstarts/config/maya
# ls -l
-rwxr-xr-x 1 root sys 59536 Dec 30 2005 check
-rw-r--r-- 1 root sys 494 Oct 14 10:16 class
-rw-r--r-- 1 root sys 89600 Oct 14 10:16 config.tar
-rwxr-xr-x 1 root sys 2115 Oct 14 10:14 final
-rwxr-xr-x 1 root sys 104 Oct 14 09:59 rules
-rw-r--r-- 1 root sys 50 Oct 14 10:16 rules.ok
-rw-r--r-- 1 root sys 8211 Oct 14 10:16 start
-rw-r--r-- 1 root sys 493 Oct 14 10:16 sysidcfg
# tar tpvf config.tar
-rwxr-xr-x 0/3 59536 Dec 30 16:38 2005 check
-rw-r--r-- 0/3 494 Oct 14 10:16 2008 class
-rwxr-xr-x 0/3 2115 Oct 14 10:14 2008 final
-rwxr-xr-x 0/3 104 Oct 14 09:59 2008 rules
-rw-r--r-- 0/3 50 Oct 14 10:16 2008 rules.ok
-rw-r--r-- 0/3 8211 Oct 14 10:16 2008 start
-rw-r--r-- 0/3 493 Oct 14 10:16 2008 sysidcfg
# cd /jumpstarts/flar
# ls -l
-rw-r--r-- 1 nobody nobody 1395713430 Jul 24 22:11 Solaris10_0508_i386_137112-03.flar
-rw-r--r-- 1 nobody nobody 1354739700 Jun 27 2007 Solaris10_0606_i386_125101-03.flar
-rw-r--r-- 1 nobody nobody 1537956952 Jul 23 15:35 Solaris10_0807_i386_127112-11.flar
-rw-r--r-- 1 nobody nobody 1308381763 Jun 29 2007 Solaris10_1106_i386_125101-10.flar
Informations sur les fichiers jumpstart
Le contenu des fichiers jumpstart ne sera pas expliqué ici (ce n'est pas le but de larticle). Le fichier class doit contenir les informations suivantes :
# pwd
/jumpstarts/config/maya
# cat class
install_type flash_install
archive_location nfs 192.168.0.20:/jumpstarts/flar/Solaris10_0508_i386_137112-03.flar
...
En résumé
Il est possible de charger un serveur Solaris 10x86 par le réseau en utilisant GRUB pour initialiser la connexion. Une fois les points suivants adaptés, il s'agit d'une solution reobuste pour un environnement de production :
Génération automatique des fichiers iso bootables
Génération automatique des fichiers jumpstart