KIWI vous permet de créer des images du système d'exploitation. Ce chapitre décrit le processus de déploiement d'une image système sur une machine cliente vide. Pour ce faire, vous devez créer une image de préchargement qui contient une image BRUTE amorçable. Ce fichier se divise en deux parties importantes : une table de partition et le système d'exploitation actuel. Cette image BRUTE sera enregistrée sur le disque dur vide et le système d'exploitation occupera l'espace disque restant lors du démarrage initial.
Pour créer ce type d'image, reportez-vous au site http://doc.opensuse.org/projects/kiwi/doc/. Lorsque vous créez l'image ISO, vous pouvez trouver le fichier BRUT dans le répertoire de destination. Il existe plusieurs façons de copier une image brute sur un disque.
Insérez le disque dans un serveur de déploiement et copiez l'image sur le périphérique brut.
Fournissez l'image brute à l'aide d'un serveur HTTP ou FTP et transférez-la sur le disque de la machine cliente.
Créez une image de démarrage réseau pour récupérer l'image et la transférer sur le disque. Ceci est une bonne méthode pour le déploiement de masse.
Démarrez un disque de secours et effectuez manuellement le transfert à partir de l'image de secours.
Pour un démarrage rapide, il est recommandé d'utiliser l'une des méthodes décrites dans la Section 23.1, « Déploiement manuel du système à partir d'une image de secours ».
Gravez l'image ISO obtenue via le processus de création de KIWI sur le CD/DVD.
Démarrez la machine cliente à partir de ce support.
Sélectionnez le disque dur sur lequel vous allez procéder à l'installation.
Redémarrez la machine cliente depuis le disque dur.
Démarrez la machine cliente avec un système de secours. De tels systèmes sont disponibles sur tous les CD ou DVD d'installation SUSE.
Loguez-vous en tant qu'utilisateur root. N'entrez pas de mot de passe.
Configurez votre réseau. Si le protocole DHCP est disponible sur votre réseau, utilisez uniquement la commande ifup-dhcp eth0. Si vous devez effectuer cette procédure manuellement, utilisez la commande ip pour configurer votre réseau. Le protocole DHCP de sortie vous indique également l'adresse IP de l'ordinateur.
Utilisez un port inutilisé de votre réseau, comme 1234, et transférez les données entrantes sur le disque à l'aide de la commande suivante :
netcat -l -p 1234 > /dev/sda
Sur le serveur de création d'images, envoyez l'image brute vers la machine cliente à l'aide de la commande :
netcat <IP of client> 1234 < $HOME/preload_image/<image_name>
Une fois l'image transférée, supprimez le système de secours de votre lecteur de CD ou DVD et arrêtez la machine cliente. Lors du redémarrage, le chargeur de démarrage GRUB doit être démarré sur le client et le système Firstboot prend le relais.
Lorsque vous effectuez plusieurs installations d'un système d'exploitation sur un matériel similaire, il est intéressant de préparer un déploiement de masse du système d'exploitation et de réduire le temps requis pour le déploiement réel. Ce chapitre décrit ce processus. L'objectif consiste simplement à brancher un ordinateur, à le connecter à un réseau, à lancer un démarrage réseau et à attendre qu'il s'éteigne.
Les opérations suivantes doivent être exécutées dans l'ordre afin d'accomplir cette tâche :
Une machine dédiée est nécessaire et doit être préparée pour proposer un démarrage PXE, ainsi qu'un serveur FTP ou Web pour fournir une image de préchargement. Il est recommandé de doter la machine de suffisamment de mémoire pour conserver toutes les données d'installation nécessaires. Pour une installation par défaut, vous devez disposer d'une mémoire de 4 Go minimum. Toutes les tâches nécessaires peuvent être exécutées avec SUSE Linux Enterprise Server. Pour plus de détails, reportez-vous à la Section 23.2.1, « Configuration d'un serveur de démarrage et d'installation ».
L'installation s'effectue en copiant une image brute du système d'exploitation sur le nouveau disque dur. Les fonctionnalités et les paramètres doivent être attentivement préparés et testés. Pour fournir une telle image, KIWI peut être utilisé (disponible dans le kit SDK du système d'exploitation SUSE Linux Enterprise). Vous trouverez plus d'informations sur la création d'images avec KIWI à l'adresse http://doc.opensuse.org/projects/kiwi/doc/. Pour plus de détails sur les exigences liées à l'image de préchargement, reportez-vous à la Section 23.2.2, « Création d'une image de préchargement ».
Le kit SDK contenant KIWI est un produit complémentaire pour SUSE Linux Enterprise que vous pouvez télécharger à partir du site http://download.suse.com/. Recherchez ensuite SUSE Linux Enterprise Software Development Kit.
Cette tâche nécessite une bonne connaissance de Linux. Vous trouverez une description de la procédure à suivre et un exemple d'installation dans la Section 23.2.3, « Création d'un système initial pour déployer une image de préchargement ».
Le démarrage PXE doit démarrer le système d'installation qui, à son tour, récupère l'image de préchargement à partir du serveur et la copie sur le disque dur.
Quatre étapes doivent être effectuées pour accomplir cette tâche après l'installation de SUSE Linux Enterprise Server :
Configurez la source d'installation en suivant la procédure décrite à la Section 14.2, « Configuration du serveur qui contient les sources d'installation ». Choisissez un serveur réseau HTTP ou FTP.
Configurez un serveur TFTP pour conserver une image de démarrage (qui sera créée à l'étape suivante). Cela est décrit à la Section 14.3.2, « Configuration d'un serveur TFTP ».
Configurez un serveur DHCP de manière à fournir des adresses IP à toutes les machines et indiquez l'emplacement du serveur TFTP au système cible. Cela est décrit à la Section 14.3.1, « Configuration d'un serveur DHCP ».
Préparez le démarrage PXE du serveur d'installation. Cette opération est décrite plus en détail à la Section 14.3.3, « Utilisation du démarrage PXE ».
Notez que le processus d'installation actuel gagnera en rapidité si vous dotez cette machine de suffisamment de mémoire pour héberger l'image de préchargement. Par ailleurs, l'utilisation de Gigabit Ethernet accélère considérablement le processus de déploiement (par rapport à des réseaux plus lents).
Le processus de création d'images avec KIWI est décrit à l'adresse http://doc.opensuse.org/projects/kiwi/doc/. Toutefois, pour créer une image utile en vue du déploiement de masse, plusieurs considérations doivent être prises en compte :
Une image de préchargement typique utilise le type suivant :
<type primary="true" filesystem="btrfs" boot="oemboot/suse-SLES12">vmx</type>
Pendant la configuration d'une image de préchargement, le processus de création d'image s'exécute plusieurs fois. Les dépôts nécessaires pour créer l'image doivent être disponibles sur l'ordinateur local.
En fonction de l'usage souhaité de l'image de préchargement, la configuration de Firstboot peut avoir son importance. Pour plus de détails sur Firstboot, reportez-vous au Chapitre 20, Déploiement de préinstallations personnalisées. Avec cette méthode, vous pouvez également demander à l'utilisateur d'effectuer des configurations initiales au premier démarrage du système.
De nombreuses fonctionnalités supplémentaires peuvent être configurées dans l'image, comme l'ajout de dépôts de mise à jour ou l'exécution d'une mise à jour au démarrage initial. Il est toutefois impossible de décrire toutes les possibilités dans ce document. Par ailleurs, la création de l'image de préchargement nécessite (selon les exigences) une connaissance approfondie du système de création d'images KIWI, ainsi que d'autres technologies utilisées dans SUSE Linux Enterprise Server.
L'image à déployer doit être disponible sur le serveur FTP ou HTTP que vous avez spécifié sur le serveur d'installation.
Afin d'exécuter un déploiement automatique, il est nécessaire de démarrer un système Linux initial sur l'ordinateur cible. Lors d'une installation type, le kernel et le système de fichiers RAM initial sont lus à partir d'un support de démarrage et lancés par le BIOS. Les fonctionnalités nécessaires peuvent être mises en oeuvre dans le système de fichiers RAM qui, associé au kernel, fera office de système initial.
Les principales fonctionnalités devant être fournies par le système initial sont l'activation de l'accès au disque dur et la mise à disposition de la connexion réseau. Ces deux fonctions dépendent du matériel sur lequel vous voulez effectuer le déploiement. En théorie, il est possible de créer un système initial de toutes pièces mais, pour simplifier cette tâche, vous pouvez également modifier le système de fichiers RAM utilisé par la machine pendant le démarrage.
La procédure suivante illustre simplement une façon de créer le système de fichiers RAM initial requis :
Effectuez une installation standard de SUSE Linux Enterprise Server sur le système cible.
Installez le paquetage busybox sur le système.
Créez un système de fichiers RAM à l'aide de la commande suivante :
mkinitrd -f busybox -D eth0
Notez que eth0 représente le périphérique Ethernet auquel votre câble réseau est relié. Le paramètre -f busybox ajoute le binaire MultiCall busybox au système de fichiers RAM. Après quoi, de nombreuses commandes Unix standard seront disponibles dans ce système.
Copiez le nouveau système de fichiers RAM et le kernel sur votre serveur de démarrage à l'aide de la commande :
scp /boot/initrd /boot/vmlinuz pxe.example.com:
Remplacez pxe.exemple.com par le nom de votre serveur de démarrage local ou son adresse IP.
Connectez-vous à votre serveur de démarrage en tant qu'utilisateur root et créez un répertoire dans lequel vous pourrez modifier le système de fichiers RAM :
mkdir ~/bootimage
Définissez votre répertoire de travail sur ce répertoire à l'aide de la commande cd ~/bootimage.
Décompressez le système de fichiers RAM initial précédemment copié à l'aide de la commande :
zcat ../initrd | cpio -i
Modifiez le fichier run_all.sh.
Recherchez la ligne suivante, supprimez-la, ainsi que le reste du fichier :
[ "$debug" ] && echo preping 21-nfs.sh
Ajoutez les lignes suivantes à la fin des fichiers run_all.sh:
[ "$debug" ] && echo preping 92-install.sh
[ "$debug" ] && echo running 92-install.sh
source boot/92-install.sh
[ "$modules" ] && load_modules
Créez un nouveau script boot/92-install.sh avec le contenu suivant :
#!/bin/bash
if [ "$(get_param rawimage)" ]; then
rawimage=$(get_param rawimage)
if [ "$(get_param rawdevice)" ]; then
rawdevice=$(get_param rawdevice)
echo "wget -O ${rawdevice} ${rawimage}"
wget -O ${rawdevice} ${rawimage}
sync
sleep 5
echo "DONE"
fi
fi
# /bin/bash
/bin/poweroff -f
Si vous souhaitez avoir un shell de débogage avant l'arrêt de l'ordinateur, supprimez le signe de commentaire devant /bin/bash.
Exécutez ce script à l'aide de la commande chmod 755 boot/92-install.sh.
Créez un système de fichiers RAM initial à l'aide des commandes :
mkdir -p /srv/tftpboot find . | cpio --quiet -H newc -o | gzip -9 -n > \ /srv/tftpboot/initrd.boot
Copiez le kernel dans ce répertoire :
cp ../vmlinuz /srv/tftpboot/linux.boot
Le système de fichiers RAM initial est maintenant prêt à traiter deux nouveaux paramètres de ligne de commande de kernel. Le paramètre rawimage=<URL> permet d'identifier l'emplacement de l'image de préchargement. Toute URL comprise par wget peut être utilisée. Le paramètre rawdevice=<périphérique> permet d'identifier le périphérique de bloc du disque dur sur la machine cible.
La configuration du serveur de démarrage est abordée en détails dans différents chapitres. Voir Section 23.2.1, « Configuration d'un serveur de démarrage et d'installation ». Cette section comporte une liste des étapes nécessaires pour configurer le système.
Configurez un serveur DHCP. Le sous-réseau dans lequel les machines sont installées requiert les lignes supplémentaires suivantes :
filename "pxelinux.0"; next-server 192.168.1.115;
Dans cet exemple, 192.168.1.115 correspond à l'adresse IP du serveur PXE pxe.exemple.com.
Configurez un serveur PXE en suivant les instructions de la Section 14.3.3, « Utilisation du démarrage PXE ». Lors de la modification de /srv/tftpboot/pxelinux.cfg/default, ajoutez les entrées suivantes :
default bootinstall label bootinstall kernel linux.boot append initrd=initrd.boot \ rawimage=ftp://192.168.1.115/preload/preloadimage.raw rawdevice=/dev/sda
Configurez un serveur FTP et copiez votre image de préchargement préparée dans /srv/ftp/preload/preloadimage.raw.
Testez votre configuration en démarrant le système cible avec le démarrage réseau PXE. Celui-ci copiera automatiquement l'image de préchargement préparée sur le disque dur et éteindra la machine lorsqu'elle sera prête.