You've never wanted to do something as simple as map over a list in your configuration to handle repetition?
my_list | unique
I think this is what you're looking for. Any transformation of data that can't be done with the standard filters can be done with a simple filter plugin written in python.No, I'm talking about any atbitrary list processing operation. Some combination of map, fold, and filter, for example.
So, in order to do that in an Ansible playbook, I need to write a Python function to do it and use it in the YAML file as a filter because the DSL isn't expressive enough to do it on its own. So... why wouldn't I want to just use Python again?
Here we install Jenkins jobs....
- name: create the job config.xml files
sudo: true
template:
src={{ item }}
dest={{ conf_jenkins_home }}/jobs/{{ item | basename | replace(".xml.j2", "") }}/config.xml
owner=jenkins
group=jenkins
mode=0600
with_fileglob:
- ../templates/jobs/*
notify: restart Jenkins
And install SonarQube plugins... - name: install sonar plugins
sudo: true
get_url:
url={{ item.value.url }}
dest=/opt/sonarqube/extensions/plugins
owner={{ ansible_ssh_user }}
group={{ ansible_ssh_user }}
mode=0755
with_dict: "{{ sonarqube_plugins }}"