如何使用 "match" 和 "replace" 幂等 Ansible 剧本创建?
How create with "match" and "replace" idempotent Ansible playbook?
我正在尝试为我们的 Cisco 交换机创建幂等剧本,我阅读了很多文档,但这里一定有我遗漏的东西...
我有一个剧本,我在其中调用了我需要设置交换机端口的角色:
/etc/ansible/playbook.yml
...
roles:
...
- role: set_acc_switchports
access_ports: g1/0/1 - 2
/etc/ansible/roles/set_acc_switchports/tasks/main.yml:
- name: Set switchports to default
ios_config:
lines:
- switchport access vlan 169
- switchport mode access
- switchport port-security
parents: interface range {{ access_ports }}
match: strict
replace: line
事情是这样的:它设置了端口,但是当我再次 运行 剧本时,虽然已经有了完全相同的配置(而且只有那个配置),但输出始终是这个角色已经改变一些东西,而不仅仅是好的:
...
TASK [set_acc_switchports : Set switchports to default] *****************************************************************************
changed: [Switch]
PLAY RECAP ***********************************************************************************************************************
Switch: ok=2 changed=1 unreachable=0 failed=0
我尝试调整匹配并替换参数,但没有成功。非常感谢您的帮助,谢谢。
可能是因为你使用了缩写commands/names。
我正在尝试为我们的 Cisco 交换机创建幂等剧本,我阅读了很多文档,但这里一定有我遗漏的东西...
我有一个剧本,我在其中调用了我需要设置交换机端口的角色:
/etc/ansible/playbook.yml
...
roles:
...
- role: set_acc_switchports
access_ports: g1/0/1 - 2
/etc/ansible/roles/set_acc_switchports/tasks/main.yml:
- name: Set switchports to default
ios_config:
lines:
- switchport access vlan 169
- switchport mode access
- switchport port-security
parents: interface range {{ access_ports }}
match: strict
replace: line
事情是这样的:它设置了端口,但是当我再次 运行 剧本时,虽然已经有了完全相同的配置(而且只有那个配置),但输出始终是这个角色已经改变一些东西,而不仅仅是好的:
...
TASK [set_acc_switchports : Set switchports to default] *****************************************************************************
changed: [Switch]
PLAY RECAP ***********************************************************************************************************************
Switch: ok=2 changed=1 unreachable=0 failed=0
我尝试调整匹配并替换参数,但没有成功。非常感谢您的帮助,谢谢。
可能是因为你使用了缩写commands/names。