在ansible剧本中的幂等性

时间:2015-02-12 10:25:37

标签: ansible ansible-playbook idempotent

我正在使用Ansible playbook配置服务器。我的剧本在第一次执行时正常工作,但是当我再次运行相同的剧本时,它会在服务器上的配置文件中创建重复行。 我正在使用lineinfile模块。每次运行playbook时,以下任务示例都会添加该行。

- lineinfile: dest=/etc/pam_ldap.conf line="ssl off"

有没有办法避免这种情况,并保持幂等性。

1 个答案:

答案 0 :(得分:1)

理论上 lineinfile应该按预期工作。如果文件中尚不存在,则仅添加一行。

文件是符号链接吗?我没有看到Ansible不应该遵循该链接的原因,但也许这可能是它无法识别该行的原因。

您是否尝试添加regexp参数?无论如何,这将是有意义的,以涵盖像ssl on这样的行已存在的情况。

- lineinfile: dest=/etc/pam_ldap.conf
              line="ssl off"
              regexp="^ssl\s+"