Hi all, I have a problem when I try to loop over dictionary. I need the execution of loop only occurs when the conditional is met but I can’t get it.
This is my dictionary:
---
remediation_scripts:
- name: "Configure SMB driver"
path: "HKEY_LOCAL_MACHINE\\XX\\XX\\XX\\XX"
r_value: "Start"
type: "Dword"
value: "4"
- name: "Allow ICMP"
path: "HKEY_LOCAL_MACHINE\\XX\\XX\\XX\\XX\\XX"
r_value: "Disabled"
type: "Dword"
value: "0"
- name: "Allow TCP"
path: "HKEY_LOCAL_MACHINE\\XX\\XX\\XX\\XX\\XX"
r_value: "Disabled"
type: "Dword"
value: "0"
This is my playbook:
---
- name: Get remediation script for HC
hosts: localhost
gather_facts: false
become: false
vars_files:
- dict_hc.yml
vars_prompt:
- name: "rm_name"
prompt: "Ingresar nombre de remediacion a ejecutar"
private: no
tasks:
- name:
set_fact:
list_name: "{{ rm_name.split(',') }}"
- name: Execute powershell
win_shell: "Set-GPRegistryValue {{ item.name }}" -Key "{{ item.path }}" -ValueName "{{ item.r_value }} -Value {{ item.value}}"
loop: "{{ remediation_scripts }}"
when: -- Don't know how to put this conditional
I need when the user enter for example: “Configure SMB driver” and “Allow ICMP” the loop only execute gettin the data of this two items.
I Hope you can help me with this.
Thanks in advance.