fr:rapports:2021:12-06
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
fr:rapports:2021:12-06 [2021/10/03 13:30] – tharyrok | fr:rapports:2021:12-06 [2021/12/28 16:43] (Version actuelle) – supprimée tharyrok | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | # 2021/06/12 (Neutriton) : Bascule des VMs | ||
- | * [Réunion précédente](https:// | ||
- | * [Pad de la réunion](https:// | ||
- | |||
- | Présences : | ||
- | |||
- | - Liberfix | ||
- | - HgO | ||
- | - Célo | ||
- | - Tharyrok | ||
- | - Channel (en retard) | ||
- | |||
- | Jitsi : https:// | ||
- | Caldarium : [https:// | ||
- | |||
- | ## Météo | ||
- | |||
- | *Moment informel durant lequel on exprime **en peu de mots** comment on se sent et si on a une attente forte pour la réunion.* | ||
- | |||
- | *Ce n'est pas un moment de discussion mais d' | ||
- | |||
- | ### Attente(s) forte(s) | ||
- | |||
- | *Si l'une ou l' | ||
- | |||
- | ## Ordre du jour | ||
- | |||
- | La journée sera divisée en deux parties: | ||
- | |||
- | - À partir de 10h : | ||
- | - Présentation de Molecule (uniquement si des gens sont intéressés) | ||
- | - Configuration des playbooks Ansible | ||
- | - Création des VMs dans Proxmox | ||
- | |||
- | - À partir de 14h : | ||
- | - Bascule de la VM web derrière les HAProxy | ||
- | - Configuration des playbooks Ansible | ||
- | |||
- | ### Présentation de Molecule | ||
- | |||
- | Comment tester un playbook Ansible sur sa machine à l'aide de [Molecule](https:// | ||
- | |||
- | Molécule est présent dans les playbook de Neutrinet. Il permet de tester un rôle Ansible. On ne teste pas directement un playbook mais un rôle. Ca teste le coeur : la logique avec laquelle les choses sont appliquée. | ||
- | |||
- | IL y a plusieurs étapes : | ||
- | |||
- | 1) La création d'une VM sur sa machine (ça peut être un conteneur LXC). HgO l' | ||
- | |||
- | On installe Ansible et Molécule. Neutrinet a un fichier requierment : toutes les dépendances nécessaires à installer. Ca créé un virtual env. Une fois dans cet environnement, | ||
- | |||
- | Lorsque la VM est créée, elle apparait dans VirtualBox. On peut les supprimer manuellement depuis VirtualBox aussi. | ||
- | |||
- | Dans Molecule, on peut choisir le type de machine. Là c'est du Debian. C'est le fichier molecule.yml qui définit la machine a créer. Le driver est important, ici Vagrant. Et provider, VirtualBox (mais on pourrait en mettre un autre). Name : on peut mettre la distribution et molécule. C'est pas obligatoire mais ça permet de se repérer dans VirtualBox. Le provisionner : comment on créé la machine et avec quelle config. Config option : permet de définir les options propres à Ansible. En fait, cela reprend ansible.cfg. Ca regarde quelle version de python, quels secrets, etc, on va utiliser. On ne va pas s'y attarder mais c'est important pour définir la version de pithon à utiliser. Configuration réseau. Il y a une configuration standart (par défaut il fait du NAT) -> comme la config standart de VirtualBox. | ||
- | |||
- | Pour Ansible de Neutrinet, HgO a créé une interface virtuelle supplémentaire pour contacter la VM en interne. -> réseau privé hôte dans VirtualBox. | ||
- | |||
- | 2) Une fois la machine crée, on fait le converge. Le converge, c'est exécuter le rôle commun sur la VM. En général, le converge, ça va juste être : s' | ||
- | |||
- | On parle plutôt de tester un rôle qu'un playbook car on va en général tester un rôle à la fois. Mais une fois que les briques sont testées, on peut considérer que ça fonctionne. | ||
- | |||
- | Config réseau : il peut y avoir des soucis avec certaines cartes Wifi. | ||
- | |||
- | prepare.yml : juste après la création de la VM, ça lance avahi ou docker une première fois. Ca ne sera plus fait dans les converge suivant. | ||
- | |||
- | Commande idempotence : permet de vérifier que c'est idempotent. En prinicpe, on peut le lancer à la place d'un converge et il lance deux converge. L' | ||
- | |||
- | utilisateur neutrinet : défini par défaut dans les valeurs par défaut du playbook commun. | ||
- | |||
- | Une bonne pratique c'est que les option par default d'un playbook suffi pour faire les test dans molécule. Car molecule ne charge pas les variable du playbook. Du coup si une variable est utiliser dans un role et qu' | ||
- | |||
- | Dans molécule, on peut utiliser des variables propres à molécule. Un groupe var comme pour les machines mais on peut aussi créer des fichiers propre aux playbook. Par exemple, HgO a créé la clé publique / privée de l' | ||
- | |||
- | Molecule avec sa commande login va utiliser le vagrant login qui lors de la création de la vm va injecter dans l' | ||
- | |||
- | |||
- | Pre-commit (?) : Cela va faire des check de syntaxe, et ça va dire si la synthaxe n'est pas bonne avant de commiter. Ca va regarder s'il y a un espace à la fin de la ligne par exple. Il a va aussi corriger si c'est des choses comme ça. Commande ansible-lint -> c'ets une commande supplémentaire mais dans les playbook de Neutrinet, on l' | ||
- | |||
- | Verify : pas encore utilisé, mais c'est une fonctionnalité qui permet de vérifier qu'un rôle a été bien fait, par ex que le port 80 répond bien, qu'un tel utilisateur a bien été créé. | ||
- | |||
- | Vault : une suite de chiffre incompréhensibles qui utiisent un algorithme de chiffrement AES. C'est basé sur une clé privée placée dans vault.key. Ansible l' | ||
- | |||
- | Une commande, ansible-vault permet de créer un fichier vault, déchiffrer ou rechiffrer un fichier vault. Cela peut aussi être édité en nano ou vim. Ca peut être mis comme une variable. | ||
- | |||
- | Comment faire alors que vault.key est visible sur git pour ne pas que la clé privée soit vue. On utilise un outil qui s' | ||
- | |||
- | On a donc du chiffrement symétrique et assymétrique (avec les clés GPG de chacun). | ||
- | |||
- | ### Création des playbooks Ansible | ||
- | |||
- | On continue le travail effectué lors du précédent Neutriton. Les playbooks se trouvent sur notre dépôt Git : https:// | ||
- | |||
- | ### Création des VMs dans Proxmox | ||
- | |||
- | ### Bascule de la VM web vers HAProxy | ||
- | |||
- | Pour le moment, neutrinet.be (et tous nos services web) arrivent directement sur la VM web. L' | ||
- | |||
- | #### Playbook HAProxy | ||
- | |||
- | Il faut simplifier le playbook haproxy et enlever les healthcheck. Finalement déjà fait, ça ne fait pas les healthcheck si on ne le demande pas. | ||
- | |||
- | Ensuite, s' | ||
- | |||
- | - admin.neutrinet.be -> cube.neutrinet.be | ||
- | - api.neutrinet.be -> vpn.patata.louise.neutri.net: | ||
- | - ~~apps.neutrinet.be~~ | ||
- | - ~~auth.neutrinet.be~~ | ||
- | - beta.neutrinet.be -> neutrinet.be | ||
- | - beta-wiki.neutrinet.be -> wiki.neutrinet.be | ||
- | - chat.neutrinet.be -> localhost: | ||
- | - cube.neutrinet.be -> localhost: | ||
- | - doku.neutrinet.be -> wiki.neutrinet.be | ||
- | - http:// | ||
- | -> localhost: | ||
- | -> neutrinet.be sinon | ||
- | - files.neutrinet.be | ||
- | - ~~forum.neutrinet.be~~ | ||
- | - ~~matomo.neutrinet.be~~ | ||
- | - METTAAAAAAAAaaaAA (dans le meta il y a le meta) | ||
- | - neutrinet.be | ||
- | - si /apps.json alors apps.neutrinet.be | ||
- | - si / | ||
- | - si / | ||
- | - ~~stats.neutrinet.be~~ | ||
- | - user.neutrinet.be | ||
- | - wikijs.neutrinet.be -> VM web-static | ||
- | - wiki.neutrinet.be | ||
- | - wiki-old.neutrinet.be -> mediawiki.neutrinet.be (VM web-static) | ||
- | - www.neutrinet.be -> neutrinet.be | ||
- | |||
- | |||
- | Oups on sait pas quoi en faire : | ||
- | |||
- | - www.hackeragenda.be -> hackeragenda.be | ||
- | - hackeragenda.urlab.be -> hackeragenda.be | ||
- | - hackeragenda.be -> localhost: | ||
- | - www.hackeragenda.fr -> hackeragenda.fr | ||
- | - hackeragenda.fr -> localhost: | ||
- | - vg.hackeragenda.be -> localhost: | ||
- | |||
- | TODO: 404 pour ffdnapi.neutrinet.be | ||
- | |||
- | - Retirer la partie SSL pour Nginx (meta, web et vpn) | ||
- | - Supprimer renew cert | ||
- | - Vérifier les cron jobs | ||
- | |||
- | TODO: Vérifier hackeragenda : | ||
- | ```bash | ||
- | cd / | ||
- | ``` | ||
- | |||
- | - Changer le pfsense pour pointer vers haproxy | ||
- | |||
- | - Vérifier chacun des services web: | ||
- | - admin.neutrinet.be -> ok | ||
- | - cube.neutrinet.be -> ok | ||
- | - api.neutrinet.be -> ouiiii | ||
- | - beta.neutrinet.be -> ok | ||
- | - beta-wiki.neutrinet.be -> ok | ||
- | - chat.neutrinet.be -> ok | ||
- | - doku.neutrinet.be -> ok | ||
- | - ffdnapi.neutrinet.be -> ok | ||
- | - files.neutrinet.be -> ok | ||
- | - meta.neutrinet.be -> ok | ||
- | - neutrinet.be -> ok | ||
- | - www.neutrinet.be -> ok | ||
- | - user.neutrinet.be -> ok | ||
- | - wikijs.neutrinet.be -> ok | ||
- | - realms-wiki.neutrinet.be -> ok | ||
- | - wiki-old.neutrinet.be -> ok | ||
- | - mediawiki.neutrinet.be -> ok | ||
- | |||
- | ## Prochaine réunion | ||
- | |||
- | Prochain Neutriton : 04/07 à 14h | ||
- | |||
- | Sujet : Monitoring | ||
- | |||
- | Lieu : Jitsi et/ou Caldarium ? | ||
- | |||
- | ## Météo de fin | ||
- | |||
- | *Moment informel durant lequel on exprime **en peu de mots** comment, à titre personnel, la réunion a été vécue que ce soit positif ou négatif.* | ||
- | *Si une ou plusieurs **tension est née** durant la réunion, il est peut-être nécessaire d' |