Table of Contents
Preseed Ubuntu : Exemple 2 d'automatisation de l'installation
Table of Contents
Lors de l'exécution d'une installation automatisée d'Ubuntu, la préconfiguration fait partie intégrante du processus.
Après avoir effectué plusieurs fois l’installation d'un serveur Ubuntu, on se rend compte qu'on choisi généralement les mêmes options pour la majorité de l’installation, quel que soit le type de serveur. On peut entrer manuellement les options d'installation lorsqu'il b'y a qu'un seul serveur à configurer, mais Ubuntu fournit une option avec deux méthodes d’installation automatisée:
- Kickseed dérivé de kickstart sous Red Hat
- Preseed dérivé de la distribution Linux Debian.
Les deux présentent des avantages et des inconvénients. En fait, la méthode recommandée pour automatiser les installations de serveur Ubuntu est une combinaison des deux.
Dans ce chapitre, on traitera à la fois des méthodes d’automatisation et de la façon de les utiliser pour compléter une installation sur CD-ROM. Enfin, on montrera comment utiliser Kickstart
et preseed
ensemble pour un programme d'installation entièrement automatisé sur le réseau. À la fin, on pourra configurer un ou cent serveurs Ubuntu avec le même effort.
Preseed
Le concept de préconfiguration est assez simple. Toutes les options possibles de l'installation d'Ubuntu sont représentées par une variable. Une fois que l'on connait ces variables, on peut les définir à l'avance dans un fichier et demander au programme d'installation d'Ubuntu de les charger et de les appliquer pour vous. Bien entendu, la clé de la préconfiguration est de savoir quelles sont ces valeurs. Il existe un certain nombre de bons guides en ligne pour la préconfiguration, mais la plupart d'entre eux, même ceux pour Ubuntu, semblent toujours fournir des exemples basés sur Debian.
Le moyen principal de découvrir toutes les options de préconfiguration disponibles consiste à utiliser debconf-get-selections
(fournit par le paquet debconf-utils
). Par exemple, pour connaître tous les paramètres de préconfiguration actuels de l'installation actuelle, exécuter
$ debconf-get-selections --installer> alloptions.cfg
Cela décharge toutes les options de préconfiguration axées sur l'installation dans alloptions.cfg. Cependant, l’avantage de la préconfiguration est qu’il ne se limite pas aux options de l’installateur: chaque paquet installé et qui pose des questions peut avoir ses réponses prédéfinies. Pour vider toute la base de données debconf contenant ces valeurs dans le même fichier alloptions.cfg, exécuter :
$ debconf-get-selections >> alloptions.cfg
On peut être tenté d'utiliser simplement ce fichier alloptions.cfg en tant que fichier preseed.cfg. Le problème est que ce fichier contient toutes les options de configuration, y compris de nombreuses autres qui ne doivent pas être préconfigurées. Utiliser ce fichier uniquement comme guide pour découvrir une option de préconfiguration l'on souhaite définir. Pour débuter, au lieu de cela, commencer avec le preseed.cfg fournit ci-dessous et l'ajuster.
Configuration de base prédéfinie pour CD-ROM
Il existe différentes manières d’introduire des options de préconfiguration dans le programme d’installation, mais la manière la plus simple consiste probablement à utiliser le CD d’installation par défaut d’Ubuntu tout en spécifiant les options directement à l’invite de Fichier ed.cfg contenant de nombreuses options sur un serveur Web local. Il s'avère que si on utilise la préconfiguration seule, certaines options ne peuvent pas être définies de manière stricte dans un fichier de préconfiguration: elles doivent être affichées à l'invite de démarrage ou il faudra répondre aux questions manuellement.
La première étape consiste à configurer un fichier preseed.cfg par défaut. On trouvera ci-dessous un fichier preseed de base décrivant l’installation par défaut d’un serveur Ubuntu pour un système situé aux États-Unis. Copier ces paramètres dans un fichier nommé preseed.cfg:
## Options à définir sur la ligne de commande d-i debian-installer/locale string en_US d-i console-setup/ask_detect boolean false d-i console-setup/layoutcode string us d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain d-i netcfg/choose_interface select auto d-i netcfg/wireless_wep string d-i base-installer/kernel/override-image string linux-server d-i clock-setup/utc-auto boolean true d-i clock-setup/utc boolean true d-i time/zone string US/Pacific d-i clock-setup/ntp boolean true d-i mirror/country string US d-i mirror/http/proxy string d-i pkgsel/install-language-support boolean false tasksel tasksel/first multiselect standard, ubuntu-server d-i partman-auto/method string regular d-i partman-auto/purge_lvm_from_device boolean true d-i partman-lvm/confirm boolean true d-i partman-auto/choose_recipe select atomic d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i passwd/user-fullname string Ubuntu User d-i passwd/username string ubuntu d-i passwd/user-password password insecure d-i passwd/user-password-again password insecure d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i finish-install/reboot_in_progress note
Utilisation du fichier preseed.cfg
Avec ces paramètres par défaut, le programme d'installation utilisera le premier disque qu'il pourra, formatera dessus et installera le système de base dessus. Donc avant de l'essayer sur un serveur, il faut s'assuere qu'on puisse tout perdre. les données sur ses disques. Sinon, étudier la section Partitionnement ci-dessous pour voir comment modifier les paramètres par défaut.
Une fois le fichier preseed.cfg configuré, le placer sur un serveur Web local auquel le serveur de test peut accéder. Pour cet exemple, supposons que le serveur se trouve sur www.example.net et qu'on place le fichier dans la racine du document afin de le trouver à l'adresse www.example.net/preseed.cfg. Maintenant, démarrer le serveur sur lequel vous souhaitez installer Ubuntu à partir du CD d’installation du serveur Ubuntu. Une fois que l'on a répondu à l'invite de langue, appuyer sur F6 pour pouvoir modifier les arguments de démarrage par défaut. Utiliser les touches de direction pour se déplacer vers la gauche après l'argument initrd= et pour revenir en arrière sur la section file=/cdrom/preseed/ubuntu-server.seed de l'invite. Il s’agit en fait du fichier de préconfiguration d’Ubuntu qu’il utilise pour l’installation, mais nous le remplacerons par le nôtre. Pour ce faire, utiliser l’option url pour pointer sur le serveur Web en tapant
url=http://www.example.net/preseed.cfg
L'url doit êtr modifiée pour pointer vers le chemin d'accès au fichier de préconfiguration sur le serveur Web.
Il faut également spécifier quelques options supplémentaires sur la ligne de commande afin que l'installateur puisse passer la phase initiale de l'installation, se connecter au réseau et récupérer le reste de ses paramètres. Dan l'exemple de fichier preseed.cfg, on peut voir qu'on indique quelques options pour accéder à l'invite de démarrage:
d-i debian-installer/locale string en_US d-i console-setup/ask_detect boolean false d-i console-setup/layoutcode string us d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain
Pour les ajouter à l'invite de démarrage, entrer simplement le chemin d'accès complet à une option particulière (telle que debian-installer/locale), un signe =, puis l'option à définir. Une fois que, l'invite de démarrage complète, y compris toutes les options qui existaient auparavant que l'on doit conservé, ressemblera à ceci:
url=http://www.example.net/preseed.cfg debian-installer/locale=en_US console-setup/ask_detect=false console-setup/layoutcode=us netcfg/get_hostname=unassigned-hostname netcfg/get_domain=unassigned-domain initrd=/install/initrd.gz quiet --
Ubuntu fournit quelques raccourcis pour certaines des options. Par exemple, debian-installer/locale
peut être remplacé uniquement par locale
, netcfg/get_hostname
peut être remplacé par hostname
et netcfg/get_domain
peut être remplacé par domain
. Avec tous les raccourcis en place, la ligne de commande semble un peu plus facile à gérer:
url=http://www.example.net/preseed.cfg locale=en_US console-setup/ask_detect=false console-setup/layoutcode=us hostname=unassigned-hostname domain=unassigned-domain initrd=/install/initrd.gz quiet --
Une fois qu'on a saisi toutes ces valeurs dans l'invite de démarrage, appuyer sur Entrée. Le programme d’installation doit obtenir sa propre adresse IP via DHCP, récupérer le fichier preseed.cfg du serveur Web, terminer l’installation, puis redémarrer. À la fin on doit recevoir une invite de connexion par défaut pour Ubuntu.