Neutrinet issueshttps://gitlab.domainepublic.net/groups/Neutrinet/-/issues2021-09-20T16:21:36Zhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/76Error message in the title of haproxy error pages2021-09-20T16:21:36ZHgOError message in the title of haproxy error pagesWe can see
```html
<title>ERROR <!--# echo var="status" default="" --></title>
```
in the title of the 503 error page, probably the same error appears on other error pagesWe can see
```html
<title>ERROR <!--# echo var="status" default="" --></title>
```
in the title of the 503 error page, probably the same error appears on other error pagesHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/77Remplacer git-crypt par git-secret2021-09-12T21:24:36ZHgORemplacer git-crypt par git-secretGit-crypt n'est plus mis à jour depuis 2017 et ne permet pas de supprimer facilement une clé GPG :/
Une alternative pourrait être git-secret : https://git-secret.io
J'ai fait un POC sur ma machine, l'outil fonctionne comme suit :
1. On...Git-crypt n'est plus mis à jour depuis 2017 et ne permet pas de supprimer facilement une clé GPG :/
Une alternative pourrait être git-secret : https://git-secret.io
J'ai fait un POC sur ma machine, l'outil fonctionne comme suit :
1. On initialise le repo avec `git-secret init` (comme git-crypt)
2. On ajoute de nouvelle clé GPG en indiquant une des adresses mails de l'identité correspondante: `git secret tell raoul@example.com`. git-secret va alors créer son propre keyring que l'on peut manipuler avec `gpg --homedir .gitsecret/keys ...` en cas de besoin.
3. On indique quels fichiers git-secret doit chiffrer sur le repo git: `git secret add vault.key`. Ce fichier ne sera en réalité jamais commité (= jamais publié sur le repo git), voir le point suivant.
4. On chiffre les fichiers gérés par git-secret avec `git secret hide`. Cela va créer des fichiers chiffrés du style `vault.key.secret`. Ce sont ces fichiers qui seront présents sur le repo git.
Et lorsqu'on clone le repo git, il suffit de faire `git secret reveal` pour déchiffrer les fichiers et retrouver `vault.key`.
Le seul problème que j'ai eu : j'avais plusieurs clés GPG avec la même adresse e-mail, et git-secret ne savait pas laquelle rajouter… et donc échouait lamentablement. J'ai juste fait `gpg -a --export <ma clé gpg> > hgo.asc` puis `gpg --homedir .gitsecret/keys --import hgo.asc` et c'était bon :)
En tout cas, à première vue l'utilisation m'a l'air plus simple qu'avec git-cryptHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/78Configurer un timeout pour cube.neutrinet.be dans HAProxy2021-09-20T16:14:30ZHgOConfigurer un timeout pour cube.neutrinet.be dans HAProxyL'application met environ 1min pour traiter une commande, avec un timeout de 2min on serait à l'aise.
Il faut rajouter ceci dans la config pour le backend:
```
timeout server 2m
```L'application met environ 1min pour traiter une commande, avec un timeout de 2min on serait à l'aise.
Il faut rajouter ceci dans la config pour le backend:
```
timeout server 2m
```HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/79Créer le dossier tmp utilisé par php-fpm2021-09-20T15:56:54ZHgOCréer le dossier tmp utilisé par php-fpmOn a eu un bug avec le dokuwiki : le dossier `/var/www/wiki-neutrinet-be/tmp` n'existait pas, ce qui empêchait de créer / modifier de longues pages. Il faudrait que le playbook crée ce dossier automatiquement avec les bonnes permissions....On a eu un bug avec le dokuwiki : le dossier `/var/www/wiki-neutrinet-be/tmp` n'existait pas, ce qui empêchait de créer / modifier de longues pages. Il faudrait que le playbook crée ce dossier automatiquement avec les bonnes permissions. Voir aussi https://github.com/splitbrain/dokuwiki/issues/3508HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/80systemd-timesyncd incompatible avec paquet ntp2021-09-20T16:57:17ZHgOsystemd-timesyncd incompatible avec paquet ntpor `ntp` est installé sur les machines du style hetzner, etc.
Voir aussi https://github.com/ilri/rmg-ansible-public/issues/46or `ntp` est installé sur les machines du style hetzner, etc.
Voir aussi https://github.com/ilri/rmg-ansible-public/issues/46HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/81Fix valeurs par défaut pour les probes2021-09-20T19:42:59ZHgOFix valeurs par défaut pour les probesHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/82Ignorer le port dans le Host header de HAProxy2021-09-22T15:11:40ZHgOIgnorer le port dans le Host header de HAProxyPrometheus envoie des requêtes avec le header `Host: <host>:<port>`, or haproxy ne trouve pas le backend correspondant. Il va en effet regarder si `<host>:<port>` correspond à `<host>`.
Par exemple:
```
acl probe-01-first-neutri-ne...Prometheus envoie des requêtes avec le header `Host: <host>:<port>`, or haproxy ne trouve pas le backend correspondant. Il va en effet regarder si `<host>:<port>` correspond à `<host>`.
Par exemple:
```
acl probe-01-first-neutri-net-acl hdr(host) probe-01.first.neutri.net
use_backend probe-01-first-neutri-net-backend if probe-01-first-neutri-net-acl
```
Ces deux lignes disent à haproxy d'utiliser le backend `probe-01-first-neutri-net-backend` si le header `Host` correspond à `probe-01.first.neutri.net`. Comme le header `Host` de Prometheus contient `probe-01.first.neutri.net:443`, il ne trouve pas le backend et renvoie une erreur 503.
La solution est donnée ici: https://discourse.haproxy.org/t/strip-port-in-host-header/4414/8
```
acl probe-01-first-neutri-net-acl hdr(host),field(1,:) probe-01.first.neutri.net
use_backend probe-01-first-neutri-net-backend if probe-01-first-neutri-net-acl
```
HAProxy ne va regarder que la partie du header `Host` qui se trouve avant les `:`, et de ce fait le backend va correspondre.HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/83Certificat des prometheus est incorrect2021-09-22T15:28:48ZHgOCertificat des prometheus est incorrectAu lieu d'un *.neutri.net, il faudrait 4 certificats pour les prometheus:
- *.htz.neutri.net
- *.first.neutri.net
- *.ovh.neutri.net
- *.patata.louise.neutri.net
parce que le wildcard ne fonctionne que sur le sous-domaine direct.
Par ai...Au lieu d'un *.neutri.net, il faudrait 4 certificats pour les prometheus:
- *.htz.neutri.net
- *.first.neutri.net
- *.ovh.neutri.net
- *.patata.louise.neutri.net
parce que le wildcard ne fonctionne que sur le sous-domaine direct.
Par ailleurs, LE nous limite à 5 certificats identiques par semaine, donc cela permettrait d'éviter d'atteindre cette limite.HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/84Playbook Hedgedoc2021-10-03T08:40:31ZHgOPlaybook Hedgedochttps://docs.hedgedoc.org/setup/manual-setup/
- [x] Installer NodeJS
- [x] Installer Yarn
- [x] Créer l'utilisateur
- [ ] Configurer PostgreSQL
- [x] Standalone
- [ ] Cluster
- [x] Télécharger et installer Hedgedoc
- [x] Configurer ...https://docs.hedgedoc.org/setup/manual-setup/
- [x] Installer NodeJS
- [x] Installer Yarn
- [x] Créer l'utilisateur
- [ ] Configurer PostgreSQL
- [x] Standalone
- [ ] Cluster
- [x] Télécharger et installer Hedgedoc
- [x] Configurer Hedgedoc
- [x] Configurer systemd
- [x] Configurer S3
- [ ] Configurer telegraf (#85)HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/85Telegraf config pour Hedgedoc2021-10-05T17:11:45ZHgOTelegraf config pour HedgedocHedgedoc fournit des metrics prometheus via `/metrics`
- [x] Configurer Telegraf pour récupérer ces metrics
- [ ] Protéger le endpoint `/metrics` pour empêcher l'accès depuis l'extérieur (#93)Hedgedoc fournit des metrics prometheus via `/metrics`
- [x] Configurer Telegraf pour récupérer ces metrics
- [ ] Protéger le endpoint `/metrics` pour empêcher l'accès depuis l'extérieur (#93)HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/86Playbook Backoffice2021-10-15T16:34:46ZHgOPlaybook Backoffice- [x] Créer l'utilisateur
- [x] Configurer Postgres
- [x] Standalone
- [x] Cluster
- [x] Configurer Caddy
- [x] Installer les dépendances pour backoffice- [x] Créer l'utilisateur
- [x] Configurer Postgres
- [x] Standalone
- [x] Cluster
- [x] Configurer Caddy
- [x] Installer les dépendances pour backofficeHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/87Remplacer variables dict par variables préfixées pour le rôle haproxy2021-09-28T20:10:29ZHgORemplacer variables dict par variables préfixées pour le rôle haproxyAu lieu de
```yaml
letsencrypt:
staging: true
domains_gandi:
- neutrinet.be
...
```
on aurait:
```yaml
letsencrypt_staging: true
letsencrypt_domains_gandi:
- neutrinet.be
```
Ce qui permet de simplifier le code à certains e...Au lieu de
```yaml
letsencrypt:
staging: true
domains_gandi:
- neutrinet.be
...
```
on aurait:
```yaml
letsencrypt_staging: true
letsencrypt_domains_gandi:
- neutrinet.be
```
Ce qui permet de simplifier le code à certains endroits:
- plus besoin de check si la variable `staging` est définie dans `letsencrypt`
- plus besoin de redéfinir tout le dict quand on veut juste mettre staging à falseHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/88Supprimer config ACME pour Caddy2021-09-27T12:23:51ZHgOSupprimer config ACME pour CaddyC'est HAProxy qui gère les certificats, Caddy ne fait que du http.C'est HAProxy qui gère les certificats, Caddy ne fait que du http.HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/backoffice/-/issues/17Change mail address for admin receipt of the order2021-09-27T19:43:42ZHgOChange mail address for admin receipt of the orderhttps://gitlab.domainepublic.net/Neutrinet/backoffice/-/issues/18Provide ffdnapi /isp.json with correct content-type2021-09-27T19:46:26ZHgOProvide ffdnapi /isp.json with correct content-typeHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/backoffice/-/issues/19Update requirements.txt2021-09-27T20:45:04ZHgOUpdate requirements.txtThe file on the server diverged from the one on this repo…The file on the server diverged from the one on this repo…HgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/89Nettoyer le rôle nextcloud2021-10-08T22:21:47ZHgONettoyer le rôle nextcloud- [x] Pas nécessaire d'installer / mettre à jour nextcloud
- [x] Utiliser le rôle `postgresql_standalone` pour molecule
- [x] Redis pas nécessaire pour le moment- [x] Pas nécessaire d'installer / mettre à jour nextcloud
- [x] Utiliser le rôle `postgresql_standalone` pour molecule
- [x] Redis pas nécessaire pour le momentHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/90Installer keepalived sur les haproxy2021-10-12T20:35:39ZHgOInstaller keepalived sur les haproxyHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/91Créer la base de donnée hedgedoc sur le cluster PostgreSQL2021-10-08T21:00:11ZHgOCréer la base de donnée hedgedoc sur le cluster PostgreSQLComme discuté dans !100 :
- [x] Récupérer le serveur postgres qui est primary via une requête sur l'API de patroni
- [x] Créer l'utilisateur et la base de données sur le postgres primaryComme discuté dans !100 :
- [x] Récupérer le serveur postgres qui est primary via une requête sur l'API de patroni
- [x] Créer l'utilisateur et la base de données sur le postgres primaryHgOHgOhttps://gitlab.domainepublic.net/Neutrinet/infra-ansible/-/issues/93Empêcher l'accès aux metrics de Hedgedoc depuis l'extérieur2022-04-09T10:52:30ZHgOEmpêcher l'accès aux metrics de Hedgedoc depuis l'extérieurHgOHgO