arnaudblancher.docker_provisionning

arnaudblancher.docker_provisionning

Objectif : prendre un inventaire Ansible et créer un conteneur Docker pour chaque hôte listé.

Après cela, vous pouvez déployer votre playbook Ansible préféré sur cet inventaire Docker et réaliser facilement et en toute sécurité des tests complets dans un nouvel environnement propre, sans avoir à créer de nouvelles machines virtuelles.

Après vos tests, il suffira de détruire ces conteneurs avec le rôle Ansible arnaudblancher.docker_unprovisionning.

Exigences

  • docker-engine

Assurez-vous que le moteur Docker est en cours d'exécution, testez avec (probablement en tant que root...)

docker info

Si nécessaire, installez docker-engine

Ici, docker-engine 1.11 sur Debian Jessie

apt-get remove docker.io python-docker
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo 'deb https://apt.dockerproject.org/repo debian-jessie main' > /etc/apt/sources.list.d/docker.list
apt-get update
apt-get install docker-engine python-docker

Sur Ubuntu Trusty,

remplacez python-docker

par :

sudo apt-get install python-pip
sudo pip install docker-py

Variables de rôle

Veuillez consulter defaults/main.yml

Dépendances

Aucune

Exemple de Playbook

Veuillez voir le sous-répertoire ./demo/

cat demo/docker-provisionning.yml

- name: "Créer toutes les images et conteneurs Docker pour tous les hôtes listés dans l'inventaire"
  hosts: localhost
  gather_facts: no

  roles:
    - { role : arnaudblancher.docker_provisionning,
      docker_provisionning_net: "ansible_myplateform" }

cat inventory/docker/000_hosts

[mysql]
# utilisez l'image docker_provisionning_image par défaut configurée dans defaults/main.yml
dock_mysql

[apache]
# spécifiez une image docker_provisionning_image spécifique pour ce conteneur
dock_apache docker_provisionning_image="ubuntu1604"

[jmeter]
# Optionnel docker_provisionning_dockerfile pour préciser un chemin de dockerfile alternatif en dehors du rôle ;
# le chemin doit être relatif à roles/arnaudblancher.docker_provisionning/dockerfiles/
dock_jmeter docker_provisionning_image="jmeter2.13private" docker_provisionning_dockerfile="../../../local_files/dockerfiles/jmeter2.13private"

[all:vars]
ansible_connection=docker

cat group_vars/all

# remplacez l'os par défaut/main.yml pour docker_provisionning
docker_provisionning_image: "ubuntu1404"

cat inventory/docker/group_vars/all

# ajoutez des alias d'hôte pour les conteneurs
docker_provisionning_aliases:
  dock_mysql:
    - "bdd01"
    - "bdd02"
  dock_apache:
    - www01
    - www02
    - www03

appel :

ansible-playbook  -i inventory/docker/ docker-provisionning.yml

Licence

GPLv3

Informations sur l'auteur

Arnaud Blancher

https://github.com/arnaudblancher/ansible-role-docker_provisionning

À propos du projet

Take an ansible inventory and create one docker container for each listed hosts. After you can deploy your favorite ansible playbook on theses docker-inventory and make easily and safely full tests in a new and clean environnement.

Installer
ansible-galaxy install arnaudblancher.docker_provisionning
Licence
Unknown
Téléchargements
111
Propriétaire