>> Is there a way to access it from outside the run of the playbook, like
>> we do --list-tasks.
> There's not.

Well, at least I can stop searching :)

>> My use case is testing the play books with spec and serverspec.
>> I'd like my test suit to be automated:
>> "for a given host, here is the list of roles that have been applied,
>> test each of them".
>
> Nope.    Though you could --list-tasks and parse out the role names, I
> guess, or even write a playbook that walked the list of things and generated
> a config file.
IIRC, list-tasks doesn't output the role names, only the targeted group.
This would be a simple solution to this need, though.
Calling a play to generate it might work. I'll try.


> I am generally of the opinion that a need for server-spec to verify that
> Ansible set basic things like file permissions correctly is a sign that
> Ansible *does not work* (which it does) and that it's easier to just call a
> test script as the last per-host action in your playbook, so that the
> playbook returns a proper failure code and fails the host.    What should be
> tested is whether the application is running, not that there are 1:1 tests
> for every step in the playbook -- which is a crazy large amount of extra
> work for not much more value add.    But that's me giving a public service
> announcement and everyone is welcome to do what they want :)

I completely agree.
We look for other things in our test:
- good integration of all the pieces: more service level than app
- no regression: there are 5 of us committing regularly, on several
different configs for very different client setups
- human error
It also brings a better overall understanding and forces to ask
questions differently.

But we are not testing Ansible itself, as you said, it knows how to
set permissions on a file :)

Thanks again.
raphael.








>
>>
>> Or, as you said, a list of groups per host, roles per play, and I can
>> do the mapping myself.
>>
>>
>> (that being said, the role_names will come handy too).
>>
>>
>> raphael.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Mon, Mar 24, 2014 at 11:30 PM, Michael DeHaan <[email protected]>
>> wrote:
>> > Yes, the variable "role_names" contains a list of all role names, as of
>> > a
>> > 3/11 addition by Brian Coca.
>> >
>> > You'll need the development branch.
>> >
>> > However in most cases (but not always), it's not needed --- plays are
>> > intended to map groups to roles, so it's intended that tests are applied
>> > against group membership most of the time.
>> >
>> > - hosts: webservers
>> >   roles:
>> >      - base
>> >      - webserver
>> >      - monitored
>> >
>> > Thus if you were doing an iptables template:
>> >
>> > {% if inventory_hostname in groups.webservers %}
>> >
>> > Is equivalent to:
>> >
>> > {% if 'webserver' in role_names %}
>> >
>> > If all machines were to be monitored, it might be nice to even say this:
>> >
>> > - host: all
>> >   roles:
>> >     - base
>> >
>> > - host: webservers
>> >   roles:
>> >      - webserver
>> >
>> > - host: all
>> >   roles:
>> >      - monitored
>> >
>> >
>> >
>> >
>> >
>> >
>> > On Mon, Mar 24, 2014 at 12:17 AM, <[email protected]> wrote:
>> >>
>> >> Hi.
>> >>
>> >> Is there any way to obtain the list of roles a Host will be playing ?
>> >> Something in the same idea as --list-tasks.
>> >>
>> >> In the same way, being able to list the groups of a host, from outside
>> >> a
>> >> play (i.e.. at the command line) would be nice (parsing the host file
>> >> can
>> >> become messy real quick).
>> >>
>> >> Thanks.
>> >> raphael.
>> >>
>> >>
>> >> --
>> >> 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/18e8ba5b-42a9-4f48-a5fa-d2d88a66ec02%40googlegroups.com.
>> >> For more options, visit https://groups.google.com/d/optout.
>> >
>> >
>> > --
>> > You received this message because you are subscribed to a topic in the
>> > Google Groups "Ansible Project" group.
>> > To unsubscribe from this topic, visit
>> >
>> > https://groups.google.com/d/topic/ansible-project/jeu_3t8Nenw/unsubscribe.
>> > To unsubscribe from this group and all its topics, 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/CAEVJ8QO%2Bea%3DYC3adzptwY9rQe8yXBg1HAtHoN5H3a0238haSUA%40mail.gmail.com.
>> >
>> > For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> http://ralovely.com
>>
>> --
>> 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/CAFzt8g0z5bEwwPqhwyx81UAb0_ZV%3DDHVqDr8Ve49TMmA2Pg9ww%40mail.gmail.com.
>>
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/ansible-project/jeu_3t8Nenw/unsubscribe.
> To unsubscribe from this group and all its topics, 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/CAEVJ8QMR5f8OQbtWKA8KAVh%2Brm2_zQsuu64mpebm_JDOKCyRdA%40mail.gmail.com.
>
> For more options, visit https://groups.google.com/d/optout.



-- 
http://ralovely.com

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

Reply via email to