通过Docker运行ANSIBLE时处理ANSIBLE\u VAULT\u密码\u文件的最优雅方式?

通过Docker运行ANSIBLE时处理ANSIBLE\u VAULT\u密码\u文件的最优雅方式?,docker,ansible,containers,Docker,Ansible,Containers,作为持续集成管道的一部分,我正在致力于将Ansible剧本的运行方式进行容器化。今天,我们已经安装了Ansible的专用构建服务器,但我想用Docker将其抽象出来。我想弄清楚的是,当从容器中运行时,如何处理Ansible Vault的秘密 在构建服务器上,我们有一个包含Vault机密的文件,与指向它的ANSIBLE\u Vault\u PASSWORD\u文件环境文件一样。在Dockerfile中处理此文件以使其成为通用文件的最优雅方式是什么 我当前的草稿如下所示: FROM ansible/

作为持续集成管道的一部分,我正在致力于将Ansible剧本的运行方式进行容器化。今天,我们已经安装了Ansible的专用构建服务器,但我想用Docker将其抽象出来。我想弄清楚的是,当从容器中运行时,如何处理Ansible Vault的秘密

在构建服务器上,我们有一个包含Vault机密的文件,与指向它的
ANSIBLE\u Vault\u PASSWORD\u文件
环境文件一样。在Dockerfile中处理此文件以使其成为通用文件的最优雅方式是什么

我当前的草稿如下所示:

FROM ansible/ansible:ubuntu1604

ENV ANSIBLE_HOST_KEY_CHECKING false
ENV ANSIBLE_VAULT_PASSWORD_FILE ~/vault.txt

WORKDIR /var/AnsiblePlaybooks

RUN pip install \
    ansible \
    pywinrm  \
    pysphere \
    pyvmomi \
    kazoo

ENTRYPOINT ["ansible-playbook"]
CMD ["--version"]
我计划通过卷容器之类的东西传递剧本,并在运行时覆盖
CMD
。 所以我这里唯一的例子是如何使用
ANSIBLE\u VAULT\u PASSWORD\u文件
文件?我可以从“secret”变量(如Docker或Kubernetes Secrets)在运行时编写它,但我不确定如何才能最优雅地完成

供参考:
version: '3.4'
services:
  ansible:
    image: myansibleimage
    environment:
      ANSIBLE_VAULT_PASSWORD_FILE: /vault/YOUR_VAULT_FILENAME
    volumes:
      - /path/on/host/of/vault/dir:/vault