Scripts ansibles

Déploiement automatisé des applications de Coléo.

Chaque conteneur LXD de l’écosystème de Coléo est rattaché à un playbook. Le playbook est responsable du déploiement de l’environnement sur le conteneur LXD. Le nouvel environnement contiendra l’ensemble des dépendances nécessaires aux déploiements des applications nodeJS, des services postgresql et nginx.

L’écosystème de coléo est un ensemble de 7 conteneurs LXD, chacun dédié à un service. L’automatisation du déploiement pour chacun de ces conteneurs est primordiale afin de faciliter la migration, les mises à jour et permettre de passer rapidement d’un environnement de test à un environnement de production (c.a.d exploitable par les utilisateurs).

AltFigure — Représentation graphique des 7 conteneurs avec leurs configurations matérielles. Le serveur synapse.vhost33 est responsable de rediriger la requête cliente vers le bon service.

On retrouve l’ensemble des plabooks dans le dossier plays. Afin d’éviter de réécrire la roue, j’utilise des rôles ansible pour le déploiement de certains services tels que postgresql et nginx. Chaque conteneur LXD dispose d’un playbook.

Dépendances

Test

  • ansible (v2.4)
  • ansible-galaxy (v2.4)
  • vagrant (v2.0)
  • virtualbox (v5.2)

Production et Staging

  • ansible (v2.4)
  • ansible-galaxy (v2.4)

Manual installation on postgres01

Le déploiement de certains services: redis et postgresql, n'a pas encore été automatisée. Pour l'installation de redis, j'ai suivi la procédure écrite par DigitalOcean et disponible à cette adresse

À vos marques...

Installation des rôles externes

La première étape consiste à installer localement les rôles (externes) depuis ansible-galaxy.

bash ansible-galaxy install -r ./roles/requirements.yml

Tester un playbook

Il est ensuite possible de tester un playbook sur une machine virtuelle localement.

# Lancement de la machine virtuelle
cd test/
vagrant destroy # On détruit la machine virtuelle si elle existe.
vagrant up # On relance la machine virtuelle à neuf
# On se déplace vers le dossier contenant les playbooks
cd plays/
# On lance un playbook, dbserver par exemple:
ansible-playbook dbserver.yml — i test.ini

Le flag — i permet de spécifier le fichier d’inventaire contenant l’adressage des serveurs et certaines variables globales.

Deploiement de l’environnement staging sur les serveurs

Note: Il faut que python 2.x soit installé sur l'ensemble des machines

NodeJS pour coleo-api & coleo-media & coleo-app

ansible-playbook apps.yml — i staging.ini

results matching ""

    No results matching ""