Проверка Ansible, если файл зашифрован с помощью ansible-vault
Мне нужно зашифровать файл с помощью ansible-vault
, Я хотел бы выполнить шифрование только в том случае, если файл еще не зашифрован с помощью хранилища ansible. Я пытаюсь использовать эту задачу в моей книге пьес Ansible:
- local_action: command
ansible-vault encrypt path/to/file
when: <when file is not already encrypted by ansible-vault>
Есть ли логика для использования в условном выражении, которое проверит, не зашифрован ли файл ansible-vault
?
1 ответ
Решение
Вероятно, существует множество способов сделать это, причем все они имеют мало общего с Ansible и Ansible Vault. Вот один из них:
- local_action: shell
head -1 {{ file }} | grep -v -q \$ANSIBLE_VAULT && ansible-vault encrypt {{ file }}
Вам также понадобится --vault-password-file
в противном случае Ansible остановит обработку и будет ждать подсказки.