Ao editar arquivos de configuração, como /etc/sysctl.conf
por exemplo, muitas vezes é útil fazer a atualização de forma idempotente, o que significa que se o script for executado várias vezes, você não terá várias entradas para a alteração de configuração feita.
Como uma instância do mundo real onde encontrei isso, preciso editar o arquivo acima no ansible
manual de vários estágios. Mas o problema é que se o estágio posterior falhar, o manual precisará ser executado novamente, o que significa que o comando de atualização poderá ser executado várias vezes, causando duplicação se a atualização não for idempotente.
Então a questão é como você pode atualizar esses arquivos de configuração de forma idempotente?
Um exemplo de atualização não idempotente seria:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
ou em ansible:
- name: Set swappiness setting
shell: echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
Idealmente, se o valor da variável for inicialmente definido, ele deverá ser substituído por um novo valor.