我正在使用Ansible playbook配置服务器。我的剧本在第一次执行时正常工作,但是当我再次运行相同的剧本时,它会在服务器上的配置文件中创建重复行。
我正在使用lineinfile
模块。每次运行playbook时,以下任务示例都会添加该行。
- lineinfile: dest=/etc/pam_ldap.conf line="ssl off"
有没有办法避免这种情况,并保持幂等性。
答案 0 :(得分:1)
理论上 lineinfile
应该按预期工作。如果文件中尚不存在,则仅添加一行。
文件是符号链接吗?我没有看到Ansible不应该遵循该链接的原因,但也许这可能是它无法识别该行的原因。
您是否尝试添加regexp
参数?无论如何,这将是有意义的,以涵盖像ssl on
这样的行已存在的情况。
- lineinfile: dest=/etc/pam_ldap.conf
line="ssl off"
regexp="^ssl\s+"