Besoin d'une procédure étape par étape pour créer un serveur kickstart sur Ubuntu 14.04 LTS
Ceci est un bon guide étape par étape
TL; DR ; utilisez isohybrid après avoir remballé l'iso personnalisé
Pour faire cet usb, j'ai utilisé une machine virtuelle avec Ubuntu 14.04 installé. L’objectif ici est de créer une clé USB amorçable ne nécessitant aucune sélection, comme la disposition du clavier, la langue, etc. Nous souhaitons l’installation automatique d’un serveur Ubuntu.
Nous devons obtenir l’image Ubuntu que nous allons personnaliser pour notre installation.
wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-AMD64.iso
Nous allons avoir besoin d’un emplacement pour monter le fichier iso décompressé.
Sudo mkdir -p /mnt/iso
Après avoir créé un point de montage, nous devons maintenant le monter. Cela exposera les fichiers contenus dans l'iso. Malheureusement, les fichiers seront en lecture seule
. Sudo mount -o loop ubuntu-14.04.2-server-AMD64.iso/mnt/iso
Pour modifier les fichiers, nous devons les copier dans un répertoire dans lequel nous pouvons les modifier. Nous allons donc créer le répertoire, puis y copier les fichiers.
Sudo mkdir -p /opt/ubuntuiso Sudo cp -rT /mnt/iso /opt/ubuntuiso
Notre nouveau répertoire de travail sera/opt/ubuntuiso
cd /opt/ubuntuiso
Pour éviter d’être invité à sélectionner la langue dans le processus d’installation, nous devons lui indiquer quelle langue nous allons utiliser. Dans ce cas, en est utilisé parce que je parle anglais.
echo en | Sudo tee isolinux/lang
Nous allons maintenant créer le fichier kickstart avec un programme appelé system-config-kickstart. Nous nous assurons donc qu’il est installé, puis nous l’exécutons.
Sudo apt-get install system-config-kickstart system-config-kickstart
Enregistrez ensuite le fichier à partir de l'interface graphique dans
/opt/ubuntuiso/
. Cela devrait enregistrer un fichier appelé ks.cfg. Mon fichier ks.cfg ressemble à ce qui suit#Generated by Kickstart Configurator #platform=AMD64 or Intel EM64T #System language lang en_US #Language modules to install langsupport en_US #System keyboard keyboard us #System mouse mouse #System timezone timezone America/Denver #Root password rootpw --disabled #Initial user user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt. #Reboot after installation reboot #Use text mode install text #Install OS instead of upgrade install #Use CDROM installation media cdrom #System bootloader configuration bootloader --location=mbr #Clear the Master Boot Record zerombr yes #Partition clearing information clearpart --all --initlabel #Disk partitioning information part /boot --fstype ext2 --size 100 --asprimary part swap --recommended part / --fstype ext4 --size 1 --grow #System authorization infomation auth --useshadow --enablemd5 #Network information network --bootproto=dhcp --device=eth0 #Firewall configuration firewall --disabled #Do not configure the X Window System skipx %post #!/bin/bash exec < /dev/tty6 > /dev/tty6 chvt 6 echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy apt-get update apt-get -y upgrade apt-get -y dist-upgrade apt-get install -y git ansible openssh-server vim chvt 1
Un peu de piratage est fait dans le post-scriptum (tout après
%post
). La ligne commençant par exec et la ligne suivante (chvt 6
) forcent le programme d'installation à afficher le résultat des commandes exécutées par la suite. La raison en est que la barre de chargement ne bougera pas pendant l’installation et peut donner l’impression que le programme d’installation s’est bloqué. La ligne suivante qui utilise le proxy concerne apt-cache sur notre réseau local. La dernière ligne (chvt 1
) renvoie la sortie au programme d'installation principal.Nous devons maintenant ajouter le fichier de préconfiguration afin d’éviter d’autres questions.
echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | Sudo tee ks.preseed
Nous devons maintenant informer le programme d’installation des fichiers que nous venons de sauvegarder. Nous devons donc modifier isolinux/txt.cfg. Nous devons d’abord rendre le fichier accessible en écriture.
Sudo chmod +w isolinux/txt.cfg
Ensuite, nous devons remplacer la ligne d’ajout de la section suivante
label install menu label ^Install Ubuntu Server kernel /install/vmlinuz append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
Remplacez la ligne d'ajout par
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
Enregistrez et quittez le fichier. Nous devons également nous assurer de remettre le fichier dans son état d'origine. Supprimez donc les autorisations d'écriture.
Sudo chmod -w isolinux/txt.cfg
Créez maintenant le nouveau fichier ISO que nous utiliserons pour créer le fichier USB amorçable.
Sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
Afin de finaliser l'iso bootable pour un usb, nous devons l'hybrider.
Sudo isohybrid /opt/autoinstall.iso
Après l'hybridation, nous pouvons le pousser sur le lecteur USB. Le lecteur USB de ma machine virtuelle apparaît dans
/dev/sdb
, mais vous devez utiliser l'étiquette correcte. Remplacez donc X en conséquence. Assurez-vous que le lecteur USB est démonté.Sudo umount /dev/sdX
Et enfin Poussez l'iso sur le lecteur USB. (Veuillez noter que ** ceci détruit les données sur le périphérique cible - assurez-vous de savoir ce que vous faites)
Sudo dd if=/opt/autoinstall.iso of=/dev/sdX
Maintenant, votre clé USB devrait être prête pour l'installation!
La solution complète:
Remasterisez un CD, c'est-à-dire téléchargez une image ISO d'installation non graphique d'Ubuntu (CD d'installation ou de remplacement) et montez-la. Dans ce cas, votre Ubuntu 14 ISO.
Sudo mkdir -p /mnt/iso
Sudo mount -o loop ubuntu.iso /mnt/iso
Copiez les fichiers pertinents dans un répertoire différent
Sudo mkdir -p /opt/ubuntuiso
Sudo cp -rT /mnt/iso /opt/ubuntuiso
Empêcher l'affichage du menu de sélection de la langue
cd /opt/ubuntuiso
echo en | Sudo tee isolinux/lang
Utilisez le programme graphique pour ajouter un fichier kickstart nommé ks.cfg
Sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg
Pour ajouter des packages pour l'installation, ajoutez une section %package
au fichier ks.cfg
kickstart, ajoutez quelque chose de ce type à la fin du fichier ks.cfg
.
%packages
@ ubuntu-server
openssh-server
ftp
build-essential
Ceci installera le "paquet" du serveur ubuntu, et ajoutera les paquets openssh-server
, ftp
et build-essential
.
Ajouter un fichier de préconfiguration pour supprimer d'autres questions
echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | Sudo tee ks.preseed
Définissez la ligne de commande de démarrage pour utiliser les fichiers kickstart et preseed
Sudo nano isolinux/txt.cfg
Rechercher
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
ajoutez ks=cdrom:/ks.cfg
et preseed/file=/cdrom/ks.preseed
à la ligne d'ajout. Vous pouvez supprimer les mots quiet
et vga=788
. Il devrait ressembler à
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
Maintenant, créez une nouvelle iso
Sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
C'est ça. Vous aurez un CD qui installera un système Ubuntu une fois que vous en aurez démarré, sans aucune intervention de votre part.
Ajustez les fichiers ks.cfg et preseed selon vos besoins.