Hi,

So I've been scavenging through a lot of posts to figure out how to deal 
with heterogeneous environments.
The two approaches that I see most are either using "group_by" or using 
"when".

For example: 

site.yml:
- name: whatever
  tasks:
    - group_by: key={{ansible_os_family}
  
- hosts: Debian
   roles:
     - role: rolename-debian

- hosts: Darwin
  roles:
    - role: rolename-darwin

My problem with this approach is that you are saying that a role is "OS" 
specific, even though it's not. Perhaps this has to do with my definition 
of role, but as I see it a 'role' is a task that any given node can perform.
I should be able to assign the 'role' 'nginx' to a variety of hosts, how 
those hosts then implement that role should be defined within the 'role' 
definition.

Now supposedly you can do this using the 'when' conditional statement, you 
would then end up with something like:

roles/myRole/tasks

- include: apt.yml
  when: ansible_os_family == "Debian"

- include: brew.yml
  when ansible_os_family == "Darwin"

However this is rather chatty, especially when these files include files of 
there own. And with chatty I mean every task, even when the 'when' clause 
is not matched is being shown, now you can set 'show_skipped_hosts" in the 
ansible configuration, however this still shows the headers of tasks that 
are (not) being processed.

Should I be dealing with this in a different fashion?
What I'm trying to accomplish is having a playbook that installs a package 
on a bunch of machines (running differents OS's), then configure that 
package based on the OS and configure the service accordingly.

IMHO the latter approach is the way to go, however the 'chattyness' is 
killing my operators.

Thanks a lot for sharing your insights.

Best regards.










-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/61f300f9-bb1e-4ef3-89a3-c81637202fb5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to