Une installation de Debian automatique

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
45
|
Mois de parution
décembre 2009
|
Domaines


Résumé
Lecteur de ce magazine, vous avez probablement eu l'occasion d'installer une Debian et, si ce n'est pas le cas, ceci ne vous effraie pas. Par conséquent, loin de moi l'idée de vous expliquer comment le faire, mais plutôt de vous raconter mon expérience d'installation d'une petite appliance que je souhaitais, si ce n'est industrielle, au moins automatique. Je précise par automatique que celle-ci se veut sans interaction de l'allumage de la machine jusqu'à son arrêt, installée, configurée. J'ouvre les cartons du hard reçu à cette occasion et je me lance.

Body
Objectif(s) :

Mettre en place une solution permettant d'installer et réinstaller des systèmes Debian pour une plateforme donnée. Derrière cet objectif qui peut paraître simple, se cache en réalité toute une problématique pour peu que l'on souhaite automatiser pleinement les installations. En effet, il s'agit ici d'éliminer purement et simplement toute intervention humaine sur le ou les postes cibles entre le moment de la mise en route de la machine et le premier redémarrage du système installé.

Outil(s) utilisé(s) :

Debian GNU/Linux intègre par défaut tous les outils, scripts et mécanismes permettant d'atteindre notre but. Pour rappel, ce qu'il est courant d'appeler « une Debian » est en réalité une distribution GNU/Linux développée par l'organisation communautaire Debian. Le raccourci est généralement fait, car Debian GNU/Linux, la distribution, est la branche la plus fonctionnelle et finalisée du projet. Il faut noter cependant que Debian c'est aussi Debian GNU/Hurd ou encore Debian GNU/kFreeBSD.

1. La machine à installer

Tout d'abord, j'ai décidé d'investir dans un matériel relativement sobre : un boîtier mini-atx, une carte mère Jetway J7F4, avec un processeur C7 et deux contrôleurs Ethernet, une barrette de 1 GB de RAM et un HDD 2.5 pouces de 160 GB. Je n'ai pas encore envie de vous dire ce que j'en ferai (en ai-je vraiment un idée précise ?) et là n'est pas l'important. J'avoue toutefois que cette configuration me paraît très opportune et très peu coûteuse pour nombre d'applications diverses. On peut la trouver à l'unité autour de 260€ sans trop d'effort.

Le montage de ce type de machine est pour moi une première et je ne saurais trop, si c'est aussi le cas pour vous, vous conseiller d'avancer progressivement et de vous armer d'un multimètre. Mon enthousiasme m'a poussé à monter l'ensemble du système immédiatement et j'ai sans surprise dû me raviser et démonter l'ensemble pour progresser pas à pas. Pour ma part, la carte mère installée dans le boîtier connectée uniquement à l'alimentation démarrait sans souci. Il suffisait avec un petit tournevis de faire un court-circuit sur le connecteur de front panel afin de simuler l'interrupteur, mais une fois la nappe de câbles de front panel connectée, il m'était devenu impossible de démarrer le système. C'est le multimètre qui m'a permis de trouver que celle-ci était montée à l'envers et que le court-circuit généré à l'appui de l'interrupteur de face-avant se produisait au mauvais endroit. En testant l'impédance entre les broches, j'ai pu trouver où se faisait le court-circuit. Beaucoup de temps perdu à aller vite. Pour information, je peux vous donner hors antenne le nom du magasin, basé outre-manche, dont je salue la réactivité dans le support client.

Mis à part ce petit souci, le système correspond parfaitement à mes attentes. Il est maintenant temps de l'installer.

2. Installation en réseau

Au démarrage d'une machine est exécuté un premier bout de code, le bios. Celui-ci donne la main au média sur lequel est stocké le programme à exécuter. Cela peut être un disque dur, un CD-ROM, une clé USB ou un accès réseau. En l'occurrence pour Linux, après le BIOS, est chargé le kernel suivi du lancement du process père : init. C'est par l'intermédiaire du réseau que je vais démarrer le processus d'installation de la machine. L'installation se fait en deux parties :

- Boot en réseau pour télécharger le noyau et l'initrd d'installation fournis par Debian pour réaliser une installation en réseau.

