Есть список портов, которые я хочу запросить на двух разных коммутаторах, но из списка несколько портов доступны на первом коммутаторе, а несколько портов доступны на втором коммутаторе.
и когда я запускаю playbook несколько порты становятся успешными, и несколько портов игнорируются, и все, что было успешным, должно быть сохранено в переменной ... как мне это сделать, вот моя задача playbook.
- set_fact:
fact1: "{{ maclist1 | json_query('json.facts_hash') }}"
- set_fact:
swport_list: "{{ my_keys| map('extract', fact1)| list }}"
vars:
my_keys: "{{ fact1.keys()| select('match', '^lldp_neighbor_portid_(.*)$') | list }}"
- name: Query the port on the switch
ios_command:
commands: show lldp neighbors {{ item }} | in fdi
with_items: "{{ swport_list }}"
ignore_errors: yes
register: port_array_result
Выход в режиме отладки Playbook ---
ok: [10.10.10.177] => (item=Gi1/0/21) => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"ansible_loop_var": "item",
"changed": false,
"invocation": {
"module_args": {
"auth_pass": null,
"authorize": null,
"commands": [
"show lldp neighbors Gi1/0/21 | in fdi"
],
"host": null,
"interval": 1,
"match": "all",
"password": null,
"port": null,
"provider": null,
"retries": 10,
"ssh_keyfile": null,
"timeout": null,
"username": null,
"wait_for": null
}
},
"item": "Gi1/0/21",
"stdout": [
"fdi Gi1/0/21 106 S ac1f.6bc8.e8ce"
],
"stdout_lines": [
[
"fdi Gi1/0/21 106 S ac1f.6bc8.e8ce"
]
]
}
The full traceback is:
WARNING: The below traceback may *not* be related to the actual failure.
File "/tmp/ansible_ios_command_payload_jsyA3V/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", line 135, in run_commands
return connection.run_commands(commands=commands, check_rc=check_rc)
File "/tmp/ansible_ios_command_payload_jsyA3V/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", line 185, in __rpc__
raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
failed: [10.10.10.177] (item=4) => {
"ansible_loop_var": "item",
"changed": false,
"invocation": {
"module_args": {
"auth_pass": null,
"authorize": null,
"commands": [
"show lldp neighbors 4 | in fdi"
],
"host": null,
"interval": 1,
"match": "all",
"password": null,
"port": null,
"provider": null,
"retries": 10,
"ssh_keyfile": null,
"timeout": null,
"username": null,
"wait_for": null
}
},
"item": "4",
"msg": "show lldp neighbors 4 | in fdi\r\nshow lldp neighbors 4 | in fdi\r\n ^\r\n% Invalid input detected at '^' marker.\r\n\r\nbmass-mgmt#"
}
...ignoring
Примечание: в приведенном выше игнорировании элемента вывода не удалось, потому что порт номер 4 отсутствует на этом коммутаторе.