Ansible 检查文件是否被 ansible-vault 加密

Ansible check if file is encrypted by ansible-vault

我需要使用 ansible-vault 加密文件。我只想在文件尚未被 ansible vault 加密的情况下执行加密。我正在尝试在我的 Ansible 剧本中使用此任务:

- local_action: command
    ansible-vault encrypt path/to/file
  when: <when file is not already encrypted by ansible-vault>

条件语句中是否有逻辑可用于检查文件是否已被 ansible-vault 加密?

可能有无数种方法可以做到这一点,但都与 Ansible 和 Ansible Vault 本身关系不大。这是一个:

- local_action: shell
    head -1 {{ file }} | grep -v -q $ANSIBLE_VAULT && ansible-vault encrypt {{ file }}

您还需要 --vault-password-file 否则 Ansible 将停止处理并等待提示。