- Installation par le réseau en téléchargeant les paquets sur les miroirs Debian.

Je rappelle qu'un initrd est un système de fichiers dans lequel on trouve l'arborescence root et les applications minimums, ainsi que l'exécutable init lancé par le kernel.

2.1 Boot en réseau

Pour booter en réseau, il me faut configurer deux paramètres du bios, mettre le « legacy LAN » dans les médias de boot et activer le bootrom des Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet, les contrôleurs Ethernet de la machine.

Au démarrage de la machine, un client DHCP démarre pour obtenir une configuration réseau et obtenir les informations pour télécharger par TFTP les fichiers d'amorçage du système. Il est donc nécessaire d'avoir un serveur DHCP et un serveur TFTP, dont voici les configurations respectives.

J'installe dhcp3-server, le serveur disponible dans l'environnement Debian :

apt-get install dhcp3-server

J'applique ensuite cette configuration :

# Masque de sous-réseau du réseau que je vais couvrir

option subnet-mask 255.255.255.0;

# routeur à utiliser pour sortir (la freebox en fait)

option routers 192.168.0.254;

# les serveurs de DNS utilisés, trouvés dans /etc/resolv.conf

option domain-name-servers 212.27.40.241, 212.27.40.240;

default-lease-time 600;

max-lease-time 7200;

# le nom de mon serveur (mon laptop)

server-name ladymadonna;

# Description du sous-réseau adressé, option générale pour toutes les machines utilisant ce dhcp

subnet 192.168.0.0 netmask 255.255.255.0 {

    # la range d'adresses ip que le serveur va distribuer

    range 192.168.0.100 192.168.0.200;

    option subnet-mask 255.255.255.0;

    # le fichier d'amorçage de boot en réseau qui va permettre d'aller chercher le noyau et l'initrd à charger.

    filename "pxelinux.0";

    server-name ladymadonna;

    # le serveur suivant (tftp utilisé, toujours mon laptop)

    next-server 192.168.0.7;

    # l'adresse de broadcast

    option broadcast-address 192.168.0.255;

}

#Configuration spécifique par host, ici scalie est le nom de la machine à installer

host scalie {

    #fichier d'amorçage, pas obligatoire puisque déjà plus haut

    server-name ladymadonna;

    next-server 192.168.0.7;

    # Adress MAC de la machine, afin que le serveur DHCP puisse la reconnaître et appliquer cette configuration

    hardware ethernet 00:30:18:A7:89:E0;

    # adresse donnée par ce serveur dhcp

    fixed-address 192.168.0.101;

}

Attention à bien veiller à ne pas avoir d'autre serveur DHCP sur le réseau. Par conséquent, j'ai désactivé celui de ma Freebox. De plus, pour s'assurer de ne pas perturber le réseau une fois celui-ci réactivé, je supprime l'activation de dhcp3-server au démarrage :

update-rc.d -f dhcp3-server remove

J'installe un serveur tftp. Celui conseillé par Debian est tftpd-hpa :

apt-get install tftpd-hpa

La configuration, très simple, est la suivante :

RUN_DAEMON="yes"

OPTIONS="-l -s /var/lib/tftpboot "

Ceci signifie que je mettrai tous mes fichiers d'installation dans /var/lib/tftpboot.

2.2 Un kernel et un initrd d'installation par le réseau

Debian fournit une méthode d'installation par le réseau composée d'un noyau et d'un initrd spécifiques. Ceux-ci sont en charge de démarrer l'installation, de télécharger les paquets sur les serveurs de Debian et de finalement les installer dans l'arborescence chrootée /target. Cette méthode nécessite le réseau, mais a le gros avantage d'être très légère. A titre d'exemple, dans le cas de l'utilisation d'un CD d'installation, l'ISO ne pèse que 40 Mo.

Je vais donc récupérer les fichiers nécessaires à une installation par le réseau que je place dans l'arborescence de mon serveur tftp :

cd /var/lib/tftpboot

wget http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz

tar zxvf netboot.tar.gz

cp -r /var/lib/tftpboot/debian-installer/i386/pxelinux.* /var/lib/tftpboot

On retrouve le fichier pxelinux.0 pour l'amorçage et, dans le répertoire pxelinux.cfg, la configuration du boot pxe pour pouvoir installer différents systèmes d'exploitation. J'ai modifié le fichier default comme suit :

