I am trying to connect to an host which is nothing but an cisco ios switch which I get by executing an powershell script. So basically the switch is output from an xml string from an powershell script. I am able to successfully receive the switch name from Ansible output. Now my question is how do I connect to the switch and see the details of the switch using show commands.
This my playbook:
hosts: localhost connection: local tasks: - name: Parse the XML output xml: xmlstring: "{{ hostvars[groups['win'][0]]['splat']['stdout'] }}" xpath: "/HostDiscovery/Host/Connection/NetworkDevice[Candidate='true' and Uplink='false']/DeviceName" content: text register: data - debug: msg: "{{ item.DeviceName }}" with_items: "{{ data.matches }}" This will give an output as follows
TASK [debug] ************************************************************************************************************************************************ task path: /etc/ansible/splat_executeps_script.yml:21 ok: [localhost] => (item={u'DeviceName': u'abc'}) => { "msg": "abc" } where abc is the host to which I need to connect to in the subsequent task in the same playbook. I have tried writing something as below in the same yaml file
hosts: "{{ item.DeviceName }}" connection: network_cli tasks: - name: Show VLAN ios_command: commands: - show vlan brief | include {{id}} - show interfaces {{interface}} status register: vlan - debug: var=vlan.stdout_lines with_items: "{{ data.matches }}" But this does not run and gives the below error:
META: ran handlers ERROR! The field 'hosts' has an invalid value, which includes an undefined variable. The error was: 'item' is undefined The error appears to have been in '/etc/ansible/splat_executeps_script.yml': line 27, column 3, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: hosts: "{{ item.DeviceName }}" ^ here How can I correct the details, any help would be appreciated? Please note that the device which I am trying to connect in the subsequent task would be dynamically generated by the xml which is returned from PS script.