Hi all,
I’ve been trying the docker module as a way to provision containers for a local development environment.
I’m facing some issues.
- I declare only one host in my inventory named docker-host
- I expect the docker module to build an ssh-enabled base image and start some containers
- I register these containers via add_host
- I use these hosts on the rest of the playbook
This works well if those containers are not already started or if the requested container state is reloaded or restarted.
But when I request the started state, the docker_containers fact is empty.
-
name: create docker containers
hosts: docker-host
tasks: -
name: “ensure base image is build”
docker_image: path=“docker/docker-build-ubuntu-sshd-services” name=“ubuntu/sshd-services” state=build -
name: “ensure webapp container is started”
docker:
name: webapp
image: ubuntu/sshd-services
state: started # here, if state is “reloaded”, everything works fine -
name: “add webapp container as app-web in inventory”
add_host: name=“app-web” groups=app-web,env-dev ansible_ssh_host=“{{ item.NetworkSettings.IPAddress }}” ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=docker
with_items: docker_containers -
name: “show docker containers fact”
debug: var=docker_containers -
name: Provision web server
hosts: app-web
roles: -
php
-
…
Command output at the second run:
TASK [debug] *******************************************************************
ok: [localhost] => {
“docker_containers”:
}
I couldn’t find any documentation about this docker_containers fact, I just found it on this post of this mailing list.
Am I on the wrong direction ?
Thanks for your help,
Regards
PS: more infos
- Python 2.7.6
- ansible-playbook 2.0.0.2
- Docker version 1.9.1, build a34a1d5