DEFAULT debian-i386

LABEL debian-i386

    kernel debian-installer/i386/linux

    append vga=normal initrd=debian-installer/i386/initrd.gz root=/dev/rd/0 rw --

PROMPT 0

TIMEOUT 0

Dans mon cas, je n'ai qu'un mode d'installation que j'appelle debian-i386. Les tags sont assez explicites. Dans kernel, on donne le chemin vers le noyau et dans append, on ajoute les autres options :

- vga : gestion de l'affichage ;

- initrd : chemin d'accès vers l'initrd sur le serveur TFTP ;

- root : point de montage du root file system du netboot sur la machine en cours d'installation.

Afin d'effectuer l'installation, il suffit de démarrer le serveur DHCP et le serveur TFTP, et d'allumer la machine. C'est une solution classique souvent utilisée nécessitant la présence devant l'écran et le clavier, et je crois même déceler une pointe d'ennui chez certains, si, si, là, au fond de la ram, oui, vous ! Regardons donc maintenant comment automatiser la procédure.

3. La configuration automatique ou la pré-configuration

Mon objectif est de pouvoir installer et réinstaller un certain nombre de machines en ayant juste à les allumer, l'installation de celles-ci se terminant par leur extinction, sans avoir à répondre aux questions posées sur la langue, le fuseau horaire et autres.

Ce n'est ni plus ni moins que le pendant du kickstart de Redhat offert par Debian que je me propose de vous présenter. Cette méthode se nomme le preseeding et utilise le fichier preseed.cfg. Le principe de base de ce fichier est de répondre aux questions posées par l'installeur et par les différents logiciels installés éventuellement.

Cette méthode est disponible dans les différents modes d'installation que ce soit par clé USB, par CD-ROM, à condition de recréer soi-même l'ISO, ou par le réseau. Par ailleurs, l'installeur permet de récupérer de façon différente ce fichier preseed.cfg, soit en utilisant le paramètre append de l'amorçage, comme vu plus haut, soit, et c'est la méthode que j'utilise, en le plaçant directement dans l'initrd.

Nous verrons plus tard comment faire, mais regardons comment on écrit ce fichier preseed.cfg.

3.1 Le fichier de pré-configuration preseed.cfg

C'est un simple fichier texte de réponse aux questions d'installation. Cela recouvre à titre d'exemple :

- La localisation de l'installation, c'est-à-dire, la langue et le pays de l'installation. La possibilité de configurer automatiquement ce paramètre n'est disponible qu'en plaçant le preseed.cfg dans l'initrd, car cette option ne fonctionne pas avec les autres méthodes, le fichier preseed.cfg n'étant alors chargé qu'après ces questions. Par conséquent, bien que légèrement moins souple dans la phase de test et de conception du fichier de pré-configuration, la méthode de l'initrd est la seule qui me permet d'être pleinement automatique. Dans la suite de l'article, nous verrons comment différencier l'installation en fonction de l'hôte à installer.

- La configuration réseau.

- Le choix des miroirs d'installation.

- Le partitionnement.

- Le fuseau horaire.

- La configuration des users et de leurs mots de passe.

- Le choix du type d'install (standard, desktop, serveur d'impression, serveur web).

Chaque option a ce format

d-i netcfg/get_hostname string xxxxx

où les champs s'expliquent ainsi :

- d-i signifie debian-installer. Nous verrons que cela peut être aussi un autre logiciel.

- netcfg/get_hostname indique qu'il s'agit de la configuration réseau, et de donner le hostname de la machine.

- string indique qu'il s'agit d'une chaîne de caractères. Cela peut aussi être un booléen par exemple ou une liste de choix ou encore une simple notification (en installation normale, il faut choisir de continuer).

- xxxxx est la chaîne de caractères, correspondant ici au hostname.

Les champs sont espacés d'une seule espace ou d'une seule tabulation.

Pour information, l'installeur charge le fichier en une seule fois. Il n'y a pas d'ordre à respecter dans la séquence. En général, un certain ordre apparaît dans un fichier preseed, ordre respectant plus ou moins la séquence des questions, mais cela ne répond en aucun cas à un besoin technique.

