Проверка 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 остановит обработку и будет ждать подсказки.

Другие вопросы по тегам