From 07f46476379186554b897c079cadcdb93269610d Mon Sep 17 00:00:00 2001 From: korenstin Date: Tue, 13 Aug 2024 13:26:46 +0200 Subject: [PATCH] linters --- howto/creer_vm_crans.md | 100 +++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/howto/creer_vm_crans.md b/howto/creer_vm_crans.md index d79fd73..3b55853 100644 --- a/howto/creer_vm_crans.md +++ b/howto/creer_vm_crans.md @@ -110,18 +110,19 @@ romanesco : ipv4 : 172.16.10.128 (DNS récursif) hostname : le_nom_de_la machine ``` -Pour plus d'information, regardez cette [documentation](/infrastructure/reseaux/plan.md). -En cas de problème, il est possible de le configurer après installation dans `/etc/network/interfaces`. +Pour plus d'information, regardez cette +[documentation](/infrastructure/reseaux/plan.md). +En cas de problème, il est possible de le configurer après installation dans +`/etc/network/interfaces`. Nom de domaine pour les machines adm : `adm.crans.org` - ```config FQDN : `[nom du service].adm.crans.org` ``` > - Pour le gestionnaire de paquet, il est possible d'utiliser le mirroir du -> crans `http://mirror.adm.crans.org/debian/`. En cas de problème, il est possible -> de le configurer après installation dans `/etc/apt/sources.list`. +> crans `http://mirror.adm.crans.org/debian/`. En cas de problème, il est +> possible de le configurer après installation dans `/etc/apt/sources.list`. __Installer openssh__ si pas fait dans l'installateur @@ -130,40 +131,45 @@ via la terminal disponible sur Proxmox (`~/.ssh/authorized_keys`) ## Setup initial de la VM -Pour faciliter le déploiement des VM, le Crans opte pour l'utilisation d'Ansible. +Pour faciliter le déploiement des VM, le Crans opte pour l'utilisation +d'Ansible. ### SSH -Avant toutes choses, vérifiez que vous avez bien configuré ssh dans `~/.ssh/config`. Pour cela, faites un -tour sur la documentation d'[Ansible du crans](https://gitlab.crans.org/nounous/ansible) section +Avant toutes choses, vérifiez que vous avez bien configuré ssh dans +`~/.ssh/config`. Pour cela, faites un tour sur la documentation +d'[Ansible du crans](https://gitlab.crans.org/nounous/ansible) section `Configurer la connexion au vlan adm`. -La VM étant nouvellement configurer, il n'est possible de se ssh qu'en tant que root. Ainsi, il est -nécessaire de copiez votre clé SSH (public) sur le compte root : -`ssh-copy-id root@[nom_serveur].adm.crans.org` +La VM étant nouvellement configurer, il n'est possible de se ssh qu'en tant +que root. Ainsi, il est nécessaire de copiez votre clé SSH (public) sur le +compte root : `ssh-copy-id root@[nom_serveur].adm.crans.org` -> - À noter : il faut autoriser les connexions ssh en root et interdisez cela dès que cela est fait. +> - À noter : il faut autoriser les connexions ssh en root et interdisez cela +dès que cela est fait. ### Installation d'Ansible -Installez Ansible sur votre machine ainsi que `python3-ldap`. En effet, Ansible permet la gestion de toutes -les VM depuis son ordinateur. +Installez Ansible sur votre machine ainsi que `python3-ldap`. En effet, +Ansible permet la gestion de toutes les VM depuis son ordinateur. -Téléchargez le [dépôt git](https://gitlab.crans.org/nounous/ansible) avec les fichiers Ansible du Crans qui -contiennent la configuration de tout les serveurs du Crans. +Téléchargez le [dépôt git](https://gitlab.crans.org/nounous/ansible) avec les +fichiers Ansible du Crans qui contiennent la configuration de tout les +serveurs du Crans. Il faut alors ajouter la VM nouvellement créer dans Ansible. ### Configuration minimale -Cela correspond à la base de toutes les VM du crans. Cela inclut de permettre la connexion ssh par les +Cela correspond à la base de toutes les VM du crans. Cela inclut de permettre +la connexion ssh par les nounous notamment. -Pour cela, il faut ajouter la VM dans `hosts` dans la catégorie correspondante (généralement dans -`[crans_vm]`). +Pour cela, il faut ajouter la VM dans `hosts` dans la catégorie correspondante +(généralement dans `[crans_vm]`). -Ensuite, ajoutez un fichier `host_vars/[serveur].adm.crans.org` contenant la configuration réseau -(`interfaces`). +Ensuite, ajoutez un fichier `host_vars/[serveur].adm.crans.org` contenant la +configuration réseau (`interfaces`). Enfin, il faut rendre le LDAP accessible à votre machine : ```bash @@ -181,37 +187,47 @@ sans le `--check`. Plus d'info sur Ansible dans son [guide dédier](https://gitlab.crans.org/nounous/ansible). -Il se peut qu'une erreur persiste. En effet, avec `--check` aucune modification n'est appliquée. Donc, si -une commande nécessite au préalable qu'une autre ait eu lieu, une erreur peut se produire. +Il se peut qu'une erreur persiste. En effet, avec `--check` aucune +modification n'est appliquée. Donc, si une commande nécessite au préalable +qu'une autre ait eu lieu, une erreur peut se produire. ### Configurer un service -Tout d'abord, ajoutez le serveur dans `group_vars/reverseproxy.yml` dans la partie `reverseproxy_sites`. +Tout d'abord, ajoutez le serveur dans `group_vars/reverseproxy.yml` dans la +partie `reverseproxy_sites`. > - `reverseproxy.yml` contient le nom avec lequel le service sera accessible. -Dans `all.yml`, ajoutez un playbook (au nom du service pour l'identifier plus facilement) et créez un fichie -du même nom dans `plays` (inspirez-vous d'un autre fichier librement car la nomenclature sera similaire). +Dans `all.yml`, ajoutez un playbook (au nom du service pour l'identifier plus +facilement) et créez un fichier du même nom dans `plays` (inspirez-vous d'un +autre fichier librement car la nomenclature sera similaire). Le fichier dans `plays` contient 4 éléments essentiels : > - l'en-tête `#!/usr/bin/env ansible-playbook` > - une petite note explicative (parfois un œuf de Pâques...) -> - `hosts:` qui correspond à la VM ou groupe de VM pour lequel le script doit s'appliquer (la VM doit être -> déclarer dans le fichier `hosts`). Généralement, il s'agira de `[nom_vm].adm.crans.org`. -> - `roles:` qui contiendra la (ou les) configuration des services qui seront hébergés sur la VM. -> Généralement, il s'agira simplement du nom du service qui sera hébergé. +> - `hosts:` qui correspond à la VM ou groupe de VM pour lequel le script doit +> s'appliquer (la VM doit être déclarer dans le fichier `hosts`). +> Généralement, il s'agira de `[nom_vm].adm.crans.org`. +> - `roles:` qui contiendra la (ou les) configuration des services qui seront +> hébergés sur la VM. Généralement, il s'agira simplement du nom du service +> qui sera hébergé. -Une fois les rôles créés, il faut créer un dossier du même nom dans le dossier `roles` (pour chaque rôle -précédemment ajouté). Chacun de ces dossiers contient 2 autres dossiers : +Une fois les rôles créés, il faut créer un dossier du même nom dans le dossier +`roles` (pour chaque rôle précédemment ajouté). Chacun de ces dossiers +contient 2 autres dossiers : -> - `templates` qui contiendra tous les fichiers qui devront être copier sur la machine. Typiquement des -> fichiers de configuration comme pour `nginx` ou le `motd`. À noter que les `templates` peuvent contenir -> des variables sous la forme `{{ nom_de_la_variable }}`, qui sera remplacée au moment de l'exécution -> d'Ansible. Ces noms de variables sont généralement enregistrés dans `group_vars/[nom_service].yml`. Si -> la variable est un secret, il faut alors l'ajouter dans le pass et écrire `{{ vault.fichier.secret }}`. -> Les `templates` sont facultatifs si jamais utilisés. -> - `tasks` dont le fichier `main.yml` sera automatiquement exécuté. Il contient toutes les commandes à -> exécuter pour rendre le service opérationnel. De même que pour `templates`, il est possible d'utiliser -> des variables. +> - `templates` qui contiendra tous les fichiers qui devront être copier sur +> la machine. Typiquement des fichiers de configuration comme pour `nginx` +> ou le `motd`. À noter que les `templates` peuvent contenir des variables +> sous la forme `{{ nom_de_la_variable }}`, qui sera remplacée au moment de +> l'exécution d'Ansible. Ces noms de variables sont généralement enregistrés +> dans `group_vars/[nom_service].yml`. Si la variable est un secret, il faut +> alors l'ajouter dans le pass et écrire `{{ vault.fichier.secret }}`. Les +> `templates` sont facultatifs si jamais utilisés. +> - `tasks` dont le fichier `main.yml` sera automatiquement exécuté. Il +> contient toutes les commandes à exécuter pour rendre le service +> opérationnel. De même que pour `templates`, il est possible d'utiliser des +> variables. -Une fois la configuration terminée, pensez à push les modifications sur le git Ansible. +Une fois la configuration terminée, pensez à push les modifications sur le git +Ansible.