Il est maintenant temps de passer aux choses sérieuses. Après quelques hésitations, j'en suis arrivé à un premier fichier preseed.cfg. Le voici :

#choix de la langue d'installation

d-i debian-installer/locale string fr_FR

# choix du clavier (select indique une liste de choix)

d-i console-keymaps-at/keymap select fr

# choix de l'interface automatique

d-i netcfg/choose_interface select auto

# configuration du hostname

d-i netcfg/get_hostname string scalie

# configuration du domaine

d-i netcfg/get_domain string bulot.org

# configuration du réseau en statique

d-i netcfg/disable_dhcp boolean true

# configuration du serveur de nom

d-i netcfg/get_nameservers string xxxxxx

# configuration du serveur de nom

d-i netcfg/get_ipaddress string 192.168.0.101

# configuration du masque sous-réseau

d-i netcfg/get_netmask string 255.255.255.0

# configuration de la gateway

d-i netcfg/get_gateway string 192.168.0.254

# confirmation de la configuration statique

d-i netcfg/confirm_static boolean true

# désactivation des demande de clé wep

d-i netcfg/wireless_wep string

# type de rpotcole pour accéder aux mirroirs

d-i mirror/protocol string ftp

# choix du mirroir

d-i mirror/ftp/hostname string ftp.fr.debian.org

# choix du répertoire dans le mirroir

d-i mirror/ftp/directory string /debian

d-i mirror/ftp/proxy string

# Type de distribution (stable testing...)

d-i mirror/suite string stable

# configuration du fuseau horaire

d-i clock-setup/utc boolean true

d-i time/zone string Europe/Paris

# Pas de serveur ntp fixé

d-i clock-setup/ntp boolean false

# choix du partionnement par défaut

d-i partman-auto/method string regular

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

#configuration du compte root

d-i passwd/root-password password bl1blu

d-i passwd/root-password-again password bl1blu

#configuration d'un autre user

d-i passwd/user-fullname string opscale

d-i passwd/username string opscale

d-i passwd/user-password password azerty

d-i passwd/user-password-again password azerty

# ajout de non-free et contrib dans /etc/apt/sources.list

d-i apt-setup/non-free boolean true

d-i apt-setup/contrib boolean true

# Sélection d'une install standard, sans desktop

tasksel tasksel/standard

# ajout des packages supplémentaires

d-i pkgsel/include string openssh-server build-essential

# installation de grub

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

# extinction de la machine après installation

d-i debian-installer/exit/poweroff boolean true

Afin d'économiser du temps et de l'énergie en installant un preseed.cfg dans votre initrd et de le tester lors de l'installation, il est grandement conseillé de vérifier sa syntaxe. C'est la suite Debconf, le logiciel de gestion de la configuration de Debian qui vous aidera en ce sens :

debconf-set-selections -c preseed.cfg

La syntaxe est vérifiée ainsi que l'utilité de certaines commandes. Sans erreur, il est maintenant temps de le déposer, comme je vous le disais, à la racine de l'initrd. Un fichier d'initrd est un système de fichiers compressé le plus souvent avec les utilitaires cpio et gzip. Voici comment je procède pour le décompresser

cp /var/lib/tftp/tftpboot/debian-installer/i386/initrd.gz /tmp

mkdir /tmp/out

cd /tmp/out

gunzip -dc /tmp/initrd.img.gz | cpio -id --no-absolute-filenames

où pour cpio :

- -i est la commande d'extraction.

- -d crée les répertoires nécessaires.

- --no-absolute-filenames crée tous les chemins absolus de l'archive par rapport au chemin actuel.

Ensuite, je copie le fichier preseed.cfg dans la racine de l'archive décompressée :

cp /home/stephbul/debian-install/preseed.cfg /tmp/out/

Et je fais le chemin inverse. Je recompresse le répertoire /tmp/out pour en faire un initrd

find . | cpio -o -H newc | gzip > /var/lib/tftpboot/debian-installer/i386/initrd.gz

où pour cpio :

- -o crée l'archive.

- -H newc indique le format d'archive. L'option newc permet d'utiliser un file system avec plus de 65536 inodes.

