No, you cannot notify based on a fact.
On Wed, Jun 25, 2014 at 4:22 AM, Nico K. <[email protected]> wrote: > That's exactly the workaround I'm using now, however you can't do > something similar for 'notify'. > > e.g. > > notify: > - reload {{ ansible_os_family }} > > doesn't work, putting a when clause on the entire block just for the sake > of using different notifiers means duplication of an entire block and again > will also increase the chatty-ness > What's the preferred way of dealing with variable notifiers? > > Op dinsdag 24 juni 2014 21:16:22 UTC+2 schreef Michael DeHaan: >> >> >> >> >> 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/eb7816da-43b5-4543-80b0-db203409b35e%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/eb7816da-43b5-4543-80b0-db203409b35e%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%2BnsWgxUHZriPjrUuNaNd-P4mRPrPVh_6c%2BM3s2BvHVjSJ2scQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
