amipo
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
amipo [2018/11/17 20:48] – [Vagrant] bigMax | amipo [2020/02/07 14:05] (Version actuelle) – bigMax | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== AMIPO ====== | + | ====== |
L' | L' | ||
- | ===== Archi cible pour fin 2018 ===== | + | ===== Liste des choses en place ===== |
- | Liste des services que je pense pouvoir faire fonctionner d'ici fin 2018 : | + | * Architecture web |
- | * Frontal nginx | + | * La Homepage |
- | * Homepage | + | * Un serveur Prometheus pour héberger des métriques systemes. |
- | * Grafana | + | * Un serveur |
- | * Prometheus | + | * Un environnement de Dev déployable en local : [[ amipo_dev ]] |
- | * Vagrant | + | * Un déploiement |
+ | * Un serveur InfluxDb pour heberger des métriques temporelles | ||
+ | * Un serveur VerneMQ pour fournir un broker MQTT [[ amipo_mqtt ]] | ||
- | ===== Environnement de Dev ===== | + | ===== Liste des services à fournir à l' |
+ | * Un service d' | ||
+ | * Des backups | ||
+ | * Serveur turtl : un service de prise de note chiffré de bout en bout | ||
+ | * Serveur jirafeau : un service d' | ||
+ | * Serveur nextcloud : un service pour synchroniser et partager ses agenda et ses contacts | ||
- | ==== Vagrant | + | ===== Organisation ===== |
- | Nous utilisons | + | Nous utilisons |
- | \\ \\ | + | |
- | Liste des VMs : | + | |
- | * Controller ("Tour de controlle" | + | |
- | * Amipo1 (Image du serveur de Production) | + | |
- | === Synoptique du déploiement === | + | {{tag> |
- | - Création de la VM Controller avec Debian Stretch | + | |
- | - Ajout de l'IP de la VM Controller dans le fichier /etc/hosts de la machine hote | + | |
- | - Provisionnement de l' | + | |
- | - Création d'un volume disk autonome séparé pour la VM Amipo1 pour la (pas détruit à la destruction de la VM) | + | |
- | - Création de la VM Amipo1 avec Debian Stretch | + | |
- | - Ajout de l'IP de la VM Amipo1 dans le fichier /etc/hosts de la machine hote | + | |
- | - Installation minimal d' | + | |
- | - Provisionnement de l' | + | |
- | + | ||
- | === Gestion des clés ssh dans l' | + | |
- | Pour se connecter sur les VM, par défaut Vagrant utilise une clé ssh nommé " | + | |
- | Il y a plusieurs clés ssh à distinguer : | + | |
- | * La clé ssh qui permet à Vagrant de se connecter sur une VM dans l' | + | |
- | * La clé ssh d'un utilisateur qui est autorisé à se connecter sur le serveur. | + | |
- | * La clé ssh qui permet à ansible de se connecter à un serveur. | + | |
- | + | ||
- | + | ||
- | + | ||
- | === A positionner === | + | |
- | * root dev cert | + | |
- | * ssh keys | + | |
- | * | + | |
- | + | ||
- | + | ||
- | ===== Playbooks ansible ===== | + | |
- | Pour automatiser le déploiement des outils sur tous les environnements, | + | |
- | Buts : | + | |
- | * Pouvoir reproduire l' | + | |
- | * Faciliter le developpement en proposant un moyen d' | + | |
- | * Faciliter la maintenance | + | |
- | * Faciliter la diffusion la sécurisation et l' | + | |
- | + | ||
- | Liste des playbooks ansible à réaliser en adéquation avec la cible fin 2018 : | + | |
- | * Déploiement de nginx | + | |
- | * Configuration de nginx | + | |
- | * Génération des certificats ssl / Déploiement de la config ssl | + | |
- | * Configuration de l' | + | |
- | * Sécurisation du serveur | + | |
- | * Environnement du serveur | + | |
- | * Déploiement de la homepage | + | |
- | * Déploiement de Grafana | + | |
- | * Configuration de Grafana | + | |
- | * Déploiement de Prometheus | + | |
- | * Configuration de Prometheus | + | |
- | + | ||
- | Points difficiles : | + | |
- | * Configuration de nginx | + | |
- | * Configuration de l' | + | |
- | * Déploiement de la homepage | + | |
- | * Génération des certificats ssl | + | |
- | * Sécurisation du serveur | + | |
- | + | ||
- | ==== Configuration de nginx ==== | + | |
- | * Garde t'on la config externalisé et versionné avec git ? Ou bien passe t'elle directement versionné dans le playbook ansible ? | + | |
- | + | ||
- | ==== Configuration de l' | + | |
- | Le principe est de découplé la configuration de nginx et la configuration relative à l' | + | |
- | * 2 repertoires courants pour héberger les server blocks sites-available et sites-enabled | + | |
- | * Permettre de déployer un location block sur un server block déjà existant sans modifier le server block. | + | |
- | + | ||
- | Idée : | + | |
- | * www.amipo.fr est décrit dans un seul fichier dans sites-available pour faire simple. | + | |
- | * le server block de www.amipo.fr inclut tous les fichiers de la forme locations-enabled/ | + | |
- | * ces fichiers décrivent chacun un location block | + | |
- | * lors du déploiement de la homepage ou d'une quelconque autre app, on déploie le fichier contenant le location block dans le repertoire locations-available. | + | |
- | * Attention, cette idée permet de déployer une location qui intercepterait toute les autres. Cela peut etre une feature pour une page de maintenance par exemple. | + | |
- | + | ||
- | ==== Déploiement de la homepage ==== | + | |
- | * Réussir à déployer le site en étant le moins invasif possible sur la configuration de nginx. | + | |
- | + | ||
- | ==== Generation des certificats ssl ==== | + | |
- | * Installation de certbot en prod et en stagging | + | |
- | * Génération de certificat avec openssl en dev | + | |
- | * Maintenance / conservation du certificat racine de l' | + | |
- | + | ||
- | ==== Sécurisation du serveur ==== | + | |
- | * Installation de fail2ban | + | |
- | * Configuration de iptables | + | |
- | * | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | {{tag> | + |
amipo.txt · Dernière modification : 2020/02/07 14:05 de bigMax