"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. "
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. On Fri, Sep 5, 2014 at 5:37 AM, Wolfgang Ziegler <[email protected]> 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_symlink.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-playbo >>>>> ok", >>>>> >> 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]. > 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/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/CA%2BnsWgwhrXJ831dcvS3taRjTenwG9ehJ%2B%3DO_a71oD4geO2Kd0A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
