例如,在编辑配置文件时,/etc/sysctl.conf
以幂等方式进行更新通常很有用,这意味着如果多次执行脚本,您不会为所做的配置更改获得多个条目。
作为我遇到这种情况的真实实例,我需要在多阶段ansible
剧本中编辑上述文件。但问题是,如果后期失败,则需要重新运行playbook,这意味着更新命令可能会运行多次,如果更新不是幂等的,则会导致重复。
那么问题是如何以幂等方式更新此类配置文件?
非幂等更新的一个示例是:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
或在 ansible 中:
- name: Set swappiness setting
shell: echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
理想情况下,如果最初设置了变量的值,则应将其替换为新值。