reorg operations

This commit is contained in:
Quentin 2023-03-01 21:18:40 +01:00
parent f3b7e90693
commit 58951873b2
Signed by: quentin
GPG key ID: E9602264D639FF68
41 changed files with 334 additions and 235 deletions

View file

@ -33,7 +33,7 @@ rôles identifiés : production, développement, expérimentation, etc.
| Drone (runner) | développement | Bespin | Worker pour l'intégration continue | | Drone (runner) | développement | Bespin | Worker pour l'intégration continue |
| SSH | sauvegarde | Mercure | Target de backups (Consul) | | SSH | sauvegarde | Mercure | Target de backups (Consul) |
| [Minio](https://s3.deuxfleurs.shirokumo.net) | sauvegarde | Mercure | Target de backups restic | | [Minio](https://s3.deuxfleurs.shirokumo.net) | sauvegarde | Mercure | Target de backups restic |
| [cron rclone](@/operations/sauvegardes/rclone.md) | sauvegarde | Jupiter | Backup régulier du contenu de Garage | | [cron rclone](@/operations/rclone.md) | sauvegarde | Jupiter | Backup régulier du contenu de Garage |
| [staging.deuxfleurs.org](https://staging.deuxfleurs.org) | expérimentation | Neptune, Jupiter | Site statique de test | | [staging.deuxfleurs.org](https://staging.deuxfleurs.org) | expérimentation | Neptune, Jupiter | Site statique de test |
| Garage ([S3](https://garage.staging.deuxfleurs.org), [K2V](https://k2v.staging.deuxfleurs.org)) | expérimentation | Neptune, Jupiter | Beta-test serveur de stockage de données | | Garage ([S3](https://garage.staging.deuxfleurs.org), [K2V](https://k2v.staging.deuxfleurs.org)) | expérimentation | Neptune, Jupiter | Beta-test serveur de stockage de données |
| [Guichet](https://guichet.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Beta-test interface de gestion des utilisateurs | | [Guichet](https://guichet.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Beta-test interface de gestion des utilisateurs |

View file

@ -1,10 +1,12 @@
+++ ---
title = "Janvier 2020" title: "Janvier 2020"
description = "Janvier 2020: changement imprévu d'adresses IP" description: "Janvier 2020: changement imprévu d'adresses IP"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 10 weight: 10
+++ extra:
parent: 'operations/pannes.md'
---
Le 20 janvier free a changé mon IP, un peu comme partout en France. Le 20 janvier free a changé mon IP, un peu comme partout en France.
Ça concerne l'IPv4 et le préfixe IPv6. Ça concerne l'IPv4 et le préfixe IPv6.

View file

@ -1,10 +1,12 @@
+++ ---
title = "Juillet 2021" title: "Juillet 2021"
description = "Juillet 2021: la BDD Synapse remplit nos disques" description: "Juillet 2021: la BDD Synapse remplit nos disques"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 20 weight: 20
+++ extra:
parent: 'operations/pannes.md'
---
# La BDD synapse rempli nos disques # La BDD synapse rempli nos disques

View file

@ -1,10 +1,12 @@
+++ ---
title = "Janvier 2022" title: "Janvier 2022"
description = "Janvier 2022: Corruptions GlusterFS" description: "Janvier 2022: Corruptions GlusterFS"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 30 weight: 30
+++ extra:
parent: 'operations/pannes.md'
---
# Corruption GlusterFS # Corruption GlusterFS

View file

@ -0,0 +1,28 @@
---
title: "Février 2023"
description: "Février 2023: perte de 2 zones"
date: 2022-12-22
dateCreated: 2022-12-22
weight: 30
extra:
parent: 'operations/pannes.md'
---
En février 2023, garage a été inaccessible car io à Rennes
était cassé depuis une semaine sans qu'on s'en rende compte,
et qu'ensuite neptune a subi une coupure fibre.
On a pu remonter garage assez rapidement car Trinity
a pu reconfigurer io dès que le problème a été identifié.
La discussion a été rendue plus compliqué que prévu
car on a eu des problèmes de déchiffrement des messages sur matrix.
Mais la coupure fibre de neptune nous a fait nous rendre
compte qu'on ne pouvait pas tout reschedule à Lyon.
Et à Bruxelles, impossible de schedule car la conf
routeur ne permet pas (encore) de prendre du trafic entrant.
Voici les changements qu'on a décidé de mettre en oeuvre à la suite de ce problème :
- Alerting sur les serveurs (pas encore fait)
- Conversations en clair sur deuxfleurs::infra
- Accepter du trafic entrant à BRX (pas encore fait)

View file

@ -1,10 +1,12 @@
+++ ---
title = "Installer NixOS en SSH" title: "Installer NixOS en SSH"
description = "Installer NixOS en SSH sans écran ni clavier" description: "Installer NixOS en SSH sans écran ni clavier"
date = 2022-08-24 date: 2022-08-24
dateCreated = 2021-08-24 dateCreated: 2021-08-24
weight = 12 weight: 12
+++ extra:
parent: 'operations/noeud.md'
---
Quick tip avant d'oublier pour installer une de nos machines ThinkCentre via SSH sous NixOS ; c'est la seule solution quand on a pas d'écran ni de clavier sous la main. Quick tip avant d'oublier pour installer une de nos machines ThinkCentre via SSH sous NixOS ; c'est la seule solution quand on a pas d'écran ni de clavier sous la main.
Pré-requis : une clé USB, un ordi sous NixOS. Pré-requis : une clé USB, un ordi sous NixOS.
@ -48,4 +50,4 @@ Ensuite on se connecte dessus :
``` ```
ssh root@192.168.1.X ssh root@192.168.1.X
``` ```

View file

@ -3,6 +3,8 @@ title: "Opérations"
description: "Opérations" description: "Opérations"
weight: 100 weight: 100
sort_by: "weight" sort_by: "weight"
extra:
parent: 'operations/_index.md'
--- ---
Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos opérateur·ices dans la réalisation de leurs tâches. Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos opérateur·ices dans la réalisation de leurs tâches.

View file

@ -1,8 +1,10 @@
+++ ---
title = "Accès" title: "Accès"
description = "Accès" description: "Accès"
sort_by = "weight" sort_by: "weight"
weight = 5 weight: 5
+++ extra:
parent: 'operations/_index.md'
---
Ici l'on traite de comment gagner accès au cluster de Deuxfleurs, quand on a reçu la _terrible responsabilité_ de sysadmin. Vous êtes prêt⋅e ? Alors entrez dans [le dépôt des secrets](./pass/). Ici l'on traite de comment gagner accès au cluster de Deuxfleurs, quand on a reçu la _terrible responsabilité_ de sysadmin. Vous êtes prêt⋅e ? Alors entrez dans [le dépôt des secrets](./pass/).

View file

@ -1,9 +0,0 @@
+++
title = "SSH"
description = "SSH"
weight = 100
+++
Voir si on documente comment gérer SSH depuis GPG
# Ajout de la clé au cluster

View file

@ -0,0 +1,8 @@
---
title: "Opérations courantes"
description: "Opérations courantes"
weight: 35
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---

View file

@ -1,6 +0,0 @@
+++
title = "Opérations courantes"
description = "Opérations courantes"
weight = 15
sort_by = "weight"
+++

View file

@ -1,10 +1,12 @@
+++ ---
title = "Créer une BDD" title: "Créer une BDD"
description = "Création d'une base de données pour une nouvelle application" description: "Création d'une base de données pour une nouvelle application"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/deployer.md'
---
## 1. Create a LDAP user and assign a password for your service ## 1. Create a LDAP user and assign a password for your service

View file

@ -0,0 +1,9 @@
---
title: "Débogage"
description: "Débogage"
weight: 60
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---

View file

@ -1,7 +0,0 @@
+++
title = "Débogage"
description = "Débogage"
weight = 60
sort_by = "weight"
+++

View file

@ -1,7 +0,0 @@
+++
title = "Déploiement"
description = "Déploiement"
weight = 10
sort_by = "weight"
+++

View file

@ -1,10 +1,12 @@
+++ ---
title = "Applications" title: "Déployer du logiciel"
description = "Déploiement d'une application" description: "Déploiement du logiciel"
sort_by = "weight" sort_by: "weight"
date = 2022-12-22 date: 2022-12-22
weight = 30 weight: 30
+++ extra:
parent: 'operations/_index.md'
---
# Empaqueter # Empaqueter

View file

@ -1,8 +1,10 @@
+++ ---
title = "Emails" title: "Emails"
description = "Emails" description: "Emails"
weight = 10 weight: 10
+++ extra:
parent: 'operations/courantes.md'
---
# Support d'un nom de domaine personnalisé # Support d'un nom de domaine personnalisé

View file

@ -1,10 +1,12 @@
+++ ---
title = "Guide de création d'un nœud" title: "Guide de création d'un nœud"
description = "Guide de création d'un nœud" description: "Guide de création d'un nœud"
date = 2022-08-23 date: 2022-08-23
dateCreated = 2022-08-23 dateCreated: 2022-08-23
weight = 11 weight: 11
+++ extra:
parent: 'operations/noeud.md'
---
# Guide d'initialisation de nœud Deuxfleurs # Guide d'initialisation de nœud Deuxfleurs
Ce guide explique comment initialiser un nœud pour l'infrastructure de Deuxfleurs. Nous partons de zéro, c'est-à-dire avec une machine que nous venons de récupérer, avec une mémoire vide, et que nous venons de brancher. À titre d'exemple, nous illustrerons de temps en temps les opérations avec une de nos machines (un Thinkcentre de Lenovo). Ce guide explique comment initialiser un nœud pour l'infrastructure de Deuxfleurs. Nous partons de zéro, c'est-à-dire avec une machine que nous venons de récupérer, avec une mémoire vide, et que nous venons de brancher. À titre d'exemple, nous illustrerons de temps en temps les opérations avec une de nos machines (un Thinkcentre de Lenovo).

View file

@ -1,10 +1,12 @@
+++ ---
title = "Jitsi" title: "Jitsi"
description = "" description: ""
date = 2021-11-09T12:53:23.811Z date: 2021-11-09T12:53:23.811Z
dateCreated = 2021-11-09T12:46:50.731Z dateCreated: 2021-11-09T12:46:50.731Z
weight = 20 weight: 20
+++ extra:
parent: 'operations/debogage.md'
---
## 2020-04-02 Campagne de debug Jitsi ## 2020-04-02 Campagne de debug Jitsi

View file

@ -0,0 +1,12 @@
---
title: "Maintien en condition"
description: "Maintien en condition"
sort_by: "weight"
weight: 40
extra:
parent: 'operations/_index.md'
---
# En condition opérationnele
# En condition de sécurité

View file

@ -1,10 +0,0 @@
+++
title = "Maintien en condition"
description = "Maintien en condition"
sort_by = "weight"
weight = 20
+++
# En condition opérationnele
# En condition de sécurité

View file

@ -1,10 +1,12 @@
+++ ---
title = "MàJ Matrix" title: "MàJ Matrix"
description = "Mise à jour de Matrix (Synapse/Element)" description: "Mise à jour de Matrix (Synapse/Element)"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/maintien_en_condition.md'
---
How to update Matrix? How to update Matrix?
===================== =====================

View file

@ -1,10 +1,12 @@
+++ ---
title = "Grappe" title: "nixcfg"
description = "Grappe" description: "Le dépôt nixcfg"
weight = 20 weight: 20
date = 2022-12-22 date: 2022-12-22
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/noeud.md'
---
# Installation # Installation

View file

@ -1,10 +1,12 @@
+++ ---
title = "Noeud" title: "Installer un noeud"
description = "Déploiement d'un noeud" description: "Déploiement d'un noeud"
date = 2022-08-23 date: 2022-08-23
dateCreated = 2021-08-23 dateCreated: 2021-08-23
sort_by = "weight" weight: 20
+++ extra:
parent: 'operations/_index.md'
---
# Déployer un nœud au sein de l'infrastructure Deuxfleurs # Déployer un nœud au sein de l'infrastructure Deuxfleurs
Déployer un nœud au sein de l'infrastructure Deuxfleurs demande un certaine préparation et représente un processus particulier. Déployer un nœud au sein de l'infrastructure Deuxfleurs demande un certaine préparation et représente un processus particulier.

View file

@ -0,0 +1,15 @@
---
title: "Pannes"
description: "Pannes"
weight: 70
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---
Nous aimerions mettre en place une culture du postmortem.
C'est très important pour s'améliorer et apprendre de ses erreurs,
pour prendre le temps de se questionner sur ce qui a disfonctionné,
et réfléchir à comment changer en profondeur nos pratiques.
Et puis, plus simplement, si le problème venait à arriver
de nouveau, nous aurions alors déjà documenté comment le résoudre !

View file

@ -1,6 +0,0 @@
+++
title = "Pannes"
description = "Pannes"
weight = 70
sort_by = "weight"
+++

View file

@ -1,8 +1,10 @@
+++ ---
title = "Le dépôt des secrets" title: "Le dépôt des secrets"
description = "Le dépôt des secrets" description: "Le dépôt des secrets"
weight = 10 weight: 10
+++ extra:
parent: 'operations/acces.md'
---
We use [pass, 'the standard unix password manager'](https://www.passwordstore.org/), to manage our key store securely at Deuxfleurs. Getting access to our production involves publishing one's GPG key (through Gitea) and importing/verifying/signing every other sysadmin's key, before setting up `pass`. Lastly, you will be able to set your shell password on the desired cluster (`prod` or `staging`, at the time of writing). We use [pass, 'the standard unix password manager'](https://www.passwordstore.org/), to manage our key store securely at Deuxfleurs. Getting access to our production involves publishing one's GPG key (through Gitea) and importing/verifying/signing every other sysadmin's key, before setting up `pass`. Lastly, you will be able to set your shell password on the desired cluster (`prod` or `staging`, at the time of writing).

View file

@ -1,10 +1,12 @@
+++ ---
title = "Petits incidents" title: "Petits incidents"
description = "Petits incidents" description: "Petits incidents"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 1000 weight: 1000
+++ extra:
parent: 'operations/pannes.md'
---
- **2020** Publii efface le disque dur d'un de nos membres. Il a changé le dossier de sortie vers /home qui a été effacé - **2020** Publii efface le disque dur d'un de nos membres. Il a changé le dossier de sortie vers /home qui a été effacé

View file

@ -1,8 +1,10 @@
+++ ---
title = "pg_basebackup" title: "pg_basebackup"
description = "pg_basebackup" description: "pg_basebackup"
weight=15 weight: 15
+++ extra:
parent: 'operations/sauvegardes.md'
---
## Disclaimer ## Disclaimer

View file

@ -1,10 +1,12 @@
+++ ---
title = "Plume" title: "Plume"
description = "Plume" description: "Plume"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/debogage.md'
---
## Bug and debug ## Bug and debug

View file

@ -0,0 +1,27 @@
---
title: "Prestataires"
description: "Prestataires"
weight: 80
extra:
parent: 'operations/_index.md'
---
# DNS
Gandi
# Pont IPv6
FDN
# Paquets
Docker Hub
# FAI
Free, SFR, et autres
# Électricité
EDF

View file

@ -1,25 +0,0 @@
+++
title = "Prestataires"
description = "Prestataires"
weight = 80
+++
# DNS
Gandi
# Pont IPv6
FDN
# Paquets
Docker Hub
# FAI
Free, SFR, et autres
# Électricité
EDF

View file

@ -1,10 +1,12 @@
+++ ---
title = "Prérequis pour un nœud" title: "Prérequis pour un nœud"
description = "Prérequis pour un nœud" description: "Prérequis pour un nœud"
date = 2022-01-09T13:29:29.710Z date: 2022-01-09T13:29:29.710Z
dateCreated = 2021-12-28T14:33:59.088Z dateCreated: 2021-12-28T14:33:59.088Z
weight = 10 weight: 10
+++ extra:
parent: 'operations/noeud.md'
---
Dans ce guide, nous allons expliquer comment installer une grappe de serveurs, en vue d'un hébergement pour Deuxfleurs. Dans ce guide, nous allons expliquer comment installer une grappe de serveurs, en vue d'un hébergement pour Deuxfleurs.
@ -36,4 +38,4 @@ On peut distinguer deux types de sites :
On aura affaire à sa box (NAT, pare-feu...), au manque de garanties concernant notre adressabilité (IPv4 dynamique, IPv6 ? ...), ce qui va nous mener à devoir faire du routage. Le nœud du problème, c'est que chaque ordinateur de la grappe n'aura pas pignon sur rue (pas d'adresse IP publique et fixe par machine). On aura affaire à sa box (NAT, pare-feu...), au manque de garanties concernant notre adressabilité (IPv4 dynamique, IPv6 ? ...), ce qui va nous mener à devoir faire du routage. Le nœud du problème, c'est que chaque ordinateur de la grappe n'aura pas pignon sur rue (pas d'adresse IP publique et fixe par machine).
Néanmoins, **on est chez nous !** Votre disque dur - qui contient les données personnelles de vos usagers chéris - est sous vos yeux, bien au chaud. Le seul curieux qui voit passer votre trafic réseau est votre FAI : *rien de nouveau sous le soleil*. Néanmoins, **on est chez nous !** Votre disque dur - qui contient les données personnelles de vos usagers chéris - est sous vos yeux, bien au chaud. Le seul curieux qui voit passer votre trafic réseau est votre FAI : *rien de nouveau sous le soleil*.

View file

@ -1,9 +1,11 @@
+++ ---
title = "rclone" title: "rclone"
description = "rclone" description: "rclone"
weight = 20 weight: 20
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/sauvegardes.md'
---
Script de backup brut, on planifie une approche plus élégante à l'avenir : Script de backup brut, on planifie une approche plus élégante à l'avenir :

View file

@ -1,8 +1,10 @@
+++ ---
title = "restic" title: "restic"
description = "restic" description: "restic"
weight = 10 weight: 10
+++ extra:
parent: 'operations/sauvegardes.md'
---
Add the admin account as `deuxfleurs` to your `~/.mc/config` file Add the admin account as `deuxfleurs` to your `~/.mc/config` file

View file

@ -1,9 +1,11 @@
+++ ---
title = "Sauvegardes" title: "Sauvegardes"
description = "Sauvegardes" description: "Sauvegardes"
weight = 30 weight: 50
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/_index.md'
---
# Données sauvegardées # Données sauvegardées

11
content/operations/ssh.md Normal file
View file

@ -0,0 +1,11 @@
---
title: "SSH"
description: "SSH"
weight: 100
extra:
parent: 'operations/acces.md'
---
Voir si on documente comment gérer SSH depuis GPG
# Ajout de la clé au cluster

View file

@ -1,10 +1,12 @@
+++ ---
title = "Stolon" title: "Stolon"
description = "Comment déployer Stolon" description: "Comment déployer Stolon"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/deployer.md'
---
Spawn container: Spawn container:

View file

@ -0,0 +1,23 @@
---
title: "Supervision"
description: "Supervision"
weight: 58
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---
# Métriques
Grafana est accessible à l'adresse suivante : https://grafana.deuxfleurs.fr
Vous pouvez obtenir le mot de passe admin en allant le chercher dans consul KV
# Journaux
Les journaux ne sont pas centralisés aujourd'hui.
Vous pouvez les consulter avec `docker logs`, `nomad` et `journalctl`.
# Alertes
Nous n'avons pas de système d'alerte aujourd'hui.

View file

@ -1,12 +0,0 @@
+++
title = "Supervision"
description = "Supervision"
weight = 40
sort_by = "weight"
+++
# Métriques
# Journaux
# Alertes

View file

@ -1,9 +1,11 @@
+++ ---
title = "Vue d'ensemble" title: "Vue d'ensemble"
description = "Vue d'ensemble" description: "Vue d'ensemble"
sort_by = "weight" sort_by: "weight"
weight = 2 weight: 0
+++ extra:
parent: 'operations/_index.md'
---
*Ajouter un schéma* *Ajouter un schéma*