Je vous conseille la doc de cpio sur le site de GNU pour la manipulation de l'initrd avec cpio : http://www.gnu.org/software/cpio/manual/cpio.html Je remplace l'initrd du Debian installer par celui-ci, qui est le même enrichi du preseed.cfg à la racine.

4. Café ou thé ? Euh, bière pour moi !

Voilà, nous allons démarrer l'installation. On peut éteindre l'écran. Enfin, en théorie seulement, car, je l'avoue, il faut faire parfois plusieurs essais, car il n'est pas rare d'oublier de configurer la réponse à une question. Lors de l'absence d'une réponse dans la liste du fichier preseed, l'installeur se comporte comme en mode habituel en interrompant l'installation le temps qu'on lui réponde pour reprendre ensuite son installation automatique.

Sur le serveur dhcp :

/etc/init.d/dhcp3-server start

/etc/init.d/tftpd-hpa start

On peut maintenant appuyer sur le bouton « on » de la machine, à une seule condition : savoir si on veut un café ou un thé, car, maintenant, le travail est terminé, jusqu'à ce que la machine s'éteigne, sa façon à elle de dire « je suis prête ».

5. Enrichissons un peu notre installation

Mon utilisation du preseeding est assez pratique, mais, jusqu'à présent, assez basique. Une fois les différentes manipulations digérées, je regarde le chemin parcouru, les mots de PJ Harvey « Is that all there is? » surgissent et je me dis que ce n'était pas bien compliqué. D'ailleurs, je me connecte à la machine fraîchement installée et je constate que je ne suis qu'au milieu du gué, car il me reste un certain nombre de choses à configurer.

Ma machine n'utilise que fr.UTF-8 comme langue chargée, ce qui est, je trouve, particulièrement désagréable. Il est vrai que, à lire ces mots, vous devez penser qu'une reconfiguration est particulièrement simple :

dpkg-reconfigure locales

Ceci me permet d'installer les locales iso-8859-1 et iso-8859-15, mais qu'advient-il de ma configuration automatique, si, dès le login, je dois déjà reconfigurer quelque chose ? Nous allons le voir.

Nous avons vu qu'il était nécessaire de vérifier la syntaxe du fichier preseed avec la suite Debconf, et plus particulièrement avec debconf-set-selections. Dans le même esprit, je vais utiliser debconf-get-selections fourni par le paquet debconf-utils pour retrouver la nouvelle configuration appliquée.

apt-get install debconf-utils

Et ensuite pour retrouver la configuration associée aux locales :

debconf-get-selections | grep locales

Ceci me donne :

locales locales/default_environment_locale      select fr_FR@euro

locales locales/locales_to_be_generated multiselect     fr_FR.UTF-8 UTF-8, fr_FR@euro ISO-8859-15

Vous reconnaissez le format du preseed.cfg ou, plus précisément, vous avez compris que le preseeding utilisait la formalisation de la suite Debconf de Debian. Ces deux lignes sont à ajouter au preseed.cfg précédent.

Un autre exemple. J'installe le serveur dhcp3 (dhcp3-server) sur la machine. Comme vu plus haut :

apt-get install dhcp3-server

Je suis notifié que « la version 3 du serveur DHCP ne fait plus autorité par défaut », et je dois appuyer sur OK pour continuer. Ceci signifie que le simple ajout du paquet à la ligne de sélection de paquets supplémentaires de mon fichier d'origine ne va pas suffire et va rompre la belle automaticité de mon installation.

d-i pkgsel/include string openssh-server build-essential dhcp3-server

Par conséquent, après avoir installé le serveur dhcp avec apt, je passe la commande suivante :

debconf-get-selections | grep dhcp3-server

Ceci me donne :

dhcp3-server    dhcp3-server/new_auth_behavior note

dhcp3-server    dhcp3-server/interfaces string

dhcp3-server    dhcp3-server/new_next-server_behaviour note

dhcp3-server    dhcp3-server/config_warn        note

Comme précédemment, j'ajoute ces quelques lignes à mon fichier.

