Renommage

This commit is contained in:
Navas 2024-10-18 19:50:12 +02:00
parent 28054f6ad0
commit af32a4570e
20 changed files with 48 additions and 48 deletions

View file

@ -1,4 +1,4 @@
# libreticmenu # linuxinstaller
Le but de ce projet est de fournir : Le but de ce projet est de fournir :
* une image iso amorçable, permettant d'installer rapidement des ordinateurs basés sur Linux Mint * une image iso amorçable, permettant d'installer rapidement des ordinateurs basés sur Linux Mint
@ -23,7 +23,7 @@ sudo apt install --no-install-recommends cubic
* Cloner ce pojet * Cloner ce pojet
```bash ```bash
git clone https://git.libretic.fr/libretic/libreticmenu.git git clone https://git.libretic.fr/libretic/linuxinstaller.git
``` ```
* Adapter le projet selon ses besoins, notamment : * Adapter le projet selon ses besoins, notamment :
@ -33,7 +33,7 @@ git clone https://git.libretic.fr/libretic/libreticmenu.git
* 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 : * 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 ```bash
cd libreticmenu/cubic cd linuxinstaller/cubic
python3 -m venv preseed-venv python3 -m venv preseed-venv
. preseed-venv/bin/activate . preseed-venv/bin/activate
pip install ansible passlib pip install ansible passlib
@ -59,17 +59,17 @@ apt update
apt install -y git python3-poetry 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`) 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 cd /opt
git clone https://git.libretic.fr/libretic/libreticmenu.git git clone https://git.libretic.fr/libretic/linuxinstaller.git
cd libreticmenu cd linuxinstaller
./libreticmenu.sh --firstboot ./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. * 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 : * 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 :
* `libretic-nvme.ks` * `autoinstall-nvme.ks`
* `libretic-sda.ks` * `autoinstall-sda.ks`
* `libretic-vda.ks` * `autoinstall-vda.ks`
![L'onglet preseed une fois renseigné](doc/preseed.png) ![L'onglet preseed une fois renseigné](doc/preseed.png)
@ -93,10 +93,10 @@ cd libreticmenu
## Installation d'un ordinateur avec l'image iso obtenue ## Installation d'un ordinateur avec l'image iso obtenue
## Utilisation du menu libreticmenu ## Utilisation du menu linuxinstaller
* Pour lancer libreticmenu sans pull depuis le repo (développement) * Pour lancer linuxinstaller sans pull depuis le repo (développement)
```bash ```bash
NOPULL=0 ./libreticmenu.sh NOPULL=0 ./linuxinstaller.sh
``` ```

View file

@ -9,8 +9,8 @@
tasks: tasks:
- name: Firstboot - name: Firstboot
ansible.builtin.file: ansible.builtin.file:
src: /opt/libreticmenu/libreticmenu-firstboot.service src: /opt/linuxinstaller/linuxinstaller-firstboot.service
dest: /etc/systemd/system/libreticmenu-firstboot.service dest: /etc/systemd/system/linuxinstaller-firstboot.service
state: link state: link
owner: root owner: root
group: root group: root
@ -18,5 +18,5 @@
- name: Active firstboot - name: Active firstboot
ansible.builtin.service: ansible.builtin.service:
name: libreticmenu-firstboot name: linuxinstaller-firstboot
enabled: true enabled: true

View file

@ -12,7 +12,7 @@
ansible.builtin.copy: ansible.builtin.copy:
content: | content: |
# Autorise {{ installer_username }} à lancer le menu sans mdp # Autorise {{ installer_username }} à lancer le menu sans mdp
{{ installer_username }} ALL = NOPASSWD:/opt/libreticmenu/libreticmenu.sh {{ installer_username }} ALL = NOPASSWD:/opt/linuxinstaller/linuxinstaller.sh
dest: /etc/sudoers.d/{{ installer_username }} dest: /etc/sudoers.d/{{ installer_username }}
when: installer_username in getent_passwd.keys() when: installer_username in getent_passwd.keys()

View file

@ -89,5 +89,5 @@ autoinstall:
# - curtin in-target -- bash /postinstall.sh # - curtin in-target -- bash /postinstall.sh
# - rm /target/postinstall.sh # - rm /target/postinstall.sh
- curtin in-target -- git clone https://git.libretic.fr/libretic/libreticmenu.git /opt/libreticmenu/ - curtin in-target -- git clone https://git.libretic.fr/libretic/linuxinstaller.git /opt/linuxinstaller/
# - curtin in-target -- LANG=fr_FR.UTF-8 /opt/libreticmenu/libreticmenu.sh --firstboot # - curtin in-target -- LANG=fr_FR.UTF-8 /opt/linuxinstaller/linuxinstaller.sh --firstboot

