如何使用 "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。

看看Ansible Network FAQ