The data structure is defined elsewhere, and it would easiest not to change it.
I'm currently migrating from Chef to Ansible, and the only pain point I've had has been the lack of data manipulation tools. In chef you have an (almost) full ruby VM to work with, so hash manipulation, loops, etc are all available to you. What is the best practice in Ansible-land? Should I write a python plugin to manipulate the data structure? I assume that I'm just doing something wrong with my loop syntax... On Wednesday, January 28, 2015 at 10:28:05 AM UTC-8, [email protected] wrote: > > Hello. > > I'm wondering if this data stucture is something you're getting back from > another application or external source? If not, are you able to define the > structure in anyway you desire? If not, why not? > > Here is the code I managed to come up with, which has a much, much simpler > data structure and does the same job. > > --- > - hosts: all > sudo: no > vars: > applications: > # - { cmd: 'bundle exec rake thing:1', path: 'application_1' } > - { cmd: 'uptime', path: 'application_1' } > - { cmd: 'uptime', path: 'application_2' } > - { cmd: 'uptime', path: 'application_3' } > - { cmd: 'uptime', path: 'application_4' } > tasks: > - name: Run dev tasks > shell: > > cd {{item.path}} && {{item.cmd}} > with_items: applications > > > > I hope this helps. > > On Wednesday, 28 January 2015 02:11:01 UTC, Evan Tahler wrote: >> >> Hi All! I cannot sort out how to itterate though this loop properly: >> >> I have 2 data dictionaries: >> >> applications: >> - application_1 >> - application_2 >> >> and >> >> big_var_collection: >> application_1: >> deployment_tasks: >> - { cmd: 'bundle exec rake thing:1', metadata: 'yay' } >> - { cmd: 'bundle exec rake thing:2', metadata: 'boo' } >> application_2: >> deployment_tasks: >> - { cmd: 'bundle exec rake thing:3', metadata: 'yay' } >> - { cmd: 'bundle exec rake thing:4', metadata: 'boo' } >> >> In this example, I want to run 4 commands: cd into the directory and run >> the `cmd`, IE: >> >> cd ~/www/projects/application_1 && bundle exec rake thing:1 >> cd ~/www/projects/application_1 && bundle exec rake thing:2 >> cd ~/www/projects/application_2 && bundle exec rake thing:3 >> cd ~/www/projects/application_2 && bundle exec rake thing:4 >> >> I would have assumed that the following loop would work, but I always end >> up with an access error of some sort >> >> - name: run deployment tasks >> shell: > >> cd ~/www/projects/{{ item.0 }} && {{ item.1.cmd }} >> with_nested: >> - applications >> - big_var_collection[item.0].deployment_tasks >> >> Help? >> > -- 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/47866272-0bff-4273-abe8-e17d8f5a21f5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
