我想使用Ansible和Ansible-Vault部署一个包含敏感数据的docker-compose应用程序。Ansible将存储库克隆到服务器,将其移动到适当的位置,并启动Docker容器。该应用程序包含环境变量位于docker-compose.yaml文件的子路径中的敏感文件。
如何隐藏文件中的敏感部分,而保持其余部分不变?我知道,变量可以使用ansible-vault加密,并在Ansible内部调用,但我需要在服务器上以明文形式调用它们。还是有别的办法?
基本上,我希望在docker-compose应用程序的存储库中保留尽可能多的信息,并且只使用Ansible部署敏感数据。我想简单地将所有环境文件放在Ansible中,并加密敏感部分,但这个解决方案将信息分割到两个存储库中,这是我不喜欢的。
发布于 2020-10-03 10:42:49
docker-compose文件支持reading environment variables from a file,因此,我猜您可能只想按原样复制docker撰写文件,该文件只包含明文,然后写出包含使用ansible-vault加密的秘密的环境文件
给定一个包含以下内容的docker:
services:
hello:
image: busybox
env_file:
- /run/hello.env那么剧本应该看起来像这样:
tasks:
- copy:
dest: /run/hello.env
content: |
SUPER_SEKRIT={{ the_vaulted_value }}
mode: '0600'我实际上没有尝试过这个具体的解决方案,所以这就是为什么我说“像这样”的原因。
https://stackoverflow.com/questions/64175865
复制相似问题