如何解决Ansible 从 stdout_lines 中提取值以在后续循环中使用
我正在尝试编写一个角色来删除 Cisco 路由器接口的所有帮助程序地址。 stdout_lines 中可以返回一个或多个帮助程序地址。我使用过滤器从行中删除标签和额外的转义符,并将结果放入一个数组中以在后续命令循环中使用。我似乎得到了正确的信息,但使用该值失败。 这是我的角色:
foo
---
- name: read helpers
register: helper_facts
ios_command:
commands:
- show ip interface {{ interface }} | section Helper
- set_fact:
helper_addr: []
- set_fact:
helper_addr: "{{ helper_addr }} + [ '{{ item | regex_replace ('Helper address.* ','') | trim }}' ]"
with_items: "{{ helper_facts.stdout_lines }}"
- name: remove helpers
ios_command:
commands:
- no ip helper-address {{ item }}
with_items: "{{ helper_addr }}"
解决方法
感谢 mdaniel 的评论,我找到了答案。我从一个更大的剧本中剪下这个,并省略了在 no helper_addres 命令之前设置接口的命令(“config t”、“int GigabitEthernet0/0/0”)。我的角色现在按预期工作。谢谢,我希望这对其他人有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。