Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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.

Hors ligne

#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