Hi all!

I have a fairly simple (at least it seems that way!) question about how to 
arrange variables -- or even roles for that matter-- for a runbook that 
I've written for my presentation at AnsibleFest on the Docker module.

the issue is this: I use the docker module for launching a specific number 
docker containers and have specific images for each type of container, 
those types being broken into roles. The types are simply web (apache), db 
(percona xtradb cluster), and haproxy. There is not much in the way for 
this talk to try to configure the launched containers as it's more about 
the ability to launch the containers. 

Now, currently, I have within each of the roles of course a vars/main.yml 
file with a variable I was going to use "containers_count". There is a task 
in roles/common/tasks/main.yml that simply launches containers 

- name: docker image control
  docker: image="{{repository_name}}/{{ image }}" name="{{ type }}_{{ item 
}}" state={{ docker_state }}
  with_sequence: count={{ containers_count }}

The top level playbook simply does this:

- hosts: docker
  roles:
  - common
  - web

- hosts: docker
  roles:
  - common
  - db

- hosts: docker
  roles:
  - common
  - haproxy

This results in the above task being called for each "type" and each role 
has its own "container_count" from the role's vars. 

It was pointed out to me that roles need to be more of a plugin ability and 
specific things like a count of containers being more site-specific, 
perhaps using inventory. The issue with this is that inventory is per host, 
correct? So, in my testing, the only host is localhost, where I'm running 
docker. For my presentation, hosts will be a certain number and on each a 
certain number of containers running.

Where then would it make sense to specify the count of containers per type? 
Say for instance, I want 9 cluster node containers, 3 haproxy containers 
and 10 web containers-- what would be a portable and flexible way to do 
this? What is best practices in this case?

Thank you!

PS: my respository 
is https://github.com/CaptTofu/ansible-docker-presentation for more context.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/207286e3-72df-48b3-9356-ae9a22b90ad2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to