Hi Petros,
Seems you are asking a bit of a different question....
I don't particularly like this suggested approach because it conflates two
very different concepts - prompting with setting variables, in one line
that is hard to read. Also, ansible only accepts *one* value for each
argument, so specifying prompt twice is weird, and specifying the name of
the variable in the prompt string is very un-ansible-like as well.
Two, it sounds like what you really would want is a new action plugin
called "prompt", which I would be open to, which would look a lot like the
source to pause.py
- prompt: var="foo" message="foo?"
- prompt: var="spork" message="Sporks are cool?"
- set_fact: combined="{{ foo }}-{{ spork }}"
On Wed, Sep 10, 2014 at 7:12 AM, Petros Moisiadis <[email protected]> wrote:
> On 09/10/14 07:57, Tiglath wrote:
>
>
>
> On Tuesday, September 9, 2014 3:17:29 PM UTC-4, Michael DeHaan wrote:
>>
>> Ansible plays are hashes, they are a collection of attributes.
>>
>> Tasks are an ordered list.
>>
>> Thus including "vars_prompt" ahead or behind "tasks" makes no
>> difference.
>>
>> vars_prompt happens before the current play runs, every time.
>>
>> You can solve this problem by stopping the current play, starting a new
>> one with a vars_prompt in it, and then continuing, since a playbook can
>> contain multiple plays in a single file.
>>
>>
> Many thanks. I apologize but I am not proficient enough to know what you
> mean exactly.
>
> Something like this?
>
>
> ---
>
> - name: play 1
> hosts: myhost
> task:
> -name task1
> debug: msg='111111'
>
> - name: play 2
> hosts: myhost
> vars_prompt:
> yesno: 'Yes or No (y/n): '
>
>
> - name: play 3
> hosts: myhost
> task:
> -name task2
> debug: msg='YesNo = {{ yesno }}'
>
>
>
>
>
>
>>
>> On Tue, Sep 9, 2014 at 1:25 PM, Tiglath <[email protected]> wrote:
>>
>>>
>>>
>>> My test playbook for the flow I want is shown below:
>>>
>>> I want some work done, then prompt the user, then more work, a pause,
>>> and the end.
>>>
>>> The thing is that the prompt comes up even before gathering facts, not
>>> as suggested by its placement in the playbook.
>>>
>>> Can the prompting be done between tasks?
>>>
>>> Thanks
>>>
>>>
>>>
>>>
>>> ---
>>>
>>> hosts: "{{ target }}"
>>>
>>> tasks:
>>>
>>> - name: boo
>>>
>>> debug: msg="vars {{ inventory_hostname }} , env {{ env }} op {{
>>> op }} rel {{ rel }}"
>>>
>>> - name: build the release
>>>
>>> debug: msg="building"
>>>
>>> - name: installing/updating
>>>
>>> debug: msg="installing"
>>>
>>>
>>>
>>> hosts: "{{ target }}"
>>>
>>> vars_prompt:
>>>
>>> ltvup: "Is the app up on {{ target }} ? (y/n): "
>>>
>>> tasks:
>>>
>>> - name: Stop app
>>>
>>> debug: msg="the server is {{ ltvup }}"
>>>
>>> - name: postinstall
>>>
>>> debug: msg="post"
>>>
>>> - name: wait
>>>
>>> pause: prompt="Have admins do sudo blah blah blah"
>>>
>>> cleanup tasks here.
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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/e78ba643-6db5-4ffb-9af5-
>>> ab90daf811d7%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/e78ba643-6db5-4ffb-9af5-ab90daf811d7%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/feccf0a0-efb5-4eb6-8f34-81e09800c3c2%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/feccf0a0-efb5-4eb6-8f34-81e09800c3c2%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
> I think it could be useful if 'set_fact' (and 'set_global' if it is
> implemented) were extended to take a special 'prompt' parameter that would
> make it easy for asking for user input at whatever step of a deployment
> process.
>
> E.g.:
> - set_fact: prompt="somevar:Enter your value" prompt="anothervar:Enter
> another value" combined_fact="{{ somevar }} - {{ anothervar }}"
>
> What do you think?
>
>
--
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%2BnsWgwLsaMeKfvPtYZdSFTbQ-FS%2BcDaZ4aZ1apwe%2BU7WitmCA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.