Able to change execution order of with_items?

24 views
Skip to first unread message

John Harmon

unread,
Oct 2, 2017, 5:53:48 PM10/2/17
to Ansible Project
I have the following in my playbook, and when it writes the contents it writes in this format:

ServerA:
 sudoers

ServerB:
 sudoers

ServerA:
 other_users

ServerB:
 other_users.

I would like the following format if possible:

ServerA
 sudoers

ServerA
 other_users

ServerB
 sudoers

ServerB
 other_users

- name: Write users
  lineinfile
:
    dest
: "/tmp/users.txt"
    line
: "HOST: {{ansible_nodename}}\n{{item}}\n\n"
    insertafter
: EOF
    create
: yes
    state
: present
  delegate_to
: localhost
  with_items
:
   
- "{{sudoers.stdout_lines|to_nice_json}}"
   
- "{{other_users.stdout_lines|to_nice_json}}"
  notify
:
   
- email
   
- cleanup

John Harmon

unread,
Oct 2, 2017, 6:35:33 PM10/2/17
to Ansible Project
I have a way to do this, but am looking for improvements.

If I change the "forks =" setting in the ansible.cfg file, then this works exactly the way I want it to.  I don't mind creating a custom ansible.cfg file (ie ansible_1fork.cfg), but I don't yet see a way to call the playbook with the custom.cfg (I will be calling it via cron).
I tried "serial: 1", but I get too many emails.... I want just the one email.

Any ideas?

John Harmon

unread,
Oct 2, 2017, 6:50:41 PM10/2/17
to Ansible Project
I have it.... kind of ugly, but it works.  ANSIBLE_CONFIG is an environment variable I can work with.  I have to export it to get it to work.  I set it to what I need for this one playbook, and then set it back to the default after it is complete.


1 2 1 1-12/3 * export ANSIBLE_CONFIG="/etc/ansible/ansible_1fork.cfg"; ansible-playbook /playbooks/fetch_server_admins/fetch_server_admins.yml -e "host=myservers"; export ANSIBLE_CONFIG="/etc/ansible/ansible.cfg"
Reply all
Reply to author
Forward
0 new messages