Additionally you can make syslog_service a dictionary value with keys for
the different versions:

vars/main.yml

syslog_service:
    "6": syslog
    "7": rsyslog

Then just do:

- name: Ensure syslog is running
  service: name="{{ syslog_service[ansible_distribution_major_version] }}"
state=running enabled=yes

On Thu, Sep 1, 2016 at 1:04 PM, Allen Sanabria <[email protected]>
wrote:

> include_vars is your friend.
>
> For instance in tasks/main.yml you can say..
> - include_vars: RedHat6.yml
>  when: ansible_os_family == "RedHat" and ansible_lsb.major_release == "6"
>
> - include_vars: RedHat7.yml
>  when: ansible_os_family == "RedHat" and ansible_lsb.major_release == "7"
>
>
>
> On Thursday, September 1, 2016 at 10:54:25 AM UTC-7, ZillaYT wrote:
>>
>> Having a lot of -name/when task blocks is just ugly infrastructure. I
>> have to think of a better way. There's GOT to be a better way.
>>
>> On Thursday, September 1, 2016 at 1:45:02 PM UTC-4, Kai Stian Olstad
>> wrote:
>>>
>>> On 01. sep. 2016 18:02, ZillaYT wrote:
>>> > I'm writing a role to configure syslog, and of course the service is
>>> > different between Linux instances. How do I do this in var/main.yml?
>>>
>>> The directory must be vars not var.
>>>
>>>
>>> > # pseudo-code in vars/main.yml
>>> > if Redhat7.x
>>> >   syslog_service: rsyslog
>>> > else if RedHat6.x
>>> >   syslog_service: syslog
>>> > end
>>>
>>> It's not possible, vars/main.yml can only contain variable definitions,
>>> not logic.
>>>
>>>
>>> > So then I can just do this in tasks/main.yml
>>> >
>>> > - name: Ensure syslog is running
>>> >   service: name="{{ syslog_service }}" state=running enabled=yes
>>>
>>> You must split it in two tasks.
>>> ansible_os_family and ansible_lsb.major_release values is probably wrong
>>> so you need to find the correct ones.
>>>
>>> - name: Ensure syslog is running on Redhat 6.x
>>>    service: name=syslog state=running enabled=yes
>>>    when: ansible_os_family == "RedHat" and ansible_lsb.major_release ==
>>> "6"
>>>
>>> - name: Ensure syslog is running on Redhat 7.x
>>>    service: name=rsyslog state=running enabled=yes
>>>    when: ansible_os_family == "RedHat" and ansible_lsb.major_release ==
>>> "7"
>>>
>>> --
>>> Kai Stian Olstad
>>>
>> --
> 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/e03d4afd-fbf1-4a66-af09-e01083bb451e%40googlegroups.
> com
> <https://groups.google.com/d/msgid/ansible-project/e03d4afd-fbf1-4a66-af09-e01083bb451e%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Matt Martz
@sivel
sivel.net

-- 
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/CAD8N0v_MN8z9b%2BhwCJ1XbM94rUR9qtcO8JnkmYhB7jJ7zUpgQA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to