Michael, after reading the ansible.cfg documentation page, I found the
parameter you mentioned, together with an warning against it. Since I value
the experience from everyone here more than mine, would you care to explain
why merging the hashes could be such bad idea?

Thanks again.

ps.: not trying to raise a flame, just like to hear about it.

--
Eric Chaves
(11) 98139-9880


2013/12/1 Michael DeHaan <[email protected]>

> "I created a role with default variables using a nested syntax and not
> I'd like to override just a few of those attributes in the playbook"
>
> There is no problem in doing this.
>
> You can use parameterized roles, include a variable file, use set_fact, or
> all sorts of things.
>
> Now what you are asking is something different -- you should change the
> hash merge behavior in ansible.cfg.
>
>
>
> On Sun, Dec 1, 2013 at 8:07 PM, Eric Chaves <[email protected]> wrote:
>
>> Hi Kahil,
>>
>> Thanks for the suggestion, but the problem remains. You haven't override
>> the default value, but instead declared a second flat variable. The problem
>> with this approach is that if do this for every paramet I'll double the
>> number of used variables. Also I will have to "flatten" them all which in
>> practice would be easier to just flatten the defaults.
>>
>> But I do wish to have the nested syntax because some of my variables
>> become very confusing when flattening and I also found it better for
>> organization and clarity in the yml.
>>
>> Still hoping to find a way to do it.
>>
>> Cheers,
>>
>>
>> --
>> Eric Chaves
>> (11) 98139-9880
>>
>>
>> 2013/12/1 Kahlil Hodgson <[email protected]>
>>
>>>  There is a variable merging setting, but I prefer being explicit about
>>> having a complex variable, parts of which can be overridden (rather
>>> than magically "doing the right thing").
>>>
>>> ---
>>> - hosts: myserver
>>> - roles:
>>>   - mysql
>>> - vars:
>>>     mysql_password: abcdef
>>> - tasks:
>>>     - debug: msg="{{ mysql_password | default(mysql.password) }}"
>>>
>>> This way it is clear that the password could have come from two
>>> different places.
>>>
>>> Hope this helps.
>>>
>>> K
>>>
>>>
>>> Kahlil (Kal) Hodgson                       GPG: C9A02289
>>> Head of Technology                         (m) +61 (0) 4 2573 0382
>>> DealMax Pty Ltd                            (w) +61 (0) 3 9008 5281
>>>
>>> Suite 1415
>>> 401 Docklands Drive
>>> Docklands VIC 3008 Australia
>>>
>>> "All parts should go together without forcing.  You must remember that
>>> the parts you are reassembling were disassembled by you.  Therefore,
>>> if you can't get them together again, there must be a reason.  By all
>>> means, do not use a hammer."  -- IBM maintenance manual, 1925
>>>
>>>
>>>
>>> On 2 December 2013 11:04, Eric Chaves <[email protected]> wrote:
>>> > Hi folks,
>>> >
>>> > I created a role with default variables using a nested syntax and not
>>> I'd
>>> > like to override just a few of those attributes in the playbook, but
>>> > whenever I do it I end up redefining the entire variable na loosing the
>>> > defaults for the non overrided values.
>>> >
>>> > For example, in role/mysql/defaults/main.yml:
>>> > ---
>>> >   mysql:
>>> >       address: 127.0.0.1
>>> >       admin: admin
>>> >       password: 12345
>>> >
>>> > Then in the my_server.yml:
>>> > ---
>>> > - hosts: myserver
>>> > - roles:
>>> >   - mysql
>>> > - vars:
>>> >     mysql:
>>> >        password: abcdef
>>> >
>>> > but once I do this mysql.address and mysql.admin become undefined. I
>>> have
>>> > tried the mysql[address] syntax but it didn't work.
>>> >
>>> > Is it possible to override just a few set of nested attributes?
>>> >
>>> > Thanks for the help,
>>> >
>>> > Eric
>>> >
>>> > --
>>> > 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].
>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Ansible Project" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/ansible-project/klSyFJxtLqg/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
>> 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].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> --
> Michael DeHaan <[email protected]>
> CTO, AnsibleWorks, Inc.
> http://www.ansibleworks.com/
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/ansible-project/klSyFJxtLqg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to