On Tue, Jun 24, 2014 at 12:36 PM, Christian Thiemann <[email protected]>
wrote:
>
>
> On Tuesday, June 24, 2014 6:04:54 PM UTC+2, Michael DeHaan wrote:
>>
>> "It doesn't work for me (unless I create a file called
>> roles/foobar/tasks/{{ansible_os_family}}.yml... ;-) )."
>>
>> So in other words, it works :)
>>
>
> No, sorry, I meant literally "{{ansible_os_family}}.yml" -- it doesn't
> seem to do templating for the included file name. I think I remember this
> being a popular feature request some time ago, but you wrote it's important
> that the list of tasks in a play is fixed for every host (and it's
> determined on parsing time, not run-time). Correct me if I missed something.
>
Sorry, yes, It is true you can't include off inventory scoped variables
like that.
However
- include: RedHat.yml
when: ansible_os_family == 'RedHat'
That works fine.
include_vars is fine with such tricks, however
>
>> Also, public service announcement - Don't use ansible_pkg_mgr like that -
>> it won't join mulitple package installs using with_items into single
>> transactions. If you want to do a "when: ansible_pkg_mgr == 'apt'" that
>> will still keep it going.
>>
>
> Yes, in my roles I am working around that by supplying comma-separated
> lists myself instead of using with_items. Using ansible_pkg_mgr also has
> the disadvantage of not being able to use apt/yum/portage-specific
> parameters, but for virtually all of my package-manager needs it is
> sufficient -- and so, so, so much nicer in the output ;-)
>
>
>>
>>
>>
>> On Tue, Jun 24, 2014 at 10:31 AM, Christian Thiemann <[email protected]>
>> wrote:
>>
>>> It doesn't work for me (unless I create a file called
>>> roles/foobar/tasks/{{ansible_os_family}}.yml... ;-) ).
>>>
>>> I abstracted away package manager things using the ansible_pkg_mgr fact:
>>>
>>> - module: "{{ ansible_pkg_mgr }} name=foobar,baz,foo"
>>>
>>> To account for OS-specific package names, you can do something like this:
>>>
>>> - module: "{{ ansible_pkg_mgr }} name={{ pkg_foobar }},{{ pkg_baz }},{{
>>> pkg_foo }}"
>>>
>>> The pkg_XXX variables must be defined in vars/Debian.yml and
>>> vars/Darwin.yml, and you do this at the top of the role:
>>>
>>> - include_vars: '{{ ansible_os_family }}.yml'
>>>
>>>
>>>
>>> On Tuesday, June 24, 2014 3:26:28 PM UTC+2, Michael DeHaan wrote:
>>>
>>>>
>>>>
>>>>
>>>> On Mon, Jun 23, 2014 at 3:25 PM, Nico K. <[email protected]> wrote:
>>>>
>>>>> Sure, but that's exactly the thing I would like to deal with within a
>>>>> role, within a role however you can't perform the 'include' you stated in
>>>>> your post as "ansible_os_family" doesn't seem to evaluate.
>>>>>
>>>>
>>>> This is not true.
>>>>
>>>> Task files in roles (main.yml) can include other files.
>>>>
>>>> include_vars also works as a task as I have mentioned.
>>>>
>>> --
>>> 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/7712c232-8610-4b1c-a203-
>>> 80eb50572477%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/7712c232-8610-4b1c-a203-80eb50572477%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> 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/bb084154-9377-4898-9232-7ac340af4d50%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/bb084154-9377-4898-9232-7ac340af4d50%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
--
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/CA%2BnsWgzV72APR%3DuqaBRtEbiKwy%3Dz-pZpBa0LAGnvtuffmYaXfQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.