Handbook:Plateforme

De Drakonix Network @ web01
Aller à : navigation, rechercher
Important
N'installez pas l'infrastructure présentée ci-dessous pour héberger vos données (ni celles d'autres personnes) si vous ne savez pas ce que vous faites !.
Attention
L'adressage du réseau est en cours de refonte ! Certaines informations sont donc actuellement obsolètes.
Documentation status
This documentation is verified.
done at 96 %
Last update 6 novembre 2017 01:26:44
Note
Les pages qui suivent constituent la documentation de la plateforme d'hébergement Drakonix.
Elle est constituée d'un routeur, de 2 machines jumelles qui fournissent une couche de redondance sur les différents services proposés et d'une troisième machine qui se charge de servir les données et mets en œuvre différents outils dédiés à son administration (en cours d'ecriture - no eta).

Le tableau suivant recense et décrit l'ensemble des matériels utilisés dans la mise en oeuvre de la plateforme :

Hostname Ip wan Ip lan CPU RAM Rôle
gw xxx.xxx.xxx.xxx 192.168.0.1/24 Ikanos Vx185 @ 500 MHz 128 Mo internet gateway
steelbox 192.168.0.40/24 10.10.4.1/16 AR9344 @ 560 MHz 128 Mo routeur principal
greenbox 192.168.0.30/24 10.10.3.1/16 I5-750 @ 3.0 GHz 4 x 4 Go DDR3 xen dom0
whitebox 192.168.0.20/24 10.10.2.1/16 I5-4460 @ 3.2 GHz 4 x 8 Go DDR3 xen dom0
blackbox 192.168.0.10/24 10.10.1.1/16 I5-4460 @ 3.2 GHz 4 x 8 Go DDR3 xen dom0
shadow 192.168.0.50/24 10.10.5.1/16 N2800 @ 1.86 GHz 2 x 2 Go DDR3 backup

L'architecture proposée a pour objectif de répondre aux besoins suivants :

  • Haute disponibilité : fournir un haut niveau de disponibilité pour ses utilisateurs.
  • Scalabilité : être capable de s'adapter facilement à un accroissement de la charge reçu sur la plateforme.
  • Sécurité : garantir un bon niveau de sécurité pour les services hébergés et les données des utilisateurs.
  • Facilité d'exploitation : permettre aux administrateurs de s'approprier rapidement son fonctionnement.
<: Schéma de l'architecture :>

# ========================================================================================= #
#                                      Internet Users                                       #
#                                             |                                             #
#                                    [Operater Network]                                     #
#            ------------------------------------------------------------------             #
#            -                            internet                            -             #
#            ------------------------------------------------------------------             #
#                                             |                                             #
#                                  +----------+----------+                                  #
#                                  | (pub=92.139.225.172)|                                  #
#                                  |     [fai - box]     |                                  #
#                                  |  (gw=192.168.0.1)   |                                  #
#                                  +----------+----------+                                  #
#                                             |                                             #
#                                  +----------+----------+                                  #
#                                  | (wan=192.168.0.40)  |                                  #
#                                  |     [ steelbox ]    |                                  #
#                                  |   (lan=10.10.4.1)   |                                  #
#                                  +----------+----------+                                  #
#                                             |                                             #
#                +------------------------ Routing ------------------------+                #
#                |                            |                            |                #
#     +----------+----------+      +----------+----------+      +----------+----------+     #
#     |    (br=10.10.1.1)   |      |    (br=10.10.3.1)   |      |    (br=10.10.2.1)   |     #
#     |     [ blackbox ]    |      |     [ greenbox ]    |      |     [ whitebox ]    |     #
#     | =========+========= |      | =========+========= |      | =========+========= |     #
#     |    (vm:lvs01 .10)   |      |    (vm:dns01 .10)   |      |    (vm:lvs02 .10)   |     #
#     |    (vm:prx01 .11)   |      |    (vm:adm01 .11)   |      |    (vm:prx02 .11)   |     #
#     |    (vm:web01 .12)   |      |    (vm:bdd03 .14)   |      |    (vm:web02 .12)   |     #
#     |    (vm:mel01 .13)   |      |    (vm:elk03 .16)   |      |    (vm:mel02 .13)   |     #
#     |    (vm:bdd01 .14)   |      |    (vm:soc03 .19)   |      |    (vm:bdd02 .14)   |     #
#     |    (vm:fra01 .15)   |      |    (            )   |      |    (vm:fra02 .15)   |     #
#     |    (vm:elk01 .16)   |      |    (            )   |      |    (vm:elk02 .16)   |     #
#     |    (vm:map01 .17)   |      |    (            )   |      |    (vm:map02 .17)   |     #
#     |    (vm:git01 .18)   |      |    (            )   |      |    (vm:git02 .18)   |     #
#     |    (vm:soc01 .19)   |      |    (            )   |      |    (vm:soc02 .19)   |     #
#     +---------------------+      +---------------------+      +---------------------+     #
#                                                                                           #
# ========================================================================================= #

Important
Les informations présentées ici ne constituent pas une documentation officielle d'installation de la distribution Gentoo GNU/Linux. Elles s'appliquent spécifiquement au contexte défini précédemment et contiennent des parties qui sont propres à ce contexte. La documentation officielle d'installation de la distribution sur une machine standard est disponible sur le wiki officiel de la distribution.

Installation

Cette première partie détail les différentes étapes de l'installation des serveurs physiques de la plateforme.

Last update 4 juillet 2017 19:24:02
done at 100 %
Préparation des disques
Cette première étape va nous permettre de préparer les disques des différentes machines pour qu'ils accueillent le système d'exploitation. La répartition des disques sur les différents serveurs y est abordée et un plan de partitionnement des disques proposé et mis en œuvre.
Last update 25 août 2017 22:14:21
done at 100 %
Installation standard des serveurs
Les 3 serveurs sont installés dans un premier temps de façon identique. Le serveur greenbox est ensuite adapté pour porter l'ensemble des services d'administration de la plateforme, les serveurs blackbox & whitebox se chargent de la redondance des services fournis aux utilisateurs.
Last update 26 août 2017 11:29:36
done at 100 %
Administration standard des serveurs
Dans cette section nous abordons la mise en œuvre d'un certain nombre de services d'administration standard des serveurs. Les services de gestion des logs systèmes, de planification des tâches, de synchronisation temporelle sont installés et configurés. Des scripts facilitant la maintenance courante des machines sont également mis en place.
Last update 30 décembre 2017 18:19:43
done at 100 %
Paravirtualisation Xen & gestion des VM
L'infrastructure proposée repose principalement sur la virtualisation. Une grande majorité des services nécessaires au fonctionnement de la plateforme sont portés par différentes machines virtuelles. Ici nous installons l'hyperviseur Xen sur chacun des 3 serveurs puis nous mettons en place un système permettant le déploiement et la maintenance des machines virtuelles.

Architecture

Dans cette seconde partie nous mettons en place les différentes machines virtuelles qui portent les services fournis par la plateforme.

Last update 16 janvier 2018 19:48:17
done at 100 %
Serveurs DNS
Les serveurs DNS fournissent un service de résolution de nom pour la plateforme et le monde extérieur. En interne il s'agit de permettre la résolution des noms des différentes machines utilisées. En externe il s'agit de fournir la résolution des noms de domaines hébergés et des différents services attachés à ces domaines (sites web, services imap, smtp, etc.). Le service de résolution des noms est fournis par le paquet Bind.
Last update 14 janvier 2018 18:18:22
done at 100 %
Load Balancers
Les loadbalancers ont pour rôle de répartir la charge reçue par les différents services sur plusieurs machines. Pour réaliser cela nous utilisons 2 loadbalancers, ils sont installés en mode master / slave sur les machines lvs01 et lvs02. Keepalived et HaProxy sont utilisés pour réaliser le loadbalancing. Les requêtes reçues par les loadbalancers sont ensuite relayées sur les proxies des services concernés.
Last update 29 juillet 2017 01:08:37
done at 90 %
Les services proxies
Pour améliorer la sécurité et les performances des services finaux des reverses proxies sont utilisés. Ils constituent la porte d'entrée des requêtes extérieurs reçues. 3 services proxies sont installés, ils couvrent les services finaux suivants : pop3(s), imap4(s), http(s) et ftp. Pour les 2 premiers services, le paquet perdition est utilisé, le proxy web est fourni par nginx et le proxy ftp par ftp.proxy.
Last update 29 juillet 2017 01:08:13
done at 100 %
Les bases de données
Un grand nombre des services exploités nécessitent l'accès à un SGDB. Cet élément est donc central dans notre architecture et nous allons ici chercher à le fiabiliser au mieux. Pour cela chaque serveur physique héberge une vm dédiée à la gestion des bases de données. Les systèmes de gestion de bases de données installés sont mariadb, postgresql, mongodb et redis.
Last update 29 juillet 2017 01:07:40
done at 100 %
Plateforme mail
Ces serveurs sont chargés de la gestion des mails reçus et envoyés. 2 serveurs mails sont mis en place pour garantir la disponibilité du service. Ces 2 serveurs étant gourmand en requêtes dns, ils sont installés sur 2 des 3 serveurs dns qui ont été précédemment préparés (mel01 et mel02). La plateforme mail est constituée de 3 éléments suivant : un service d'envoi et de réception des mails (postfix), un service de filtrage (amavis associé à clamav et spamassassin) et un service de stockage et d'accès aux mails reçus (dovecot).
Last update 29 juillet 2017 01:07:01
done at 100 %
L'hébergement web
Les sites web hébergés sont servis par le serveur web apache. Ces 2 machines sont dédiées à ce service, un premier domaine y est installé. Les requêtes faites aux serveurs sont relayées par les 2 serveurs proxies précédemment installés. Ceci nous permet d'isoler le service d'un accès direct à internet et ainsi de mieux sécuriser les serveurs web finaux.

Services et administration

A ce stade l'ensemble des briques nécessaires au bon fonctionnement des services portés par la plateforme sont installés et configurés. Dans cette partie nous allons nous intéresser à l'administration de la plateforme. Nous installerons également plusieurs services qui sont proposés aux utilisateurs dans le cadre du projet C.H.A.T.O.N.S.

Last update 29 juillet 2017 00:05:45
done at 100 %
Analyse des logs
L'analyse des logs systèmes et des messages applicatifs est un élément primordial pour ce qui est de l'administration de la plateforme, la suite Elasticsearch / Logstash / Kibana offre une solution complète qui permet de collecter et d'indexer une grande variété de messages produit par la plateforme. La plateforme d'analyse des logs est composée de 3 machines, la première machine collecte les messages (logstash) et les transmet aux 2 autres machines qui se chargent de leur stockage (cluster elasticsearch). L'interface d'analyse des messages (kibana) est installée sur cette première machine.
Last update 26 juillet 2017 17:40:48
done at 100 %
Monitoring et surveillance
Après l'analyse des logs un autre aspect important de l'administration de la plateforme est le monitoring. Le premier outil utilisé est munin, il produit des graphiques à partir des données collectées sur les différentes machines et services. Le second outil est spécialisé dans la supervision, il s'agit d'icinga2 son rôle est d'exécuter des tests sur les différents services critiques et de remonter des alertes en cas de dysfonctionnement. Cette machine porte également un dernier outil qui nous aidera à administrer les différents serveurs et leurs services : saltstack.
Last update 15 juillet 2017 21:39:47
done at 100 %
Gitlab, forge logiciel
L'application Gitlab est une alternative libre à github, elle permet d'héberger votre code en gérant le versionning (parmi d'autres fonctionnalités). Gitlab est installé pour nous permettre d'héberger les codes et configurations relatifs au fonctionnement de la plateforme. Comme pour les autres services Gitlab est installé en mode haute disponibilité, 2 machines hébergent l'application, les bases de données et les dépôts sont déportés respectivement sur les serveurs de base de données et le nfs. Gitlab sera également accessible aux utilisateurs de la plateforme en tant que service libre.
Last update 25 mai 2017 22:29:29
done at 100 %
Serveur de cartes
Le serveur de cartes est le premier service libre entièrement dédié aux utilisateurs. Ce service est fournis par l'application Umap qui s'appuie sur le projet de cartographie collaborative OpenStreetMap pour fournir des fonds de carte sur lesquels il est possible d'ajouter des points, tracer des chemins, définir des zones... L'application est installée sur 2 machines dédiées les bases de données sont déportées sur le serveur postgresql, les données partagées par les 2 instances stockées sur le serveur nfs.
Last update 11 juillet 2017 22:52:56
done at 70 %
Services ouverts
En complément des services d'hébergement standard (mail & web) la plateforme propose à ses utilisateurs une série de services libres et ouverts. Ces services sont fournis dans le cadre du projet C.H.A.T.O.N.S (Collectif d'Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires). Ils sont installés sur 2 machines dédiées. Parmis les services installés ont citera etherpad un éditeur de texte en ligne collaboratif, la série d'outils lutim / lufi / privatebin qui permet de partager des contenus chiffrés, searx un méta moteur de recherche...
Metrics
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Ossim
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Api
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.