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.
