Last active
June 16, 2018 06:55
-
-
Save gravcat/45dc6c66096fcdf1ef391026bfecd25f to your computer and use it in GitHub Desktop.
-- forked to save the docker_volume return data register example usage -- Integración entre Ansible y Docker http://picodotdev.github.io/blog-bitix/2014/11/integracion-entre-ansible-y-docker/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: devbox | |
- name: start docker service | |
service: name=docker state=started | |
sudo: true | |
- name: build docker images | |
docker_image: name="{{ item.name }}" tag="{{ item.tag }}" state="present" path={{ item.path }} | |
with_items: | |
- { name: "picodotdev/base", tag: "1.0", path: "../docker/base" } | |
- { name: "picodotdev/mysql", tag: "1.0", path: "../docker/mysql" } | |
- { name: "picodotdev/redis", tag: "1.0", path: "../docker/redis" } | |
- { name: "picodotdev/apps", tag: "1.0", path: "../docker/apps" } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- hosts: devbox | |
tasks: | |
- name: start docker service | |
service: name=docker state=started | |
sudo: true | |
- name: start mysql data docker container | |
docker: image=busybox:latest name=picodotdev-mysql-data state=present volumes="/var/lib/mysql" | |
register: mysql_data_container | |
- name: start redis data docker container | |
docker: image=busybox:latest name=picodotdev-redis-data state=present volumes="/var/lib/redis" | |
register: redis_data_container | |
- name: start mysql docker container | |
docker: image=picodotdev/mysql:1.0 name=picodotdev-mysql state=running volumes_from=picodotdev-mysql-data hostname=mysql ports=3306:3306 command=/sbin/my_init | |
register: mysql_container | |
- name: start redis docker container | |
docker: image=picodotdev/redis:1.0 name=picodotdev-redis state=running volumes_from=picodotdev-redis-data volumes="{{ keys_path }}:/mnt/keys" hostname=redis ports=6379:6379 command=/sbin/my_init | |
register: redis_container | |
- name: start apps docker container | |
docker: image=picodotdev/apps:1.0 name=picodotdev-apps state=running volumes="{{ projects_path }}:/mnt/projects,{{ grails_path }}:/root/.grails,{{ gradle_path }}:/root/.gradle,{{ keys_path }}:/mnt/keys" hostname=apps ports=8080:8080,8443:8443 links=picodotdev-mysql:mysql,picodotdev-redis:redis command=/sbin/my_init | |
register: apps_container | |
- name: update hosts with containers ip address | |
replace: dest=/etc/hosts regexp="^(\d+\.\d+\.\d+\.\d+)(\s+{{ item.host }})$" replace="{{ item.ip }}\2" | |
sudo: true | |
with_items: | |
- { host: "mysql", ip: "{{ mysql_container['ansible_facts']['docker_containers'][0]['NetworkSettings']['IPAddress'] }}" } | |
- { host: "redis", ip: "{{ redis_container['ansible_facts']['docker_containers'][0]['NetworkSettings']['IPAddress'] }}" } | |
- { host: "apps", ip: "{{ apps_container['ansible_facts']['docker_containers'][0]['NetworkSettings']['IPAddress'] }}" } | |
- name: display containers info | |
debug: msg="info" | |
with_items: | |
- { name: "{{ mysql_container['ansible_facts']['docker_containers'][0]['Name'] }}", ip: "{{ mysql_container['ansible_facts']['docker_containers'][0]['NetworkSettings']['IPAddress'] }}", id: "{{ mysql_container['ansible_facts']['docker_containers'][0]['Id'] }}" } | |
- { name: "{{ redis_container['ansible_facts']['docker_containers'][0]['Name'] }}", ip: "{{ redis_container['ansible_facts']['docker_containers'][0]['NetworkSettings']['IPAddress'] }}", id: "{{ redis_container['ansible_facts']['docker_containers'][0]['Id'] }}" } | |
- { name: "{{ apps_container['ansible_facts']['docker_containers'][0]['Name'] }}", ip: "{{ apps_container['ansible_facts']['docker_containers'][0]['NetworkSettings']['IPAddress'] }}", id: "{{ apps_container['ansible_facts']['docker_containers'][0]['Id'] }}" } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
{{ registered_variable_name['ansible_facts']['docker_volume'].Mountpoint }}
Will get you the mountpoint directory, for example.
Return data from volume creation: