Configuration de serveurs web pour le déploiement des applications mobile et web

La tache effectuée a la fin du développement et validation d'une application mobile ou web ou même d'un site web, c'est le déploiement dans un serveur web. Configurer un serveur web est une tache relativement longue, et si vous avez une dizaine de serveurs a configurer par exemple vous allez devoir reproduire ces étapes encore et encore et du coup c'est un peu pénible

La communauté et devOps a bien réflichi a comment résoudre cette problématique et a proposer des solutions pour automatiser le déploiement des serveurs, l'installation des outils et leurs configuration. Donc, il en existe pas mal de solutions pour le faire comme Puppet , Chef ou Ansible. Découvrons l'un des outils open source que nous utilisons pour la gestion de configuration.

Pourquoi Ansible ?

Sans se lancer dans une comparaison des solution, Ansible est un outil simple a utiliser, vous allez avoir juste a comprendre comment écrire les fichiers de configuration et après ça va fonctionner.

Pour installer Ansible dans notre machine local on utilise la commande de gestionnaire des packets, sur linux ou mac, car Ansible aura besoin d'un accès SSH vers les machines cibles (Cela suppose l'utilisation d'un VM Linux si vous êtes dans Windows).

Pour installer ansible sur ubuntu en utilisant apt-get

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

Ensuite, Ansible va s'installer sur la machine en installant des dépendance liées  Python.


Définir l'ensemble des machine Hosts ou on veut faire le déploiement

Supposons qu'on veut lancer des serveurs web et des bases de données. La syntaxe du fichier Host a definir localement sera comme suit

[webservers]
foo.example.com
bar.example.com

[dbservers]
one.example.com
two.example.com
three.example.com


Definir les playbooks et les taches

Ensuite, on va créer des fichiers playbooks pour définir la configuration qu'on veut faire dans chacun des serveurs

Voici un exemple d'un Play qui va permettre de faire le mis a jour de Apache et l'activer au lancement du machine 

---
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: name=httpd state=latest
  - name: write the apache config file
    template: src=/srv/httpd.j2 dest=/etc/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

Pour mieux comprendre Ansible, nous vous invitons a découvrir leurs documentations et l'ensemble des fonctionnalités de déploiements et automatisation.

Devinweb, 

Agence de développement mobile, web et services cloud


  Partager