web-dev-qa-db-fra.com

Étapes pour créer un serveur kickstart sur Ubuntu 14.04

Besoin d'une procédure étape par étape pour créer un serveur kickstart sur Ubuntu 14.04 LTS

1
suresh

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!

1
Andrea D'Ubaldo

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.

0
remoteitguy