From 8ccc21468bfcf03a23b73dfd36a79aa74f7d5e76 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 22 Dec 2022 19:08:04 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20la=20section=20infr?= =?UTF-8?q?astructures=20(machines,=20services)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/infrastructures/machines/_index.md | 13 +- .../infrastructures/machines/developpement.md | 32 ++- content/infrastructures/machines/obsolete.md | 256 ------------------ .../infrastructures/machines/production.md | 61 +++-- content/infrastructures/machines/support.md | 5 +- content/infrastructures/machines/xp.md | 32 +-- content/infrastructures/services.md | 65 +++-- static/img/serv_bespin.jpg | Bin 0 -> 88817 bytes 8 files changed, 110 insertions(+), 354 deletions(-) delete mode 100644 content/infrastructures/machines/obsolete.md create mode 100644 static/img/serv_bespin.jpg diff --git a/content/infrastructures/machines/_index.md b/content/infrastructures/machines/_index.md index 7521b66..84fc012 100644 --- a/content/infrastructures/machines/_index.md +++ b/content/infrastructures/machines/_index.md @@ -33,20 +33,19 @@ Il n'est pas nécessaire d'être opérateur·ice pour gérer une de ces machines En fonction des propriétés voulues, nous pouvons être amenés à répartir les serveurs d'un rôle spécifique entre plusieurs lieux géographiques, que nous appelons des zones. -Nous avons 2 zones pour la production : - - Rennes 1 (Atuin) +Nous avons 3 zones pour la production : - Orsay (Neptune) + - Lyon (Orion) + - Bruxelles (Bespin) Nous avons 2 zones pour le support : - Suresnes (Mercure) - - Rennes 2 (Jupiter) + - Rennes (Jupiter) Nous avons 1 zones pour le développement : - - Roubaix + - Bruxelles (Bespin) Nous avons plusieurs zones pour l'expérimentation : - Orsay (Neptune) - - Lyon (Aurora) - - Rennes 3 - - Bruxelles (Bespin) + - Rennes (Jupiter) diff --git a/content/infrastructures/machines/developpement.md b/content/infrastructures/machines/developpement.md index d4cb10c..2d5193f 100644 --- a/content/infrastructures/machines/developpement.md +++ b/content/infrastructures/machines/developpement.md @@ -8,23 +8,25 @@ Les serveurs de développement hébergent les outils qui nous permettent de trav les configurations, les tickets, ou la compilation. Ils ne contiennent pas de données personnelles mais peuvent être utilisés pour des attaques de chaine d'approvisionnement (*supply chain attack*). -**Feuille de route :** À court terme, nous voulons trouver une alternative auto-hébergée à notre machine en datacenter. À terme, ces services -pourraient être intégrés dans la production et possiblement offertes comme service. - -# Roubaix - -![Photo du Datacenter OVH à Roubaix](/img/serv_ovh.jpg) - -Ce serveur est le seul que nous ayons en datacenter. Il gère la forge Git. - -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| Kimsufi | Serveur | x1 | Intel i3-2130 CPU @ 3.40GHz (4 cœurs)
8Go RAM, 2TB HDD | -| | | | `ssh hammerhead.machine.deuxfleurs.fr` | - -# Bruxelles (bespin) +# Bruxelles (Bespin) | Désignation | Rôle | Quantité | Détails | | -- | -- | -- | -- | +| Forge Gitea | VM | x1 | ? | | Runner Drone | VM | x1 | 16 cœurs, 8Go RAM, 25Go + 25Go + 50Go| | | | | `ssh 2a02:1811:3612:b300:e99c:c591:a17f:210` | + +# Autres runners Drone + +## Rennes (Jupiter) + +(information à rajouter) + +## Lyon (Aurora) + +![Photo d'illustration du PC portable utilisé](/img/serv_easynotebg46.jpg) + +| Désignation | Rôle | Quantité | Détails | +| -- | -- | -- | -- | +| Packard Bell EasyNote BG46 (2007) | Serveur | x1 | Intel T5750 @ 2.00Ghz (2 cœurs), 3Go RAM, HDD 500Go | +| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | diff --git a/content/infrastructures/machines/obsolete.md b/content/infrastructures/machines/obsolete.md deleted file mode 100644 index a72e84f..0000000 --- a/content/infrastructures/machines/obsolete.md +++ /dev/null @@ -1,256 +0,0 @@ -+++ -title = "(Obsolète)" -description = "Documentation obsolète" -weight = 99 -+++ - -**ATTENTION** - Cette page est obsolète, de nombreuses informations ici ne sont plus d'actualité. -Merci donc de ne pas en tenir compte, elle est conservée temporairement le temps d'assurer qu'aucune -information pertinente ne soit perdue dans le processus. - -Un site est constitué de l'ensemble du matériel à un lieu donné géré par une (ou plusieurs) personne donnée. -Le lieu géographique peut évoluer dans le temps, comme par exemple lors d'un déménagement. -Le nommage du site est donc arbitraire, nous recommandons le choix d'un corps céleste, tout aussi étrange soit-il. -Ce découpage en sites est important pour certaines de nos applications. - -![inframap.jpg](/img/infra_map.jpg) - -# Production - -## 🐢 atuin.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Alex et Quentin | -| Hébergement | 🏡 Erwan | -| Région | Bretagne | -| FAI | Free - 1Gbps, ✅ IPv4 publique, ✅ IPv4 fixe, ✅ IPv6 publique, ✅ IPv6 fixe, ✅ SMTP, ❌ Reverse DNS | - -Liste du matériel : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| Lenovo Thinkcentre M82 | Serveur | x3 | Intel G3420 @ 3.20GHz (2 cœurs), 8Go RAM, 128GB SSD, 1TB HDD | ![photo serveur](/img/infra/lenovo.jpg =x100) -| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique |![photo freebox](/img/infra/fbx.jpg =x70) - -Services hébergés : - -| Service | Description | -| -- | -- | -| [deuxfleurs.fr](https://deuxfleurs.fr) | Site principal de Deuxfleurs | -| [garagehq.deuxfleurs.fr](https://garagehq.deuxfleurs.fr) | Site web de Garage | -| [Synapse](https://im.deuxfleurs.fr) | Serveur Matrix | -| [Element](https://riot.deuxfleurs.fr) | Client web pour Matrix | -| [Jitsi](https://jitsi.deuxfleurs.fr) | Service de visioconférence | -| [SoGo](https://sogo.deuxfleurs.fr) | Client mail SoGo | -| [Alps](https://alps.deuxfleurs.fr) | Client mail Alps (plus léger) | -| [Plume](https://plume.deuxfleurs.fr) | Blog collaboratif et fédéré | -| [Platôo](https://platoo.deuxfleurs.fr) | Jeux de plateau en ligne | -| [Drone](https://drone.deuxfleurs.fr) | Serveur d'intégration continue | -| [Garage](https://garage.deuxfleurs.fr) | Serveur de stockage de données | - -## ♆ neptune.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Alex | -| Hébergement | 🏡 Alex | -| Région | Île-de-France | -| FAI | Free - ✅ IPv4 publique, ✅ IPv4 fixe, ✅ IPv6 fixe, ✅ IPv6 publique, (✅) SMTP, ❌ Reverse DNS | - -Liste du matériel ([photo](/img/infra/neptune.jpg)) : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| ThinkCentre M73 Tiny | Serveur | x1 | 4 cœurs, 8Go RAM, SSD 120Go | ![m73tiny.jpg](/infra/m73tiny.jpg =x70) | -| ThinkCentre M73 Tiny | Serveur | x2 | 4 cœurs, 8Go RAM, SSD 240Go | ![m73tiny.jpg](/infra/m73tiny.jpg =x70) | -| ThinkCentre M73 Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, HDD 500Go | ![m73tiny.jpg](/infra/m73tiny.jpg =x70) | -| D-Link DGS-108gl | Switch | x1 | 8 ports gigabit ethernet | N/A | -| Freebox Mini 4k | Routeur | x1 | N/A | ![photo freebox](/img/infra/fbx.jpg) | - -Services hébergés : - -| Service | Description | -| -- | -- | -| Garage | Noeuds du cluster de production | -| Wireguard, Nomad, Consul | Cluster multi-site de test | -| Garage | Noeuds du cluster de test (staging) | -| Drone (runner) | Worker pour l'intégration continue | - -# Surveillance & Sauvegardes - -## ✉️ mercure.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Quentin et Maximilien | -| Hébergement | 🏡 Maximilien | -| Région | Île-de-France | -| FAI | Free 10Gbps/700Mbps - ✅ IPv4 publique, ✅ IPv4 fixe, ✅ IPv6 fixe, ✅ IPv6 publique, ❌ SMTP, ❌ Reverse DNS | - -Liste du matériel : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| [Microtik RB4011iGS+RM](https://mikrotik.com/product/rb4011igs_rm) | Routeur | x1 | Routeur et pare-feu, ports 1x10G SFP+ et 10x1G | ![mikrotik.jpg](/infra/mikrotik.jpg =x100) | -| Serveur Dell R710 | Hyperviseur | x3 | 2 socket, Xeon E5520 (4c8t @ 2.26Ghz), 80Go RAM, 500GB NVMe, 1TB RAID matériel, réseau LACP 2x1G | ![dellr710.jpg](/infra/dellr710.jpg =x70) | -| metro.mercure.site | LXC | x1 | 2 CPU, 2Go RAM, 25 GB NVMe | N/A | -| bkp.mercure.site | VM | x1 | 4 vCPU, 8Go RAM, 40 GB Block Storage | N/A | - -Services hébergés : - -| Service | Description | -| -- | -- | -| [Grafana](https://grafana.home.mricher.fr) | Interface de monitoring de l'infrastructure | -| `ssh bkp.mercure.site` | Target de backups (Consul) | -| s3.deuxfleurs.shirokumo.net | Target de backups restic | - -# Développements & Tests - -## ☁️ bespin.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Quentin et Maximilien | -| Hébergement | 🏡 Maximilien | -| Région | 🇧🇪 Belgique | -| FAI | Telenet 1Gbps/40Mbps - ✅ IPv4 publique, (✅) IPv4 fixe, (✅) IPv6 fixe, ✅ IPv6 publique, ❌ SMTP, ❌ Reverse DNS | - -Liste du matériel : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| Tour recyclé en NAS | Hyperviseur Proxmox | x1 | i5-3570k (4c@4.3Ghz), 16Go RAM, 500Go SSD RAID1, HDD RAID6 14Tio | ![p280_front.jpg](/infra/p280_front.jpg =x70) | -| ThinkCentre M73 Tiny | Serveur | x1 | `df-pw5` G1840T 2c@2.50GHz, 8Go RAM, HDD 500Go | ![m73tiny.jpg](/infra/m73tiny.jpg =x70) | -| ThinkCentre M710q | Serveur | x3 | `df-ymf`, `df-ymk`, `df-ykl` G3930T 2c@2.70GHz, 8Go RAM, HDD 500Go, SSD NVMe 500Go | ![m710q.jpg](/infra/m710q_front_and_back.jpg =x90) | - - -| Service | Description | -| -- | -- | -| Drone (runner) | Worker pour l'intégration continue | - -## ♃ jupiter.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Jill, Alex et Quentin | -| Hébergement | 🏡 Jill | -| Région | Bretagne | -| FAI | Free - (✅) IPv4 publique, (✅) IPv4 fixe, ✅ IPv6 fixe, ✅ IPv6 publique, (✅) SMTP, ❌ Reverse DNS | - -Liste du matériel : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| Tour un peu vieille | Serveur | x1 | 4 cœurs, 4Go RAM, SSD 250Go + HDD 2To | [ici](/img/infra/io.jpg) | -| Freebox | Routeur | x1 | N/A | N/A | - -Services hébergés : - -| Service | Description | -| -- | -- | -| Garage | Serveur de stockage de données | - -## 🤖 aurora.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Quentin | -| Hébergement | 🏡 Quentin | -| Région | Rhône-Alpes | -| FAI | Free - 1Gbps, ❌ IPv4 publique, ✅ IPv4 fixe, ✅ IPv6 publique, ✅ IPv6 fixe, ✅ SMTP, ❌ Reverse DNS | - - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| Packard Bell EasyNote BG46 (2007) | Serveur | x1 | Intel T5750 @ 2.00Ghz (2 cœurs), 3Go RAM, HDD 500Go | ![easynotebg46.jpg](/infra/easynotebg46.jpg =x150) | -| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique |![photo freebox](/img/infra/fbx.jpg =x70) - -Services hébergés : - -| Service | Description | -| -- | -- | -| Drone (runner) | Worker pour l'intégration continue | - -## ♇ pluton.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Adrien et Alex | -| Hébergement | 🏡 Adrien | -| Région | Hauts de France | -| FAI | ???? - ADSL, ❌ IPv4 publique, ✅ IPv4 fixe, ❌ IPv6 publique, ❌ IPv6 fixe, ❌ SMTP, ❌ Reverse DNS | - - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| ? | Serveur | x1 | Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz, 4Go RAM, HDD 1To | N/A | - -Services hébergés : - -| Service | Description | -| -- | -- | -| Wireguard, Nomad, Consul | Cluster multi-site de test | - -# En datacenter - -## ⚔️ mars.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Adrien (et Quentin) | -| Hébergement | 🏢 Kimsufi (filiale d'OVH) | -| Région | Hauts-de-France | -| FAI | Gandi - ✅ IPv4 publique, ✅ IPv4 fixe, ❓ IPv6 publique, ❓ IPv6 fixe, ❓ SMTP, ❓ Reverse DNS | - -Liste du matériel : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| VPS | Serveur | x1 | 1 vCPU, 3Go RAM, 70 GB Block Storage | N/A | - -Services hébergés : - -| Service | Description | -| -- | -- | -| [Gitea](https://git.deuxfleurs.fr) | Forge logicielle | - -## 🪐 saturne.site - -Informations générales : - -| Caractéristiques | Détails | -| --: | :-- | -| Administration | Alex | -| Hébergement | 🏢 Kimsufi (filiale d'OVH) | -| Région | Hauts-de-France | -| FAI | OVH - ✅ IPv4 publique, ✅ IPv4 fixe, ✅ IPv6 publique, ✅ IPv6 fixe, ✅ SMTP, ✅ Reverse DNS | - -Liste du matériel : - -| Désignation | Rôle | Quantité | Détails | Image | -| -- | -- | -- | -- | -- | -| Kimsufi | Serveur | x1 | Intel Atom N2800 @ 1.86Ghz (4 cœurs), 4Go RAM, 2TB HDD, réseau 100Mbit/s | N/A | - -Services hébergés : - -| Service | Description | -| -- | -- | -| [Cryptpad](https://p.adnab.me) | Suite bureautique chiffrée de bout en bout | - diff --git a/content/infrastructures/machines/production.md b/content/infrastructures/machines/production.md index 671ec79..6f65752 100644 --- a/content/infrastructures/machines/production.md +++ b/content/infrastructures/machines/production.md @@ -8,40 +8,57 @@ Les serveurs de productions sont ceux qui font tourner les services accédés pa Si ils sont innaccessibles, alors les services ne fonctionnent plus. Et si une personne malveillante y accède, elle peut avoir accès à des données personnelles des usager·es. C'est donc le rôle le plus critique. -**Feuille de route :** Afin de maximiser la résilience de nos services, nous visons à terme d'installer 3 zones distantes avec 3 machines à chaque fois, -pour un total de 9 serveurs. +**Feuille de route :** Bien que nous disposions aujourd'hui de 3 sites pour le cluster de production, +la résilience des services publiquement n'est pas assurés lorsque l'un des sites recevant du traffic +(Neptune, Orion) devient indisponible. La prochaine étape est de rendre ces deux sites mutuellement +redondants en assurant une bascule automatisée de l'un à l'autre par une mise à jour du DNS en cas +d'indisponibilité. -# Rennes 1 (atuin) - -![Photos des 3 serveurs à Rennes](/img/serv_atuin.jpg) - -Les serveurs sont situés à domicile derrière une connexion FTTH Free. -Ils gèrent une grande partie des services de production de Deuxfleurs. - -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| Lenovo Thinkcentre M82 | Serveur | x3 | Intel G3420 @ 3.20GHz (2 cœurs)
8Go RAM, ~128GB SSD, ~1TB HDD | -| | | | `ssh datura.machine.deuxfleurs.fr` | -| | | | `ssh digitale.machine.deuxfleurs.fr` | -| | | | `ssh drosera.machine.deuxfleurs.fr` | -| HP 1405-8G | Switch | x1 | 8 ports ethernet @ 1Gbit/s | -| Freebox Mini 4k | Routeur | x1 | 4 ports ethernet @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | - -# Orsay 1 (neptune) +# Orsay (Neptune) ![Photo des 3 serveurs à Orsay](/img/serv_neptune.jpg) Les serveurs sont situés à domicile derrière une connexion FTTH SFR (la photo montre une box Free qui date d'avant le changement de FAI). -Cette grappe est plus récente et ne gère que Cryptpad à l'heure actuelle. -À terme, les services seront répartis entre les grappes de manière équitable. +Cette grappe gère certains services de manière exclusive: Jitsi, CryptPad. +D'autres services comme Garage sont répartis entre les grappes. | Désignation | Rôle | Quantité | Détails | | -- | -- | -- | -- | -| ThinkCentre M73 Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, HDD 500Go | +| ThinkCentre M710q Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | | | | | `ssh celeri.machine.deuxfleurs.fr` | +| ThinkCentre M73 Tiny | Serveur | x2 | 2 cœurs, 8Go RAM, HDD 500Go | | | | | `ssh concombre.machine.deuxfleurs.fr` | | | | | `ssh courgette.machine.deuxfleurs.fr` | | ThinkCentre M73 Tiny | Bridge IPv6 | x1 | 2 cœurs, 4Go RAM, HDD 500Go | | D-Link DGS-108gl | Switch | x1 | 8 ports ethernet @ 1Gbit/s | | Box SFR | Routeur | x1 | N/A | +# Lyon (Orion) + +![Photo des 3 serveurs à Lyon](/img/serv_orion.jpg) + +Les serveurs sont situés à domicile derrière une connexion FTTH Free. +Cette grappe gère certains services de manière exclusive: E-mails, Matrix, Guichet, Plume. +D'autres services comme Garage sont répartis entre les grappes. + +| Désignation | Rôle | Quantité | Détails | +| -- | -- | -- | -- | +| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 4Go RAM, SSD 500Go + HDD 500Go | +| | | | `ssh dahlia.machine.deuxfleurs.fr` | +| | | | `ssh doradille.machine.deuxfleurs.fr` | +| | | | `ssh diplotaxis.machine.deuxfleurs.fr` | +| Freebox | Routeur | x1 | N/A | + + +# Bruxelles (Bespin) + +![Photo des 3 serveurs à Bruxelles](/img/serv_bespin.jpg) + +Cette grappe ne gère aucun service accessible publiquement, mais elle fait partie intégrante du cluster Garage. + +| Désignation | Rôle | Quantité | Détails | +| -- | -- | -- | -- | +| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, SSD 500Go + HDD 500Go | +| | | | `ssh df-ymk.machine.deuxfleurs.fr` | +| | | | `ssh df-ymf.machine.deuxfleurs.fr` | +| | | | `ssh df-ykl.machine.deuxfleurs.fr` | diff --git a/content/infrastructures/machines/support.md b/content/infrastructures/machines/support.md index 9fe45d5..d816fae 100644 --- a/content/infrastructures/machines/support.md +++ b/content/infrastructures/machines/support.md @@ -12,7 +12,7 @@ et les sauvegardes, bien qu'elles soient chiffrées, contiennent tout de même d **Feuille de route :** Il est prévu de rationaliser l'usage de ces serveurs, c'est à dire voir si on peut mobiliser moins de ressources matériels tout en continuant d'assurer le service de support. -# Suresnes (mercure) +# Suresnes (Mercure) ![Image d'illustration du serveur](/img/serv_dellr710.jpg) @@ -32,7 +32,7 @@ Seulement une partie du serveur est mise à dispsition de Deuxfleurs : | bkp.mercure.site (deprecated) | VM | x1 | 4 vCPU, 8Go RAM, 40 GB Block Storage | | minio | S3 | x1 | Sert pour les sauvegardes | -# Rennes 2 (jupiter) +# Rennes (Jupiter) ![Photo de la tour à Rennes](/img/serv_io.jpg) @@ -45,3 +45,4 @@ Il est en charge des sauvegardes de Garage. | | | | `ssh io.machine.deuxfleurs.fr` | | Freebox Mini 4k | Routeur | x1 | 4 ports ethernet @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | + diff --git a/content/infrastructures/machines/xp.md b/content/infrastructures/machines/xp.md index 2319e32..853e222 100644 --- a/content/infrastructures/machines/xp.md +++ b/content/infrastructures/machines/xp.md @@ -9,11 +9,12 @@ et le nouveau matériel. Ils permettent aux opérateur·ices de se familiariser et donc sur la disponibilité des services. Ces machines ne contiennent pas de données personnelles et ne sont pas critiques, elles n'ont pas besoin de rester tout le temps allumées. Il n'est pas nécessaire d'être opérateur·ice pour gérer une de ces machines. -# Orsay 2 +# Orsay (Neptune) ![Photo d'illustration du Lenovo Tiny](/img/serv_m73tiny.jpg) -Cluster staging pour Garage. Cluster staging Nix. Runners Drone. +Cluster staging: expérimentations avec NixOS et de nouveaux déploiements dans Nomad, avant de les mettre en service sur le cluster de production. +Cluster de test de Garage. | Désignation | Rôle | Quantité | Détails | | -- | -- | -- | -- | @@ -23,31 +24,12 @@ Cluster staging pour Garage. Cluster staging Nix. Runners Drone. | | | | `ssh carcajou.machine.deuxfleurs.fr` | | | | | `ssh cariacou.machine.deuxfleurs.fr` | -# Lyon (aurora) -![Photo d'illustration du PC portable utilisé](/img/serv_easynotebg46.jpg) +# Rennes (Jupiter) -Runner Drone. +Cluster staging (idem). | Désignation | Rôle | Quantité | Détails | | -- | -- | -- | -- | -| Packard Bell EasyNote BG46 (2007) | Serveur | x1 | Intel T5750 @ 2.00Ghz (2 cœurs), 3Go RAM, HDD 500Go | -| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | - -# Rennes 3 - -Runner Drone - -(information à rajouter) - -# Bruxelles (bespin) - -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 8Go RAM, HDD 500Go | -| | | | `ssh df-pw5.machine.deuxfleurs.fr` | -| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, SSD 500Go | -| | | | `ssh df-ykl.machine.deuxfleurs.fr` | -| | | | `ssh df-ymf.machine.deuxfleurs.fr` | -| | | | `ssh df-ymk.machine.deuxfleurs.fr` | - +| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | +| | | | `ssh origan.df.trinity.fr.eu.org` | diff --git a/content/infrastructures/services.md b/content/infrastructures/services.md index 4df8a66..c01178c 100644 --- a/content/infrastructures/services.md +++ b/content/infrastructures/services.md @@ -9,30 +9,41 @@ rôles identifiés : production, développement, expérimentation, etc. | Service | Rôle | Site | Description | | -- | -- | -- | -- | -| [deuxfleurs.fr](https://deuxfleurs.fr) | production | `atuin` | Site principal de Deuxfleurs | -| [guide.deuxfleurs.fr](https://guide.deuxfleurs.fr) | production | `atuin` | Ce site | -| [Garage HQ](https://garagehq.deuxfleurs.fr) | production | `atuin` | Site web de Garage | -| [Guichet](https://guichet.deuxfleurs.fr) | production | `atuin` | Interface de gestion des utilisateurs | -| [Synapse](https://im.deuxfleurs.fr) | production | `atuin` | Serveur Matrix | -| [Element](https://riot.deuxfleurs.fr) | production | `atuin` | Client web pour Matrix | -| [Jitsi](https://jitsi.deuxfleurs.fr) | production | `atuin` | Service de visioconférence | -| Postfix | production | `atuin` | Serveur SMTP | -| Dovecot | production | `atuin` | Serveur IMAP | -| [SoGo](https://sogo.deuxfleurs.fr) | production | `atuin` | Client mail SoGo | -| [Alps](https://alps.deuxfleurs.fr) | production | `atuin` | Client mail Alps (plus léger) | -| [Plume](https://plume.deuxfleurs.fr) | production | `atuin` | Blog collaboratif et fédéré | -| [Platôo](https://platoo.deuxfleurs.fr) | production | `atuin` | Jeux de plateau en ligne | -| [Garage](https://garage.deuxfleurs.fr) | production | `atuin`, `neptune`, `jupiter` | Serveur de stockage de données | -| [CryptPad](https://pad.deuxfleurs.fr) | production | `neptune` | Éditeur de documents collaboratif chiffré | -| [Grafana](https://grafana.home.mricher.fr) | production | `mercure` | Interface de monitoring de l'infrastructure | -| [Gitea](https://git.deuxfleurs.fr) | développement | `mars` | Forge logicielle | -| [Drone](https://drone.deuxfleurs.fr) | développement | `atuin` | Serveur d'intégration continue | -| Drone (runner) | développement | `neptune` | Worker pour l'intégration continue | -| SSH | sauvegarde | `mercure` | Target de backups (Consul) | -| [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 | -| [staging.deuxfleurs.org](https://staging.deuxfleurs.org) | expérimentation | `neptune` | Site statique de test | -| Garage ([S3](https://garage.staging.deuxfleurs.org), [K2V](https://k2v.staging.deuxfleurs.org)) | expérimentation | `neptune` | Beta-test serveur de stockage de données | -| [Guichet](https://guichet.staging.deuxfleurs.org) | expérimentation | `neptune` | Beta-test interface de gestion des utilisateurs | -| [Grafana](https://grafana.staging.deuxfleurs.org) | expérimentation | `neptune` | Interface de monitoring | -| [Kibana](https://kibana.staging.deuxfleurs.org) | expérimentation | `neptune` | Interface de monitoring | +| [Garage](https://garage.deuxfleurs.fr) | production | Orion + Neptune, Bespin, Jupiter | Serveur de stockage de données | +| [deuxfleurs.fr](https://deuxfleurs.fr) | production | *cf.* Garage | Site principal de Deuxfleurs | +| [guide.deuxfleurs.fr](https://guide.deuxfleurs.fr) | production | *cf.* Garage | Ce site | +| Autres sites web | production | *cf.* Garage | Autres sites statiques servis par Garage | +| [Synapse](https://im.deuxfleurs.fr) | production | Orion | Serveur Matrix | +| [Element](https://riot.deuxfleurs.fr) | production | Orion | Client web pour Matrix | +| Postfix | production | Orion | Serveur SMTP | +| Dovecot | production | Orion | Serveur IMAP | +| [SoGo](https://sogo.deuxfleurs.fr) | production | Orion | Client mail SoGo | +| [Alps](https://alps.deuxfleurs.fr) | production | Orion | Client mail Alps (plus léger) | +| [Plume](https://plume.deuxfleurs.fr) | production | Orion | Blog collaboratif et fédéré | +| [Jitsi](https://jitsi.deuxfleurs.fr) | production | Neptune | Service de visioconférence | +| [CryptPad](https://pad.deuxfleurs.fr) | production | Neptune | Éditeur de documents collaboratif chiffré | +| [Guichet](https://guichet.deuxfleurs.fr) | production | Neptune | Interface de gestion des utilisateurs | +| Prometheus | production | Neptune, Bespin | Interface de monitoring de l'infrastructure | +| [Grafana](https://grafana.deuxfleurs.fr) | production | Neptune | Interface de monitoring de l'infrastructure | +| [Gitea](https://git.deuxfleurs.fr) | développement | Bespin | Forge logicielle | +| [Drone](https://drone.deuxfleurs.fr) | développement | Neptune | Serveur d'intégration continue | +| Drone (runner) | développement | Bespin | Worker pour l'intégration continue | +| SSH | sauvegarde | Mercure | Target de backups (Consul) | +| [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 | +| [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 | +| [Guichet](https://guichet.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Beta-test interface de gestion des utilisateurs | +| Prometheus | expérimentation | Neptune, Jupiter | Interface de monitoring | +| [Grafana](https://grafana.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Interface de monitoring | +| [Jaeger](https://jaeger.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Interface de monitoring | + +Une liste de sites séparés par des virgules (e.g. Neptune, Orion) indique un service qui stocke des données +et dont le fonctionnement est simultanément assuré par plusieurs sites pour garantir la disponibilité des données +lorsqu'un des sites est indisponible. + +Une liste de sites séparés par des slash (e.g. Neptune/Jupiter) indique un service qui ne stocke pas lui-même +de données, et dont le basculement d'un site à un autre est automatisé en cas de panne. + +Sur le cluster de production, notre serveur Garage stocke des données sur les 4 sites (Neptune, Orion, Jupiter, Bespin), +mais l'accès extérieur se fait uniquement par les noeuds de Orion. diff --git a/static/img/serv_bespin.jpg b/static/img/serv_bespin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05bbc66c5e05842e796bd667ef56b59dd692b041 GIT binary patch literal 88817 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