如果路由器当前通过“ no ip sla 46”运行,则需要删除路由器上的IP SLA配置,但是,如果路由器当前不存在IP SLA配置,则剧本会失败。想法?
- name: Add IP SLA test
ios_config:
lines:
- udp-jitter 10.x.x.x source-ip {{ loopback }} codec g711ulaw
- tos 184
- tag Network Operation Center - G711ulaw EF VoIP
- frequency 180
parents: ip sla 46
before: no ip sla 46
答案 0 :(得分:0)
最后使用ios_command检查当前IP SLA配置并删除(如果存在)。
- name: Find current SLA 46 config
ios_command:
commands: 'show run | inc sla 46'
register: raw_sla_46
- set_fact:
sla_46: "{{ raw_sla_46.stdout[0] }}"
- name: Delete IP SLA 46 if present
ios_config:
lines:
- no ip sla 46
when: sla_46 == 'ip sla 46'
- name: Add IP SLA from Lo0 to DC
ios_config:
lines:
- udp-jitter 10.20.0.25 17000 source-ip {{ loopback }} codec g711ulaw
- tos 184
- tag Network Operation Center - CHA - G711ulaw EF VoIP
- frequency 180
parents: ip sla 46
答案 1 :(得分:0)
我也遇到同样的问题-我想更改NTP服务器,但是出于幂等的考虑,当我添加所需的服务器时,我想删除所有旧的/错误的服务器。在ansible中,应该有一种方法可以替换行-我不想使用before子句删除所有ntp配置,因为它具有破坏性的副作用。
当前配置
ntp server 10.10.10.10
所需的配置
ntp server 10.10.10.20
如果我使用ios_config命令为新服务器运行一本剧本,则最终会获得2台NTP服务器-这不是我想要的!