ansible playbook 中的幂等性
Idempotency in ansible playbook
我正在使用 Ansible 剧本配置服务器。我的剧本在第一次执行时工作正常,但是当我再次 运行 相同的剧本时,它会在服务器的配置文件中创建重复行。
我正在使用 lineinfile
模块。每次我 运行 剧本时,以下任务示例都会添加该行。
- lineinfile: dest=/etc/pam_ldap.conf line="ssl off"
有没有办法避免这种情况,并保持幂等性。
理论上 lineinfile
应该可以如您所愿地工作。只有在文件中不存在的行才会被添加。
文件是symlink吗?我看不出 Ansible 不应该遵循 link 的原因,但也许这可能是它无法识别该行的原因。
您是否尝试添加 regexp
参数?无论如何,涵盖像 ssl on
这样的行已经存在的情况。
- lineinfile: dest=/etc/pam_ldap.conf
line="ssl off"
regexp="^ssl\s+"
我正在使用 Ansible 剧本配置服务器。我的剧本在第一次执行时工作正常,但是当我再次 运行 相同的剧本时,它会在服务器的配置文件中创建重复行。
我正在使用 lineinfile
模块。每次我 运行 剧本时,以下任务示例都会添加该行。
- lineinfile: dest=/etc/pam_ldap.conf line="ssl off"
有没有办法避免这种情况,并保持幂等性。
理论上 lineinfile
应该可以如您所愿地工作。只有在文件中不存在的行才会被添加。
文件是symlink吗?我看不出 Ansible 不应该遵循 link 的原因,但也许这可能是它无法识别该行的原因。
您是否尝试添加 regexp
参数?无论如何,涵盖像 ssl on
这样的行已经存在的情况。
- lineinfile: dest=/etc/pam_ldap.conf
line="ssl off"
regexp="^ssl\s+"