Outils pour utilisateurs

Outils du site


amipo

Ceci est une ancienne révision du document !


AMIPO

L'AMIPO est l'Association de Maintien de l'Informatique Paysanne Orléanaise, elle s'inscrit dans la dynamique CHATONS initiée par Framasoft.

Archi cible pour fin 2018

Liste des services que je pense pouvoir faire fonctionner d'ici fin 2018 :

  • Frontal nginx
  • Homepage
  • Grafana
  • Prometheus
  • Vagrant déploiement local

Environnement de Dev

Vagrant

Nous utilisons Vagrant pour construire l'environnement de Dev. L'environnement de Dev doit est déployable par chaucun sur son propre ordinateur personnel, de façon homogène, standard et automatisée. Pour cela, Vagrant créé et gère des Machines Virtuelles sur lesquels sera déployé l'environnement de Dev.

Liste des VMs :

  • Controller (“Tour de controlle” qui permet de lancer les playbooks Ansible)
  • Amipo1 (Image du serveur de Production)

Synoptique du déploiement

  1. Création de la VM Controller avec Debian Stretch
  2. Installation de Ansible via un provider Vagrant (installation managée par Vagrant)
  3. Déploiement de l'environnement du Controller avec Ansible
  4. Création d'un volume disk autonome séparé de la VM pour la (pas détruit à la destruction de la VM)
  5. Création de la VM Amipo1 avec Debian Stretch

Playbooks ansible

Pour automatiser le déploiement des outils sur tous les environnements, nous allons créer des playbooks ansible. Buts :

  • Pouvoir reproduire l'installation d'un service de manière automatisée
  • Faciliter le developpement en proposant un moyen d'installer facilement l'environnement sur une machine personelle
  • Faciliter la maintenance
  • Faciliter la diffusion la sécurisation et l'amélioration des déploiements

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
  • Configuration de l'architecture web (nom de domaine, sous domaine, server blocks (virtual hosts), dns, …)
  • Sécurisation 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'architecture web
  • 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'architecture web

Le principe est de découplé la configuration de nginx et la configuration relative à l'archi web.

  • 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/www.amipo.fr_*
  • 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'Amipo

Sécurisation du serveur

  • Installation de fail2ban
  • Configuration de iptables
amipo.1541922373.txt.gz · Dernière modification : 2018/11/11 07:46 de bigMax