Ces opérations sont à répéter pour chacun des packages nécessitant une interaction lors de l'installation. Attention, lecteur attentif, vous percevez peut-être le léger inconvénient de la méthode : en effet, nous sommes en train d'installer des paquets par le réseau. Si la génération du paquet est modifiée et que le mainteneur de celui-ci pose une question qui n'existait pas précédemment, l'automatisation ne fonctionnera plus. Ce type de modification a, fort heureusement, rarement lieu, si ce n'est jamais, dans la branche stable. Dans un contexte industriel de déploiement de masse, cet inconvénient est par conséquent amoindri, car il serait dangereux d'utiliser dans ce cas une branche « testing » ou « unstable ».

6. Plusieurs fichiers de preseeding

Il est possible de chaîner les fichiers de preseeding et ainsi d'en charger différents en fonction de certains paramètres spécifiques. La fonction preseed/run permet d'exécuter un script. Il faut que le résultat du script ait en sortie un chemin vers un autre fichier de type preseed.cfg Ceci permet d'effectuer d'autres opérations de type preseed. Attention, debian-installer charge l'ensemble des fichiers preseed.cfg et, en cas de redondance d'opération, c'est la dernière qui est prise en compte. Voyons un exemple concret :

d-i preseed/run string myscript.sh

Dans ce cas, il suffit de placer myscript.sh comme le preseed.cfg dans l'initrd. L'opération de preseeding exécute myscript.sh dont la sortie doit être le fichier à charger. Exemple :

#!/bin/sh

#Récupération de la mac et génération d'un nom de fichier preseed

PFILE=`ifconfig -a | grep -E "eth1.*HWaddr" | awk '{print $5}'`.cfg

#Téléchargement de ce fichier preseed.cfg

wget http://192.168.0.7/preseed/$PFILE -o /dev/null

#écriture du nom de fichier à charger

echo $PFILE

Ceci va vous permettre de télécharger les fichiers xx:xx:xx:xx:xx:xx.cfgxx:xx:xx:xx:xx:xx est la MAC de la machine et ainsi de faire un fichier preseed différent en fonction de la MAC de la machine. Ceci est particulièrement intéressant pour affiner une configuration réseau en fonction de cette MAC ou encore de créer des utilisateurs différents.

7. Comment réaliser la post-configuration ?

Le fichier preseed.cfg, comme nous l'avons vu, permet d'éviter de répondre à des questions. Mais, il est nécessaire, pour avoir un process industriel sérieux, de réaliser la post-configuration de la machine à la fin de l'installation avant le premier boot de la machine.

7.1 Exécution d'un script de post-install

Une dernière fonctionnalité très utile de la méthode preseed est l'exécution d'une commande de post-installation, dite late_command. C'est un peu la cerise sur le gâteau Debian, car elle parfait l'ensemble du processus. Attention, la différence avec la commande précédente (preseed/run) est de taille. La précédente permet de charger un autre fichier preseed, celle-ci permet d'exécuter une fonction tout autre, sans rapport avec l'installation à proprement parler des paquets. Je m'en sers personnellement pour faire de la post-installation.

La commande que j'ajoute à mon fichier preseed est la suivante :

d-i preseed/late_command string in-target wget http://192.168.0.7/post-install.sh; in-target /bin/sh post-install.sh; in-target rm -f post-install.sh

Cette ligne mérite quelques explications :

- preseed/late_command : cela signifie que cette commande est effectuée à la fin de l'installation de tous les paquets sélectionnés.

- string in-target : en spécifiant la commande avec in-target, la commande est effectuée en chroot sur le point de montage /target. Ce point de montage est créé par le debian-installer au début de l'installation et ce point de montage est en fait celui où est déposé le système final. Il est bien entendu possible de ne pas utiliser cette option in-target, mais cela signifie que la commande est effectuée dans le répertoire racine du système en cours, qui est en fait la racine de l'initrd de Netinstall.

Toutes les commandes à effectuer en late_command sont sur la même ligne, car, comme pour les autres commandes du preseed, la dernière écrase les précédentes.

Par ailleurs, pour les deux exemples cités à l'instant, vous aurez noté la nécessité d'utiliser un serveur web. Pour ma part, j'utilise Lighttpd sans configuration spécifique.

apt-get install lighttpd

Et j'installe dans /var/www mon fichier post-install.sh, dont le contenu est particulièrement simple pour le moment :

#!/bin/sh

#

# ssh post-install

sed -i 's/PermitRootLogin\ yes/PermitRootLogin\ no/' /etc/ssh/sshd_config

