.vscode | ||
ansible | ||
cubic | ||
doc | ||
linuxinstaller | ||
autoinstall.yaml | ||
config.yml | ||
LICENSE | ||
linuxinstaller-firstboot.service | ||
linuxinstaller-firstboot.sh | ||
linuxinstaller.sh | ||
poetry.lock | ||
pyproject.toml | ||
README.md |
linuxinstaller
Le but de ce projet est de fournir :
- une image iso amorçable, permettant d'installer rapidement des ordinateurs basés sur Linux Mint
- un outil de configuration de ces ordinateurs qui se lance au premier démarrage
- la possibilité de relancer manuellement cet outil de configuration ultérieurement de manière à relancer la configuration initiale ou d'autres options
Création de l'image iso
- Sur un poste linux-mint, installer le logiciel Cubic :
sudo apt-add-repository universe
sudo apt-add-repository ppa:cubic-wizard/release
sudo apt update
sudo apt install --no-install-recommends cubic
-
Télécharger l'image linux mint officielle (édition cinnamon)
-
Cloner ce pojet
git clone https://git.libretic.fr/libretic/linuxinstaller.git
-
Adapter le projet selon ses besoins, notamment :
cubic/vars/main.yml
ansible/vars/main.yml
- les templates pour cubic dans
cubic/templates
-
Se placer dans le dossier
cubic
de ce projet et exécuter la génération des fichiers preseed qui seront utiles plus tard, et qui se trouveront dans le dossiergenerated
après exécution de la commande :
cd linuxinstaller/cubic
python3 -m venv preseed-venv
. preseed-venv/bin/activate
pip install ansible passlib
ansible-playbook configure-preseed.yml
- Lancer cubic et créer un nouveau dossier projet
- Paramétrage de la personnalisation de l'image ; choisir l'image linux mint téléchargée et personnalisé comme suit :
- On arrive sur un shell qui permet de taper des commandes de personnalisation
- Dans ce shell, taper les commandes suivantes :
apt update
apt install -y git python3-poetry
apt install -y auto-apt-proxy # facultatif, pour s'appuyer sur un proxy cache apt tel que apt-cacher-ng (doit répondre à l'adresse `apt-proxy`)
cd /opt
git clone https://git.libretic.fr/libretic/linuxinstaller.git
cd linuxinstaller
./linuxinstaller.sh --firstboot
-
Une fois exécutées les commandes ci-dessus, passer à l'écran qui suit, qui propose de modifier la liste des packages qui doivent être supprimés dans l'image. Ne rien changer.
-
L'écran suivant propose de modifier les options de démarrage. Dans l'onglet preseed de cet écran, créer plusieurs fichiers et y copier/coller les contenus des mêmes fichiers générés par ansible :
autoinstall-nvme.ks
autoinstall-sda.ks
autoinstall-vda.ks
- Dans l'onglet Boot, remplacer les contenus des fichiers grub.cfg et live.cfg par les contenus des fichiers générés par ansible :
-
Les écrans suivant permettent de valider le taux de compression puis de générer l'image.
-
Une fois générée, on obtient un écran de synthèse :
-
Le bouton "test" permet de tester l'image obtenue, mais il est préférable de tester avec virt-manager pour une meilleure simulation de ce qu'on obtiendra après sur un ordinateur.
-
Une fois obtenu le résultat souhaité, il ne reste plus qu'à déposer l'image dans une clé usb (conseil : utiliser Ventoy), puis amorcer un PC avec cette image.
Installation d'un ordinateur avec l'image iso obtenue
Utilisation du menu linuxinstaller
- Pour lancer linuxinstaller sans pull depuis le repo (développement)
NOPULL=0 ./linuxinstaller.sh