Michael,

You can't make up syntax and just have it automatically passed to the
modules, the original poster is asking about passing parameters repeatedly
to OpenStack.

Thomas,

To at least clean up your playbook, define a variable:

vars:
      auth_url: "{{ lookup('env', 'OS_AUTH_URL') }}"

Etc.  Then you don't need to repeat the unseemly lookup string each time.


--Michael




On Thu, Oct 23, 2014 at 8:25 PM, Michael Hoglan <[email protected]> wrote:

> How about moving the common authentication values into their own key in
> the dictionary
>
> - name: Test variable composition
>   hosts: localhost
>   gather_facts: false
>   vars:
>     common:
>       var1: var1
>       shell: "{{ lookup('env', 'SHELL') }}"
>     test1:
>       a: 1
>       b: 2
>       common: "{{ common }}"
>     test2:
>       a: 3
>       b: 4
>       common: "{{ common }}"
>   tasks:
>      - debug: var=common
>      - debug: var=test1
>      - debug: var=test2
>
> Output
> (ansible)[ec2-user@ip-10-0-0-226 playbooks]$ ansible-playbook -i launched
> test_output.yml
>
> PLAY [Test variable composition]
> **********************************************
>
> TASK: [debug var=common]
> ******************************************************
> ok: [localhost] => {
>     "common": {
>         "shell": "/bin/bash",
>         "var1": "var1"
>     }
> }
>
> TASK: [debug var=test1]
> *******************************************************
> ok: [localhost] => {
>     "test1": {
>         "a": 1,
>         "b": 2,
>         "common": {
>             "shell": "/bin/bash",
>             "var1": "var1"
>         }
>     }
> }
>
> TASK: [debug var=test2]
> *******************************************************
> ok: [localhost] => {
>     "test2": {
>         "a": 3,
>         "b": 4,
>         "common": {
>             "shell": "/bin/bash",
>             "var1": "var1"
>         }
>     }
> }
>
> PLAY RECAP
> ********************************************************************
> localhost                  : ok=3    changed=0    unreachable=0
>  failed=0
>
> Thanks!
> Michael
>
> On Tuesday, October 21, 2014 2:55:23 AM UTC-5, Tomas Karasek wrote:
>>
>> Hello,
>>
>> I am testing OpenStack modules and I wonder if it's possible to somehow
>> "pre-define" a dictionary for a resource to avoid repeating parameter
>> declarations. I have:
>>
>> ---
>>   - quantum_network:
>>       auth_url: "{{ lookup('env', 'OS_AUTH_URL') }}"
>>       login_username: "{{ lookup('env', 'OS_USERNAME') }}"
>>       login_password: "{{ lookup('env', 'OS_PASSWORD') }}"
>>       login_tenant_name: "{{ lookup('env', 'OS_TENANT_ID') }}"
>>
>>       name: "{{ network_name }}"
>>
>>   - quantum_subnet:
>>       auth_url: "{{ lookup('env', 'OS_AUTH_URL') }}"
>>       login_username: "{{ lookup('env', 'OS_USERNAME') }}"
>>       login_password: "{{ lookup('env', 'OS_PASSWORD') }}"
>>       login_tenant_name: "{{ lookup('env', 'OS_TENANT_ID') }}"
>>
>>       cidr: "{{ subnet_cidr }}"
>>       name: "{{ subnet_name }}"
>> [end of YAML]
>>
>> All the OpenStack modules have the 4 authentication parameters, and I
>> would like to somehow remove the duplicity of declaring them every time
>> again.
>>
>> If it would be some OOP oriented programming language, I would create an
>> abstract class and inherit. If it would be python, I would create a base
>> dict and then copy it and extend it. I am not sure how to achieve this in
>> Ansible and YAML.
>>
>> Is there a way to declare the auth values only one time?
>>
>> Thanks.
>>
>> Cheers,
>> Tomas
>>
>  --
> 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/d6f2fc6a-1703-4a2e-a265-7a03a971ce94%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/d6f2fc6a-1703-4a2e-a265-7a03a971ce94%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%2BnsWgxDF__7gK4w4JXwqmOCvxpBC6uyUnmGojEVdDHRh_%2BPXQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to