微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ansible 从 stdout_lines 中提取值以在后续循环中使用

如何解决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 举报,一经查实,本站将立刻删除。