Cela pour interdire l'accès en ssh de root.

Conclusion

Comme je l'expliquais au début de l'article, je n'ai pas encore une idée très précise de ce que je ferai de cet équipement, mais je me sais armé pour faire de l'installation et de la configuration de masse et, si vous ne connaissiez pas cette solution, j'espère vous avoir éclairé. Personnellement, je pense que c'est un outil précieux qui ouvre des horizons non seulement à celui qui souhaite faire du déploiement, mais aussi à celui qui souhaite simplement pouvoir installer une machine plusieurs fois avec la même configuration. Et, au moins dans ce cas, qui ne se sent pas concerné ?

Références

- Debian Installation manual : http://d-i.alioth.debian.org/manual/en.i386/apbs01.html

- cpio manual : http://www.gnu.org/software/cpio/manual/cpio.html

- Debian installer wiki : http://wiki.debian.org/DebianInstaller

- Setting up a server for PXE network booting : http://www.debian-administration.org/articles/478


Sur le même sujet

Toute votre infrastructure Debian en YAML avec DebOps

Magazine
Marque
GNU/Linux Magazine
Numéro
232
|
Mois de parution
décembre 2019
|
Domaines
Résumé

Administrer toutes les briques de son infrastructure Debian à l’aide d’un outil de gestion de configuration est une tâche complexe. Outre la quantité de code nécessaire, il faut représenter les interactions entre les logiciels de l’infrastructure. Projet communautaire basé sur Ansible, DebOps répond à cette problématique avec plus de 160 rôles liés les uns aux autres. De plus, les utilitaires fournis par le projet permettent de simplifier l’utilisation des rôles, ainsi que le respect des bonnes pratiques Ansible. Ceci en fait un outil unique pour automatiser vos infrastructures.

Du Dev au Sysadmin : Apprenez à concevoir et distribuer vos applications sur plusieurs plateformes avec CMake

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
105
|
Mois de parution
novembre 2019
|
Domaines
Résumé

Vous avez souvent réalisé des applications que vous aimeriez tester et partager avec vos collègues, mais vous êtes toujours coincés au niveau de l’organisation des fichiers sources et du déploiement ? Vous tombez pile sur l'article qu’il faut pour résoudre ces problèmes.

Isolation de conteneurs : You Are NOT Safe

Magazine
Marque
GNU/Linux Magazine
Numéro
231
|
Mois de parution
novembre 2019
|
Domaines
Résumé

« We won’t be able to pretend that we can protect ourselves anymore. It’s a huge danger, a gigantic risk, but it’s worth it, if only we can learn to take care of each other, then this awesome destructive new connection won’t isolate us. It won’t leave us in the end so totally alone. »Cet extrait du manifeste « You are NOT safe » de Ryan Ray dans la série Halt and Catch Fire n'a jamais été autant d'actualité !

Du Dev au Sysadmin : Automatisez les tests et évitez les régressions

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
105
|
Mois de parution
novembre 2019
|
Domaines
Résumé

L’intégration continue : faire en sorte que les tests soient lancés automatiquement à chaque fois qu’on pousse un commit sur un système de contrôle de versions et donc, réduire la charge mentale et éviter les bourdes qui cassent le master. Partager simplement entre tous les membres de l’équipe le statut des tests et garder un historique. Voilà tout ce à quoi peut servir l’intégration continue. Cet article sera l’occasion de voir en détail comment configurer deux outils d’intégration continue. Histoire que vous ne s-CI-ez plus la branche sur laquelle votre équipe est assise.

Par le même auteur

Une installation de Debian automatique

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
45
|
Mois de parution
décembre 2009
|
Domaines
Résumé
Lecteur de ce magazine, vous avez probablement eu l'occasion d'installer une Debian et, si ce n'est pas le cas, ceci ne vous effraie pas. Par conséquent, loin de moi l'idée de vous expliquer comment le faire, mais plutôt de vous raconter mon expérience d'installation d'une petite appliance que je souhaitais, si ce n'est industrielle, au moins automatique. Je précise par automatique que celle-ci se veut sans interaction de l'allumage de la machine jusqu'à son arrêt, installée, configurée. J'ouvre les cartons du hard reçu à cette occasion et je me lance.