#1 Le 25/01/2019, à 18:32
- jlmas
Installation automatisé d'Ubuntu 18.04 LTS avec Ansible
Quelqu’un a-t-il de l’expérience pour des installations en mode fire and forget d’Ubuntu 18.04 LTS sur des postes de travail avec Ansible ?
Le contexte
Soit un paquet de postes de travail, plus d’une centaine, à réinstaller au moins une fois par an, mais pas de manière simultanée. On peut faire du boot PXE pour installer un système minimal. On peut se déplacer jusqu’au poste de travail pour lancer le boot PXE.
Le mode fire and forget, signifie qu’une fois installée le poste de travail vit sa vie, sans aucune intervention d’Ansible. En cas de soucis, on réinstalle.
C’est plus la partie Ansible qui m’intéresse, si quelqu’un à des liens ou des configurations à partager ?
En fait la demande est assez proche du message suivant https://forum.ubuntu-fr.org/viewtopic.php?id=2033648
Hors ligne
#2 Le 28/01/2019, à 09:15
- bruno
Re : Installation automatisé d'Ubuntu 18.04 LTS avec Ansible
Salut,
Je n'ai pas d'expérience là dessus mais je rappelle que pour pouvoir utiliser Ansible il faut que chaque poste de travail soit accessible par SSH. Cela suppose donc qu'il y ait d'abord une installation minimale avec un serveur SSH configuré et idéalement un clé publique pour autoriser un accès root.
#3 Le 05/02/2019, à 18:36
- jlmas
Re : Installation automatisé d'Ubuntu 18.04 LTS avec Ansible
Quelques info sur la progression du projet. On commence pour les tests en boot classique, mais on passera rapidement en boot EFI
C'est du travail en cours
On a installé un serveur tftp et un serveur apache
apt install tftpd-hpa apache2
Pour la partie PXE on s'est basé sur cette documentation https://wiki.debian-fr.xyz/PXE_avec_support_EFI
On utilise une appliance pour le DHCP, sur laquelle nous n'avons que peu d'options de configuration. Nous avons modifié les options suivantes
Filename : pxelinux.0
Next server : 192.168.1.1
Root path : /var/lib/tftpboot
Tftp server name : pxe.example.fr
On a modifié le fichier suivant /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg
On appelle un fichier preseed ub-18.04-preseed.cfg via le serveur apache que l'on a installé plus haut, on passe en fr_FR.UTF-8, de fait toute l'installation et la configuration de la machine sera en français
default install
label install
menu label ^Install
menu default
kernel ubuntu-installer/amd64/linux
append vga=788 initrd=ubuntu-installer/amd64/initrd.gz locale=fr_FR.UTF-8 preseed/url=https://pxe.example.fr/ub-18.04-preseed.cfg --- quiet
label cli
menu label ^Command-line install
kernel ubuntu-installer/amd64/linux
append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz preseed/url=https://pxe.example.fr/ub-18.04-preseed.cfg --- quiet
Le contenu du fichier ub-18.04-preseed.cfg
* On défini un utilisateur de base qui est admin avec son mot de passe. C'est ici que l'on ajoutera le compte ansible plus tard.
* On formate automatiquement et on chiffre le disque
* On installe un serveur openssh pour s'y connecter par la suite et toujours pour Ansible
# Enable extras.ubuntu.com.
# To create a normal user account.
d-i passwd/user-fullname string Compte Admin
d-i passwd/username string compte-admin
# or encrypted using a crypt(3) hash.
d-i passwd/user-password-crypted password $6$61fdif.......
# package management.
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string fr.archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
# Suite to install.
d-i mirror/suite string bionic
# Conf issue de http://people.canonical.com/~mtrudel/preseed/crypto.cfg
# Partitioning
d-i partman-lvm/confirm boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/method string crypto
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select boot-crypto
d-i partman-auto-lvm/new_vg_name string crypt
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
#Timezone
d-i time/zone string EU/Paris
d-i apt-setup/extras boolean true
# Install the Ubuntu desktop.
tasksel tasksel/first multiselect ubuntu-desktop, openssh-server, vim
# On live DVDs, don't spend huge amounts of time removing substantial
# application packages pulled in by language packs. Given that we clearly
# have the space to include them on the DVD, they're useful and we might as
# well keep them installed.
ubiquity ubiquity/keep-installed string icedtea6-plugin openoffice.org
Dernière modification par jlmas (Le 05/02/2019, à 18:39)
Hors ligne
#4 Le 15/02/2019, à 13:44
- jlmas
Re : Installation automatisé d'Ubuntu 18.04 LTS avec Ansible
Quelques modifications
* UEFI
Nous désirons privilégier le boot PXE UEFI, car il s'imposera à terme, au fur et à mesure que des ordinateurs neufs entreront dans notre parc. Néanmoins, nous nous sommes rendu compte que la majorité des ordinateurs de notre parc ne sont pas capable de booter en UEFI via PXE et que l'appliance que nous utilisons ne permet pas de faire un script tel que présenté ici.
Le point positif par contre est qu'il n'est pas nécessaire de faire 2 branches sur le serveur PXE, une pour le boot PXE UEFI et une pour le boot PXE Legacy, tout peut se trouver dans la même branche, nommément celle du boot PXE UEFI.
* Fichier preseed
Dans notre fichier ub-18.04-preseed.cfg, nous avons remplacé notre utilisateur compte-admin par ansible, notre utilisateur de base sera créé plus tard.
# Creation du compte ansible
d-i passwd/user-fullname string Compte Ansible
d-i passwd/username string ansible
# or encrypted using a crypt(3) hash.
d-i passwd/user-password-crypted password $yyyyyyyyyyyyyyyyyyyyyyyyyy
Nous avons modifié les lignes suivantes :
# Install the Ubuntu desktop.
tasksel tasksel/first multiselect ubuntu-desktop, openssh-server, vim
Pour les remplacer par :
# Install the Ubuntu desktop.
tasksel tasksel/first multiselect ubuntu-desktop
# Individual additional packages to install
d-i pkgsel/include string openssh-server vim
Dernière modification par jlmas (Le 21/02/2019, à 13:19)
Hors ligne