如何在Cisco ASA上检查变量,然后将其删除

时间:2018-12-24 17:25:06

标签: python ansible

我有数百个运行捕获的ASA设备,但是这些设备和捕获的名称都不同。因此,我尝试使用Ansible登录每个设备并运行show capture命令,然后将捕获的变量名传递给Ansible,然后返回输入字符串: '没有捕获' 我可以在每个设备上运行Ansible脚本来运行“显示捕获”,但不确定如何使Ansible从每个设备上获取唯一变量,然后依次运行no capture命令。 我是否需要在这里与Ansible合作使用Python? 关于我如何做到这一点的任何指示,将不胜感激。

我已经运行了Ansible脚本来登录每个设备并获取捕获命令,但是无法确定如何将字符串更改为变量

1 个答案:

答案 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>