We are trying to write Ansible playbooks for releasing patches for an application
In patch releases there are 4 basic changes that can be there We will create 4 roles for those BinaryRole : For changing war files and jar files with backup and replacing the existing configurations ConfigRole: For adding / deleting / modifying parameters from the configuration files with backup DBRole : For changes related to DB . SQL source file will be used NonCompile: For replacing static files like JSPs or Resource_Properties While working on the ConfigRole I am using the dictionary variables for defining files and parameters will require change in those files The parameters can be either added or modified or removed from the config file Below is the dictionary variable that I have defined and the corresponding task that I have used that variable in *Inside group_vars file* configFiles: /home/BM/apache-tomcat-8.0.35/webapps/OBDReport/WEB-INF/classes/COMMON.properties: paramName: DB_USER paramValue: dbansible change: 3 *Inside playbook in ConfigRole* - name: change configurations modified lineinfile: dest={{ item.key }} regexp='^{{ item.value.paramName }}=' line={{ item.value.paramName }}={{ item.value.paramValue }} when: "{{ item.value.change }}|int==3" with_dict: "{{ configFiles | default({}) }}" - name: change configurations added lineinfile: dest={{ item.key }} line={{ item.value.paramName }}={{ item.value.paramValue }} when: "{{ item.value.change }}|int==2" with_dict: "{{ configFiles | default({}) }}" In the above task based on the change value parameters will be modified for value 3 and added for value 2 While looping over the dictionary configFiles: ansible is able to read only one value of every key Here key is /home/BM/apache-tomcat-8.0.35/webapps/OBDReport/WEB-INF/classes/COMMON.properties and value is the set of values (paramName , paramValue, change ) If there are multiple parameters in the same file which require change then how do we define those in the group_vars file and how to loop through the same in the task file in the role If I write the vars as below configFiles: /home/BM/apache-tomcat-8.0.35/webapps/OBDReport/WEB-INF/classes/COMMON.properties: paramName: DB_USER paramValue: dbansible change: 3 paramName: DB_USER_1 paramValue: dbansible1 change: 2 Then it will only read the last set of values for each key. Please help in resolving this or suggest if we can use some other approach Thanks in advance, Mona G -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/9b0e4896-bea1-4adb-aafe-099614f13390%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.