Not read this yet but you can define cross group_vars that are common across inventory as well as specific to inventory - it's a trick I use to save having to copy and paste stuff which is shared across most, but not all inventory.
Thanks for the link though. On Monday, October 3, 2016 at 4:49:48 PM UTC+1, Asil Carlin wrote: > > Thanks for replying. > > At the moment no, there aren't any csv files anywhere. Just trying out > different approaches to config management using ansible. I'm comfortable > with group_vars, it's the repetition in defining them that grates. > > If you have a spare few minutes, take a look at Neil Watson's blog, > specifically this post > <http://evolvethinking.com/blog/2014/02/26/my-evolution-of-cfengine-policy/> > explaining > the evolution of his Cfengine policies. I've used this approach at a > previous shop that had CFengine deployed and it worked well. > It makes viewing and managing configuration much easier, the idea of > data-driven policies appeals.It also simplifies operations view of managing > the infrastructure, one line specifies multiple configuration parameters > for an object. > > So...not what I wanted to hear but, not the end of the world either. > > Just noticed I hadn't set the delimiter parameter, however still get the " > ...unable to convert to bool" message. > > Asil > > > > > On Monday, October 3, 2016 at 3:05:17 PM UTC+1, J Hawkesworth wrote: >> >> Presumably you've got csv files coming from somewhere else that you want >> to use to drive things? >> >> If not, I'd suggest to you see if you can use group_vars >> http://docs.ansible.com/ansible/intro_inventory.html#group-variables to >> set variables for specific groups. Bear in mind you can have multiple >> groups and you can have groups which are specific to just one inventory >> file or are shared, so they can be pretty flexible. >> >> I think using group_vars would 'go with the grain' better than using the >> lookups, and give you more readable playbooks. >> >> Probably not what you wanted to hear, but hope it helps, >> >> Jon >> >> >> On Monday, October 3, 2016 at 10:18:15 AM UTC+1, Asil Carlin wrote: >>> >>> Hi, >>> >>> I'm trying to use csvfile lookups to populate values in the groups >>> module, but not having much luck. My csvfile: >>> >>> # groups.csv >>> # name, gid [optional - leave blank], state [present|absent], system >>> [yes|no] >>> accounts,502,present,no >>> engineering,504,present,no >>> >>> The playbook: >>> >>> --- >>> >>> - hosts: localhost >>> become: True >>> become_user: root >>> >>> tasks: >>> >>> - name: get groups >>> command: /usr/bin/awk -F',' '!/^#/ && !/^$/ { print $1 }' groups.csv >>> register: groups_out >>> >>> - name: Process groups >>> group: > >>> name="{{ lookup('csvfile', 'item file=groups.csv col=0') }}" >>> gid="{{ lookup('csvfile', 'item file=groups.csv col=1') }}" >>> state="{{ lookup('csvfile', 'item file=groups.csv col=2') }}" >>> system="{{ lookup('csvfile', 'item file=groups.csv col=3') }}" >>> # with_lines: "/usr/bin/awk -F',' '!/^#/ && !/^$/ { print $1 }' >>> groups.csv" >>> # with_items: "{{ groups_out.stdout_lines }}" >>> with_lines: "{{ groups_out.stdout_lines }}" >>> >>> Using with_lines and groups_out.stdout_lines gives me: >>> >>> TASK [Process groups] >>> ********************************************************** >>> /bin/sh: accounts: command not found >>> fatal: [localhost]: FAILED! => {"failed": true, "msg": >>> "lookup_plugin.lines(accounts) >>> returned 127"} >>> >>> Using with_items or with_lines and the awk command directly gives me: >>> >>> TASK [Process groups] >>> ********************************************************** >>> failed: [localhost] (item=accounts) => {"failed": true, "item": >>> "accounts", "msg": "argument system is of type <type 'list'> and we >>> were unable to convert to bool"} >>> failed: [localhost] (item=engineering) => {"failed": true, "item": >>> "engineering", "msg": "argument system is of type <type 'list'> and we >>> were unable to convert to bool"} >>> >>> Removing the loop and just specifying a key, in the following output >>> "accounts" was used: >>> >>> TASK [Process groups] >>> ********************************************************** >>> fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": >>> "argument >>> system is of type <type 'list'> and we were unable to convert to bool"} >>> >>> Ultimately I'd like to use csv files to define config although I'm not >>> sure i'm going about this the right way. >>> >>> Asil >>> >>> -- 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/0796ca2c-0d3a-42cd-aa3e-0f91139c4ff7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
