In that case, you may wish to do something in your roles like:

- name: check to see if something is already done
  whatever: a=b c=d
  register: is_done

- name: include the rest of the role tasks from another file if the above
thing isn't done
  include: role_tasks.yml
  when: not is_done



On Wed, Sep 17, 2014 at 10:02 AM, P <[email protected]> wrote:

>
>
> On Wednesday, September 17, 2014 3:52:33 PM UTC+1, Patrick Ansible-ML
> wrote:
>>
>> On 17-09-14 14:15, P wrote:
>> > >     I would recommend changing the roles so that installation of new
>> >>     software is skipped (instead of failing) when the software is
>> already
>> >>     present...
>> >
>> > What do you mean by "skipped"  ? If I check at the top of a role that
>> > the software is installed
>> > how can I skip the rest of role ?
>>
>> You could add a 'when:' clause in the tasks following the software
>> installation task to prevent them from running when the software is
>> already installed. The software installation task will need to set a
>> 'register:' clause with the result which can then be used by the 'when:'
>> clause in the following tasks.
>>
>> http://docs.ansible.com/playbooks_conditionals.html
>>
>
> I use it in my playbooks but when a role has many, many tasks you need to
> repeat
> the same "when:" line in every task which is not very handy.
>
> Also in more complicated cases your ansible code will go very unreadable.
> Imagine you are going to install software related to hardware.
> You don't need to install it under VM. So the most intuitive way
> (at least for me ;-) ) would be:
>
> if this is VM:
>   abort role
> if the software is installed:
>   abort role
> install software
> ...
>
>  --
> 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/523f8999-1639-4f0a-9e86-a847bc7833e5%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/523f8999-1639-4f0a-9e86-a847bc7833e5%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/CAMFyvFgfKXPhU1e965wNdWP%2B0uiZT7BQoiedFKAWmb7Aw7EHdw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to