arnaudblancher.docker_provisionning

arnaudblancher.docker_provisionning

Ziel: Nimm ein Ansible-Inventory und erstelle einen Docker-Container für jeden aufgeführten Host.

Nach dem Erstellen kannst du dein bevorzugtes Ansible-Playbook auf diesen Docker-Inventory anwenden und sicher und einfach vollständige Tests in einer neuen, sauberen Umgebung durchführen, ohne neue virtuelle Maschinen einrichten zu müssen.

Nach deinen Tests kannst du diese Docker-Container einfach mit der Ansible-Rolle arnaudblancher.docker_unprovisionning zerstören.

Anforderungen

  • docker-engine

Stelle sicher, dass dein Docker-Engine läuft. Teste es mit (wahrscheinlich als root ...)

docker info

Wenn nötig, installiere docker-engine

Hier, docker-engine 1.11 auf 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

Auf Ubuntu Trusty,

ersetze python-docker

durch:

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

Rollenvariablen

Bitte sieh dir defaults/main.yml an.

Abhängigkeiten

Keine

Beispiel-Playbook

Bitte sieh dir das Unterverzeichnis ./demo/ an.

cat demo/docker-provisionning.yml

- name: "Erstelle alle Docker-Images und -Container für alle im Inventory aufgeführten Hosts"
  hosts: localhost
  gather_facts: no

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

cat inventory/docker/000_hosts

[mysql]
# benutze das standardmäßig konfigurierte docker_provisionning_image in defaults/main.yml
dock_mysql

[apache]
# spezifiziere ein bestimmtes docker_provisionning_image für diesen Container
dock_apache docker_provisionning_image="ubuntu1604"

[jmeter]
# Optionale docker_provisionning_dockerfile spezifiziert einen alternativen Dockerfile-Pfad außerhalb der Rolle;
# der Pfad muss relativ zu roles/arnaudblancher.docker_provisionning/dockerfiles/ sein
dock_jmeter docker_provisionning_image="jmeter2.13private"  docker_provisionning_dockerfile="../../../local_files/dockerfiles/jmeter2.13private"

[all:vars]
ansible_connection=docker

cat group_vars/all

# Überschreibe das Standard-os für docker_provisionning in default/main.yml
docker_provisionning_image: "ubuntu1404"

cat inventory/docker/group_vars/all

# Füge Host-Aliase für Container hinzu
docker_provisionning_aliases:
  dock_mysql:
    - "bdd01"
    - "bdd02"
  dock_apache:
    - www01
    - www02
    - www03

Aufruf:

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

Lizenz

GPLv3

Autoreninformation

Arnaud Blancher

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

Über das Projekt

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.

Installieren
ansible-galaxy install arnaudblancher.docker_provisionning
GitHub Repository
Lizenz
Unknown
Downloads
111
Besitzer