3 ms·
I see your viewpoint, but I personally feel that YAML is a much better solution. I don't want to run arbitrary code in my playbooks! I just want to be able to
by Lazare 11y ago
I see your viewpoint, but I personally feel that YAML is a much better solution. I don't want to run arbitrary code in my playbooks! I just want to be able to trigger ansible modules.
Besides, it's really easy to write your own Ansible module (in Python), which seems to solve the issue for any use case I can think of?
- davexunit 11y agoYou've never wanted to do something as simple as map over a list in your configuration to handle repetition?
- Spivak 11y agoYou're talking about eliminating duplicates in a list right? 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.
- davexunit 11y ago>You're talking about eliminating duplicates in a list right? 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?
- hakutsuru 11y agoI feel as though I do process lists via ansible. You could be less abstract and provide code. Otherwise, it is hard to take this complaint seriously. 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 }}"