ansible - 使用 ansible-vault 部署敏感数据
问题描述
我想使用 Ansible 和 Ansible-Vault 部署一个包含敏感数据的 docker-compose 应用程序。Ansible 将存储库克隆到服务器,将其移动到适当的位置并启动 Docker 容器。该应用程序在 docker-compose.yaml 文件的子路径中包含带有环境变量的敏感文件。
如何隐藏文件的敏感部分,同时保持其余部分完好无损?我知道,变量可以使用 ansible-vault 加密并在 Ansible 内部调用,但我需要在服务器上以明文形式使用它们。还是有其他方法?
基本上我想在 docker-compose 应用程序的存储库中留下尽可能多的信息,并且只使用 Ansible 部署敏感数据。我想简单地将所有环境文件放在 Ansible 中并加密敏感部分,但这个解决方案将信息拆分到两个我不喜欢的存储库中。
解决方案
docker-compose 文件支持从文件中读取环境变量,因此,我猜您可能只想按原样复制 docker compose 文件,该文件仅包含明文,然后写出包含使用加密的秘密的环境文件ansible-Vault
给定一个码头工人组成大约:
services:
hello:
image: busybox
env_file:
- /run/hello.env
那么剧本看起来像:
tasks:
- copy:
dest: /run/hello.env
content: |
SUPER_SEKRIT={{ the_vaulted_value }}
mode: '0600'
我实际上并没有尝试过这个特定的解决方案,所以这就是我说“类似”的原因......
推荐阅读
- vb.net - 此代码是否有更好的循环机制,不会引发代码分析警告?
- video - 当两个来源都可用时,VideoJS 如何确定何时使用 HLS 和 MP4 视频?
- cassandra - 无论如何在非主键上的 NoSQL 命令中使用 LIKE 吗?
- typescript - 向任何函数添加回调参数
- flutter - 我怎样才能将数据发送到另一个页面/小部件?
- python - 在numpy中基于每行索引设置指标
- java - 如何自动填写相关实体ID?
- python-3.x - Numpy索引过滤改变多个变量
- freemarker - Freemarker 找不到模板
- swift - 我应该将与 UI 无关的进程放在哪里