View file

@ -14,8 +14,8 @@
- name: Fichiers preseed - name: Fichiers preseed
ansible.builtin.template: ansible.builtin.template:
src: libretic.ks.j2 src: autoinstall.ks.j2
dest: generated/libretic-{{ item.boot_entry_name }}.ks dest: generated/autoinstall-{{ item.boot_entry_name }}.ks
mode: u=rw,g=r,o=r mode: u=rw,g=r,o=r
with_items: "{{ preseed_versions }}" with_items: "{{ preseed_versions }}"
vars: vars:

View file

@ -9,7 +9,7 @@ preseed_versions:
diskdevice: /dev/vda diskdevice: /dev/vda
# Définit, dans le cas d'une installation automatisée, le nom de l'utilisateur # Définit, dans le cas d'une installation automatisée, le nom de l'utilisateur
# non root autorisé à lancer le menu libreticmenu # non root autorisé à lancer le menu linuxinstaller
installer_username: installer installer_username: installer
# Le mot de passe de cet utilisateur # Le mot de passe de cet utilisateur

View file

@ -1,10 +0,0 @@
[Unit]
Description=Execution de libreticmenu-firstboot.sh au premier démarrage
After=network.target
[Service]
Type=simple
ExecStart=/opt/libreticmenu/libreticmenu-firstboot.sh
[Install]
WantedBy=multi-user.target

View file

@ -1,6 +0,0 @@
#!/bin/bash
set -eo pipefail
logger -t libreticmenu "Exécution de libreticmenu-firstboot.sh"
until host git.libretic.fr; do sleep 5; done
/opt/libreticmenu/libreticmenu.sh --update --conformite \
&& systemctl disable libreticmenu-firstboot.service

View file

@ -1,8 +0,0 @@
#!/bin/bash
set -eo pipefail
DIR=$(dirname $0)
cd $DIR
[ "$NOPULL" != "0" ] && git pull
poetry lock
poetry -C $DIR/libreticmenu install
poetry -C $DIR/libreticmenu run python $DIR/libreticmenu/libreticmenu.py $*

View file

@ -0,0 +1,10 @@
[Unit]
Description=Execution de linuxinstaller-firstboot.sh au premier démarrage
After=network.target
[Service]
Type=simple
ExecStart=/opt/linuxinstaller/linuxinstaller-firstboot.sh
[Install]
WantedBy=multi-user.target

6
linuxinstaller-firstboot.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
set -eo pipefail
logger -t linuxinstaller "Exécution de linuxinstaller-firstboot.sh"
until host git.libretic.fr; do sleep 5; done
/opt/linuxinstaller/linuxinstaller.sh --update --conformite \
&& systemctl disable linuxinstaller-firstboot.service

8
linuxinstaller.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
set -eo pipefail
DIR=$(dirname $0)
cd $DIR
[ "$NOPULL" != "0" ] && git pull
poetry lock
poetry -C $DIR/linuxinstaller install
poetry -C $DIR/linuxinstaller run python $DIR/linuxinstaller/linuxinstaller.py $*

View file

@ -114,7 +114,7 @@ def branchChoice():
GitActions.setBranch(result[0]) GitActions.setBranch(result[0])
console = Console() console = Console()
console.print() console.print()
console.print("=== Relancer libreticmenu.sh pour bénéficier du changement d'environnement ===", style="bold red") console.print("=== Relancer linuxinstaller.sh pour bénéficier du changement d'environnement ===", style="bold red")
console.print() console.print()
exit() exit()
else: else:
@ -126,7 +126,7 @@ def main():
config = readConfig("config.yml") config = readConfig("config.yml")
currentBranch = GitActions.getBranch() currentBranch = GitActions.getBranch()
parser = argparse.ArgumentParser(prog="libreticmenu.py", description="Menu de configuration Libretic") parser = argparse.ArgumentParser(prog="linuxinstaller.py", description="Menu de configuration Libretic")
for entry in config['ansiblemenu']: for entry in config['ansiblemenu']:
parser.add_argument("--" + entry, help=config['ansiblemenu'][entry]['argument_help'], action='store_true') parser.add_argument("--" + entry, help=config['ansiblemenu'][entry]['argument_help'], action='store_true')
args = parser.parse_args() args = parser.parse_args()

View file

@ -1,5 +1,5 @@
[tool.poetry] [tool.poetry]
name = "libreticmenu" name = "linuxinstaller"
version = "0.1.0" version = "0.1.0"
description = "" description = ""
authors = ["Olivier Navas <olivier.navas@libretic.fr>"] authors = ["Olivier Navas <olivier.navas@libretic.fr>"]