如何为分子测试指定一个保险库密码文件?

how to specify a vault password file to molecule test?

当运行用分子测试时:

molecule tests

并且某些文件受 ansible vault 保护,必须指定 --vault-password-file 以提供解密其内容的密码。

尽管可以使用 converge

做到这一点
 molecule converge -- --vault-password-file ~/.vault.txt

分子测试失败

 $ molecule test -- --vault-password-file ~/.vault.txt
 Usage: molecule test [OPTIONS]
 Error: Got unexpected extra arguments (--vault-password-file ~/.vault.txt)

像这样使用 ANSIBLE_VAULT_PASSWORD_FILE 环境变量:

ANSIBLE_VAULT_PASSWORD_FILE=$HOME/.vault.txt molecule test

将绕过分子参数解析逻辑并让 ansible 知道保险库密码所在的位置。

您可以通过 molecule.yml 文件中的 provisioner.config_options.defaults.vault_password_file 将密码文件传递给 molecule,如下所示:

provisioner:
name: ansible
config_options:
  defaults:
    vault_password_file: "${MOLECULE_SCENARIO_DIRECTORY}/vault.pw"

其中 vault.pw 是一个仅包含您的密码的纯文本文件(确保它得到妥善保护!)

保管库密码文件是直接传递给 Ansible 的选项,定义为 here