Ответ
Задача должна быть идемпотентной — при повторном выполнении она не должна вызывать ошибку, а должна корректно обработать ситуацию отсутствия файла, сообщив, что действие не требуется.
Примеры:
Ansible:
- name: Ensure file is absent
ansible.builtin.file:
path: /tmp/example.txt
state: absent
- Первый запуск:
"changed": true(файл удален). - Второй запуск:
"changed": false(файл уже отсутствует, состояние достигнуто).
Bash-скрипт:
FILE="/tmp/example.txt"
if [[ -f "$FILE" ]]; then
rm "$FILE"
echo "File deleted."
else
echo "File already absent. No action needed."
fi
Почему это важно: Идемпотентность — ключевой принцип DevOps для безопасного и повторяемого выполнения задач, особенно в рамках конфигурационного управления (Ansible, Terraform) и CI/CD пайплайнов.