linuxinstaller/README.md
2024-10-28 14:10:51 +01:00

4.1 KiB

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 dossier generated 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

Dossier de projet Cubic

  • Paramétrage de la personnalisation de l'image ; choisir l'image linux mint téléchargée et personnalisé comme suit :

Écran de personnalisation de l'image

  • On arrive sur un shell qui permet de taper des commandes de personnalisation

Shell

  • Dans ce shell, taper les commandes suivantes :
apt update
apt install -y git python3-poetry
  • S'il est nécessaire d'ajouter un (ou plusieurs) certificat d'autorité de certification pour utiliser un repo git, l'ajouter dans, par exemple /usr/local/share/ca-certificates/nom_de_mon_autorite.crt puis faire :
apt install -y ca-certificates
/usr/sbin/update-ca-certificates
  • Installer l'outil linuxinstaller dans /opt
cd /opt
git clone https://git.libretic.fr/libretic/linuxinstaller.git
cd linuxinstaller
cp config.yml.example config.yml
  • Adapter le contenu du config.yml pour ses besoins.
  • S'il est souhaité qu'au premier démarrage de la machine, après installation, des playbooks se lancent automatiquement, leur donner le tag firstboot puis lancer :
./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

L'onglet preseed une fois renseigné

  • 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 :

L'onglet boot une fois renseignée la zone grub.cfg

L'onglet boot une fois renseignée la zone live.cfg

  • 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 :

Synthèse de l'image construite

  • 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