La plateforme
Description
Dans la partie installation nous allons décrire comment déployer l’ensemble des briques opendata sur une plateforme type dont voici une configuration possible:
4 VM de 4VCPU / 8Go RAM / 20go (centos7)
Un disque 100go volume à monter sur le VM BDD
Cluster docker swarm composé de 3 noeuds (3 VM)
1 VM pour héberger la base de données et un volume ssh
1 volume sshfs (https://github.com/vieux/docker-volume-sshfs)
TODO ajouter un schema ICI pour illuster notre configuration type
Prérequis
Mise à jour du système:
# Clone the code repository into ~/dev/opendata-extraction
yum update -y
cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
Installation Docker
Suivre la documentation officielle
Initialisation de docker swarm
Sur la première VM, on initialise notre swarm docker:
docker swarm init
docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-5t9pofbsskv6023fw29e7efqexe3seyvsntvp5xldzgwca32x3-4xmhrvrxhe1uklk0aowtjxo3s 10.253.104.104:2377
On ajoute les deux autres VM dans notre swarm:
docker swarm join --token SWMTKN-1-5t9pofbsskv6023fw29e7efqexe3seyvsntvp5xldzgwca32x3-4xmhrvrxhe1uklk0aowtjxo3s 10.253.104.104:2377
Vérification:
docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
5qw29uqtuhk35zagfmz3w6fux * vm1 Ready Active Leader 19.03.8
hz2lp3fvj6ysg1116e2qmk8cl vm2 Ready Active Leader 19.03.8
om2lqc7desf7bh8ywut3mb9ur vm3 Ready Active Leader 19.03.8
Création d’un utilisateur
L’idée est de monter en ssh un volume qui sera sur le serveur de bdd afin de permettre de persister des fihiers,
Sur l’ensemble des VMs, création du user megalis :
su - root
adduser megalis
passwd password
Installation du plugin sshfs ( montage de volume ssh)
Sur les 3 VM : génération d’une clef ssh dans /home/megalis puis diffusion de la clé publique vers la VM BDD
su - megalis
ssh-keygen
ssh-copy-id megalis@<HOST_BDD>
Sur les 3 VM du cluster swarm:
su - root
#1 - Install the plugin
mkdir -p /var/lib/docker/plugins/
docker plugin install vieux/sshfs sshkey.source=/home/megalis/.ssh/
#creation du volume
docker volume create -d vieux/sshfs -o sshcmd=megalis@<HOST_BDD>:/data/partage/ sshvolume
#test du volume
docker run -it -v sshvolume:/sshvolume busybox ls /sshvolume