在ansible剧本中的幂等性

yog*_*agr 5 idempotent ansible ansible-playbook

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

- lineinfile: dest=/etc/pam_ldap.conf line="ssl off"
Run Code Online (Sandbox Code Playgroud)

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

udo*_*dan 1

理论上 lineinfile应该按您的预期工作。仅当文件中尚不存在该行时才会添加该行。

该文件是符号链接吗?我不明白 Ansible 不应该遵循该链接的原因,但这可能是它无法识别该行的原因。

您是否尝试添加regexp参数?无论如何,涵盖ssl on已经存在类似行的情况都是有意义的。

- lineinfile: dest=/etc/pam_ldap.conf
              line="ssl off"
              regexp="^ssl\s+"
Run Code Online (Sandbox Code Playgroud)