Re: [ansible-project] add list from host variables and group variables
Hi Marc, On 25.05.19 20:42, Marc Haber wrote: > this is what I have in a YAML formatted inventory > > --- > all: > vars: > city: > - Berlin > children: > g_empty: > hosts: > emptybuster: > emptysid: > emptystretch: > city: > - Steglitz > > Is there a more elegant way to do this, or have I reached ansible's > limits? If so, is there a bug report against ansible where I could read > up on the situation? Well, Ansibles variable system isn't as featureful as e.g. hiera and works mostly with overwrites. I see two possibilities here: 1. Using the a lookup plugin, not inventory variables, e.g. hiera since it supports all kinds of merging https://docs.ansible.com/ansible/latest/plugins/lookup/hiera.html 2. Use a different name for the variables and use set_fact in your playbook/a role to merge them. --- all: vars: _city_all: - Berlin children: g_empty: hosts: emptystretch: city: - Steglitz --- - hosts: all pre_tasks: - set_fact: city: "{{ _city_all + city | default([]) }}" tasks: - debug: var: city HTH, Sebastian -- Sebastian Meyer Linux Consultant & Trainer Mail: me...@b1-systems.de B1 Systems GmbH Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537 -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/bbaa6af3-5406-a10d-0ed4-f1fa9ddd8644%40b1-systems.de. For more options, visit https://groups.google.com/d/optout.
[ansible-project] add list from host variables and group variables
Hi, this is what I have in a YAML formatted inventory --- all: vars: city: - Berlin children: g_empty: hosts: emptybuster: emptysid: emptystretch: city: - Steglitz With this code, I get "city": [ "Berlin" ] for emptybuster and emptystretch, and "city": [ "Steglitz" ] for emptystretch. I would, for some reason, have "city": [ "Berlin", "Steglitz" ] instead. I have searched on the web and found a collection of wild constructions involving filters and/or set_fact, none of which yields the desired result. I have thought about setting hash_behavior=merge and making the city list a hash instead, but setting hash_behavior=merge is not recommended. Is there a more elegant way to do this, or have I reached ansible's limits? If so, is there a bug report against ansible where I could read up on the situation? Greetings Marc -- - Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany| lose things."Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421 -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/20190525184245.GB3193%40torres.zugschlus.de. For more options, visit https://groups.google.com/d/optout.