我有数百个运行捕获的ASA设备,但是这些设备和捕获的名称都不同。因此,我尝试使用Ansible登录每个设备并运行show capture命令,然后将捕获的变量名传递给Ansible,然后返回输入字符串: '没有捕获' 我可以在每个设备上运行Ansible脚本来运行“显示捕获”,但不确定如何使Ansible从每个设备上获取唯一变量,然后依次运行no capture命令。 我是否需要在这里与Ansible合作使用Python? 关于我如何做到这一点的任何指示,将不胜感激。
我已经运行了Ansible脚本来登录每个设备并获取捕获命令,但是无法确定如何将字符串更改为变量
答案 0 :(得分:0)
我会根据自己的意思在这里抢先回答-响应的格式,因为我认为响应的框架是正确的,在看到实际输出后可能需要进行调整
- ios_command:
commands:
- sh capture
register: the_caps
- ios_command:
commands: '{{ no_cap_commands }}'
vars:
no_cap_commands: >-
{{ the_caps.stdout |
select('match', '^capture ') |
map('regex_replace', '^capture ([^ ]+) .*', 'no capture \1') |
list }}
很显然,如果您只想关闭某些捕获,则必须调整select
来缩小捕获范围,否则要缩小到达该regex_replace
过滤器的列表。< / p>