> Extra vars would be fine here.
>
> Variables defined in a play can be used in task includes if passed to the 
> include, but not to determine the filename.
>
>
I see - but is there a way to provide a default value for the extra-vars if 
it's omitted? I'd dislike having the playbook require an extra-var to 
actually work at all. Having a vars_prompt that works on playbook level 
would be useful here.

 

>
>
>
> On Fri, Sep 5, 2014 at 5:37 AM, Wolfgang Ziegler <[email protected] 
> <javascript:>> wrote:
>
>> Yeah, I was thinking that might be the case so I posted my general of 
>> what I want to achieve at 
>> https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/ansible-project/txSI-DE2-ts
>> .
>>
>> >Perhaps you meant a task include, but basically there's a lot of made-up 
>> syntax here and I can't make sense of it.
>>
>> I wanted to include a playbook based on the value of a variable which 
>> e.g. I could pass in via extra-vars. But as variables are at play-scope I 
>> tried defining it as above. Unfortunately, there is not much docs about 
>> playbook includes but the example in the docs is structured the same minus 
>> the vars part:
>>
>> - include: load_balancers.yml 
>> - include: webservers.yml 
>> - include: dbservers.yml
>>
>>
>>
>>
>>
>>
>> Am Freitag, 5. September 2014 03:32:58 UTC+2 schrieb Michael DeHaan:
>>>
>>> No, it shouldn't.
>>>
>>> For one, the YAML is conceptually mixed up a bit:
>>>
>>> - vars:
>>>     - playbook: "file"
>>>
>>>   include: "{{ playbook }}.yml"
>>>
>>>
>>> Perhaps you meant a task include, but basically there's a lot of made-up 
>>> syntax here and I can't make sense of it.
>>>
>>> It may be easier to step back and ask what you are trying to do, maybe 
>>> in a new thread, and we could help you model it.
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Sep 4, 2014 at 3:44 PM, Wolfgang Ziegler <[email protected]> 
>>> wrote:
>>>
>>>> Looks like this is about task include. I did something similar with a 
>>>> playbook include and it used to work in <1.7. However, after updating to 
>>>> 1.7.1 it fails now (with the same error). Is the following playbook 
>>>> supposed to work?
>>>>
>>>> - vars:
>>>>     - playbook: "file"
>>>>
>>>>   include: "{{ playbook }}.yml"
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Am Montag, 18. August 2014 14:27:49 UTC+2 schrieb Michael DeHaan:
>>>>>
>>>>> Excellent!  Thanks for testing!
>>>>>
>>>>>
>>>>> On Sun, Aug 17, 2014 at 9:26 AM, Akos Vandra <[email protected]> wrote:
>>>>>
>>>>>> Working on 1.7.1
>>>>>>
>>>>>> On 17 August 2014 15:09, Michael DeHaan <[email protected]> wrote:
>>>>>> > If you see that traceback in 1.7.1 (the latest release) please do 
>>>>>> file a bug
>>>>>> > in GitHub so we can improve the split or make a better error 
>>>>>> message.
>>>>>> > Let us know!
>>>>>> >
>>>>>> > As a sidenote, this syntax is not neccessary, so a quick primer on
>>>>>> > conditionals:
>>>>>> >
>>>>>> > - include: '{{ include_before_symlink }}'
>>>>>> >   when: '{{ include_before_symlink != None }}'
>>>>>> >
>>>>>> > At a basic level, you can drop the Jinja2 brackets, as that will 
>>>>>> result in a
>>>>>> > string value that you don't want:
>>>>>> >
>>>>>> > - include: "{{ foo }}"
>>>>>> >   when: include_before_symlink != None
>>>>>> >
>>>>>> > OR (more simply, if you wish to only define it when it is to be 
>>>>>> used)
>>>>>> >
>>>>>> > - include: "{{ foo }}"
>>>>>> >   when: include_before_symlink is defined
>>>>>> >
>>>>>> > OR (if you just want to reply on the true/false value)
>>>>>> >
>>>>>> > - include: "{{ foo }}"
>>>>>> >   when: include_before_symlink | default(False)
>>>>>> >
>>>>>> > Defaults can also set in roles/rolename/defaults/main.yml, which 
>>>>>> make this
>>>>>> > even nicer:
>>>>>> >
>>>>>> > - include: "{{ foo }}"
>>>>>> >   when: include_before_symlink
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > On Sun, Aug 17, 2014 at 5:54 AM, Akos Vandra <[email protected]> 
>>>>>> wrote:
>>>>>> >>
>>>>>> >> Hello!
>>>>>> >>
>>>>>> >> I am trying to include a file based on a variable name like so:
>>>>>> >>
>>>>>> >> - do preparation stuff
>>>>>> >> - include: '{{ include_before_symlink }}'
>>>>>> >>   when: '{{ include_before_symlink != None }}'
>>>>>> >> - do symlinking
>>>>>> >>
>>>>>> >> This is to be able to do a yield, similar to this:
>>>>>> >>
>>>>>> >> - include: deploy_revision
>>>>>> >>   vars:
>>>>>> >>     - foo: bar
>>>>>> >>     - include_before_symlink: roles/myrole/tasks/before_syml
>>>>>> ink.yml
>>>>>> >>
>>>>>> >> Which would execute the deploy_revison task up to the point where 
>>>>>> it would
>>>>>> >> start executing the before_symlink task file, and then return and 
>>>>>> finish up
>>>>>> >> the deploy_revision task. Emphasis is that the caller should be 
>>>>>> able to
>>>>>> >> provide what to do BEFORE the symlinkink.
>>>>>> >>
>>>>>> >> The error I get is:
>>>>>> >>
>>>>>> >> akovanm0:water-playbook avandra$ ansible-playbook
>>>>>> >> --private-key=~/.vagrant.d/insecure_private_key -i
>>>>>> >> .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory 
>>>>>> site.yml
>>>>>> >> -v
>>>>>> >> Traceback (most recent call last):
>>>>>> >>   File "/usr/local/Cellar/ansible/1.6.10/libexec/bin/ansible-
>>>>>> playbook",
>>>>>> >> line 5, in <module>
>>>>>> >>     pkg_resources.run_script('ansible==1.6.10', 
>>>>>> 'ansible-playbook')
>>>>>> >>   File
>>>>>> >> "/System/Library/Frameworks/Python.framework/Versions/2.7/Ex
>>>>>> tras/lib/python/pkg_resources.py",
>>>>>> >> line 489, in run_script
>>>>>> >>     self.require(requires)[0].run_script(script_name, ns)
>>>>>> >>   File
>>>>>> >> "/System/Library/Frameworks/Python.framework/Versions/2.7/Ex
>>>>>> tras/lib/python/pkg_resources.py",
>>>>>> >> line 1207, in run_script
>>>>>> >>     execfile(script_filename, namespace, namespace)
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/EGG-INFO/scripts/ansible-playbook",
>>>>>> >> line 317, in <module>
>>>>>> >>     sys.exit(main(sys.argv[1:]))
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/EGG-INFO/scripts/ansible-playbook",
>>>>>> >> line 257, in main
>>>>>> >>     pb.run()
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/ansible/playbook/__init__.py",
>>>>>> >> line 289, in run
>>>>>> >>     play = Play(self, play_ds, play_basedir,
>>>>>> >> vault_password=self.vault_password)
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/ansible/playbook/play.py",
>>>>>> >> line 152, in __init__
>>>>>> >>     self._tasks      = self._load_tasks(self._ds.get('tasks', []),
>>>>>> >> load_vars)
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/ansible/playbook/play.py",
>>>>>> >> line 588, in _load_tasks
>>>>>> >>     loaded = self._load_tasks(data, mv, default_vars, 
>>>>>> included_sudo_vars,
>>>>>> >> list(included_additional_conditions), original_file=include_
>>>>>> filename,
>>>>>> >> role_name=new_role)
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/ansible/playbook/play.py",
>>>>>> >> line 588, in _load_tasks
>>>>>> >>     loaded = self._load_tasks(data, mv, default_vars, 
>>>>>> included_sudo_vars,
>>>>>> >> list(included_additional_conditions), original_file=include_
>>>>>> filename,
>>>>>> >> role_name=new_role)
>>>>>> >>   File
>>>>>> >> "/usr/local/Cellar/ansible/1.6.10/lib/python2.7/site-package
>>>>>> s/ansible-1.6.10-py2.7.egg/ansible/playbook/play.py",
>>>>>> >> line 576, in _load_tasks
>>>>>> >>     (k,v) = t.split("=", 1)
>>>>>> >> ValueError: need more than 1 value to unpack
>>>>>> >> akovanm0:water-playbook avandra$
>>>>>> >>
>>>>>> >> Thanks for your help,
>>>>>> >>   Akos vandra
>>>>>> >>
>>>>>> >> --
>>>>>> >> 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/4cb8ba86-
>>>>>> a8be-4dc0-a73e-c0a98f4ba9f8%40googlegroups.com.
>>>>>> >> 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%2BnsWgz
>>>>>> n61CdJ3%2B4T71%3DPnf2QX_4Xh-BggUHePgSM5egCL9woQ%40mail.gmail.com.
>>>>>> >
>>>>>> > 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/CAHHcNoepfZ7LsGP0DTRz94iXsW-TzOiJ_
>>>>>> pZAGS7eub-GzfRXTQ%40mail.gmail.com.
>>>>>> 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/4db0c81d-ea5d-42cc-8e49-
>>>> 8e23be2dae5f%40googlegroups.com 
>>>> <https://groups.google.com/d/msgid/ansible-project/4db0c81d-ea5d-42cc-8e49-8e23be2dae5f%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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/2e159522-7fbe-46b1-894d-90cd839867c0%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/2e159522-7fbe-46b1-894d-90cd839867c0%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/c156ac3a-8cb3-4b04-8ae5-b3ea9cb4a0e3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to