diff --git a/README.md b/README.md index 15eeef4..187926b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# libreticmenu +# 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 @@ -23,7 +23,7 @@ sudo apt install --no-install-recommends cubic * Cloner ce pojet ```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 : @@ -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 : ```bash -cd libreticmenu/cubic +cd linuxinstaller/cubic python3 -m venv preseed-venv . preseed-venv/bin/activate pip install ansible passlib @@ -59,17 +59,17 @@ 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/libreticmenu.git -cd libreticmenu -./libreticmenu.sh --firstboot +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 : - * `libretic-nvme.ks` - * `libretic-sda.ks` - * `libretic-vda.ks` + * `autoinstall-nvme.ks` + * `autoinstall-sda.ks` + * `autoinstall-vda.ks` ![L'onglet preseed une fois renseigné](doc/preseed.png) @@ -93,10 +93,10 @@ cd libreticmenu ## 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 -NOPULL=0 ./libreticmenu.sh +NOPULL=0 ./linuxinstaller.sh ``` diff --git a/ansible/firstboot.yml b/ansible/firstboot.yml index acc05ae..e57d0fe 100644 --- a/ansible/firstboot.yml +++ b/ansible/firstboot.yml @@ -9,8 +9,8 @@ tasks: - name: Firstboot ansible.builtin.file: - src: /opt/libreticmenu/libreticmenu-firstboot.service - dest: /etc/systemd/system/libreticmenu-firstboot.service + src: /opt/linuxinstaller/linuxinstaller-firstboot.service + dest: /etc/systemd/system/linuxinstaller-firstboot.service state: link owner: root group: root @@ -18,5 +18,5 @@ - name: Active firstboot ansible.builtin.service: - name: libreticmenu-firstboot + name: linuxinstaller-firstboot enabled: true diff --git a/ansible/roles/base/tasks/main.yml b/ansible/roles/base/tasks/main.yml index 52b6c26..de70e9f 100644 --- a/ansible/roles/base/tasks/main.yml +++ b/ansible/roles/base/tasks/main.yml @@ -12,7 +12,7 @@ ansible.builtin.copy: content: | # 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 }} when: installer_username in getent_passwd.keys() diff --git a/autoinstall.yaml b/autoinstall.yaml index 8d8eb07..bf35505 100644 --- a/autoinstall.yaml +++ b/autoinstall.yaml @@ -89,5 +89,5 @@ autoinstall: # - curtin in-target -- bash /postinstall.sh # - rm /target/postinstall.sh - - curtin in-target -- git clone https://git.libretic.fr/libretic/libreticmenu.git /opt/libreticmenu/ - # - curtin in-target -- LANG=fr_FR.UTF-8 /opt/libreticmenu/libreticmenu.sh --firstboot + - curtin in-target -- git clone https://git.libretic.fr/libretic/linuxinstaller.git /opt/linuxinstaller/ + # - curtin in-target -- LANG=fr_FR.UTF-8 /opt/linuxinstaller/linuxinstaller.sh --firstboot diff --git a/cubic/configure-preseed.yml b/cubic/configure-preseed.yml index a5d2279..4ecb741 100644 --- a/cubic/configure-preseed.yml +++ b/cubic/configure-preseed.yml @@ -14,8 +14,8 @@ - name: Fichiers preseed ansible.builtin.template: - src: libretic.ks.j2 - dest: generated/libretic-{{ item.boot_entry_name }}.ks + src: autoinstall.ks.j2 + dest: generated/autoinstall-{{ item.boot_entry_name }}.ks mode: u=rw,g=r,o=r with_items: "{{ preseed_versions }}" vars: diff --git a/cubic/templates/libretic.ks.j2 b/cubic/templates/autoinstall.ks.j2 similarity index 100% rename from cubic/templates/libretic.ks.j2 rename to cubic/templates/autoinstall.ks.j2 diff --git a/cubic/vars/main.yml b/cubic/vars/main.yml index 57f0597..d551446 100644 --- a/cubic/vars/main.yml +++ b/cubic/vars/main.yml @@ -9,7 +9,7 @@ preseed_versions: diskdevice: /dev/vda # 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 # Le mot de passe de cet utilisateur diff --git a/libreticmenu-firstboot.service b/libreticmenu-firstboot.service deleted file mode 100644 index 9561e57..0000000 --- a/libreticmenu-firstboot.service +++ /dev/null @@ -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 diff --git a/libreticmenu-firstboot.sh b/libreticmenu-firstboot.sh deleted file mode 100755 index 0fc4bc4..0000000 --- a/libreticmenu-firstboot.sh +++ /dev/null @@ -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 diff --git a/libreticmenu.sh b/libreticmenu.sh deleted file mode 100755 index 7bdbb14..0000000 --- a/libreticmenu.sh +++ /dev/null @@ -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 $* diff --git a/linuxinstaller-firstboot.service b/linuxinstaller-firstboot.service new file mode 100644 index 0000000..03e58c0 --- /dev/null +++ b/linuxinstaller-firstboot.service @@ -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 diff --git a/linuxinstaller-firstboot.sh b/linuxinstaller-firstboot.sh new file mode 100755 index 0000000..60ed09f --- /dev/null +++ b/linuxinstaller-firstboot.sh @@ -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 diff --git a/linuxinstaller.sh b/linuxinstaller.sh new file mode 100755 index 0000000..ff67fdc --- /dev/null +++ b/linuxinstaller.sh @@ -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 $* diff --git a/libreticmenu/.gitignore b/linuxinstaller/.gitignore similarity index 100% rename from libreticmenu/.gitignore rename to linuxinstaller/.gitignore diff --git a/libreticmenu/AnsibleActions.py b/linuxinstaller/AnsibleActions.py similarity index 100% rename from libreticmenu/AnsibleActions.py rename to linuxinstaller/AnsibleActions.py diff --git a/libreticmenu/GitActions.py b/linuxinstaller/GitActions.py similarity index 100% rename from libreticmenu/GitActions.py rename to linuxinstaller/GitActions.py diff --git a/libreticmenu/PythonActions.py b/linuxinstaller/PythonActions.py similarity index 100% rename from libreticmenu/PythonActions.py rename to linuxinstaller/PythonActions.py diff --git a/libreticmenu/__init__.py b/linuxinstaller/__init__.py similarity index 100% rename from libreticmenu/__init__.py rename to linuxinstaller/__init__.py diff --git a/libreticmenu/libreticmenu.py b/linuxinstaller/linuxinstaller.py similarity index 95% rename from libreticmenu/libreticmenu.py rename to linuxinstaller/linuxinstaller.py index 54a7b12..ed4d89b 100644 --- a/libreticmenu/libreticmenu.py +++ b/linuxinstaller/linuxinstaller.py @@ -114,7 +114,7 @@ def branchChoice(): GitActions.setBranch(result[0]) console = Console() 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() exit() else: @@ -126,7 +126,7 @@ def main(): config = readConfig("config.yml") 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']: parser.add_argument("--" + entry, help=config['ansiblemenu'][entry]['argument_help'], action='store_true') args = parser.parse_args() diff --git a/pyproject.toml b/pyproject.toml index d2f159e..46f3859 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "libreticmenu" +name = "linuxinstaller" version = "0.1.0" description = "" authors = ["Olivier Navas "]