121 lines
4.1 KiB
Markdown
121 lines
4.1 KiB
Markdown
# 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](https://github.com/PJ-Singh-001/Cubic) :
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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 :
|
|
```bash
|
|
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](doc/cubic-folder.png)
|
|
|
|
* 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](doc/original_disk_customization.png)
|
|
|
|
* On arrive sur un shell qui permet de taper des commandes de personnalisation
|
|
|
|
![Shell](doc/shell.png)
|
|
|
|
* Dans ce shell, taper les commandes suivantes :
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```bash
|
|
apt install -y ca-certificates
|
|
/usr/sbin/update-ca-certificates
|
|
```
|
|
|
|
* Installer l'outil linuxinstaller dans /opt
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```bash
|
|
./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é](doc/preseed.png)
|
|
|
|
* 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](doc/boot-grub.png)
|
|
|
|
![L'onglet boot une fois renseignée la zone live.cfg](doc/boot-live.png)
|
|
|
|
* 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](doc/last.png)
|
|
|
|
* 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](https://www.ventoy.net)), 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)
|
|
|
|
```bash
|
|
NOPULL=0 ./linuxinstaller.sh
|
|
```
|