首页 > 解决方案 > 使用 ansible-vault 部署敏感数据

问题描述

我想使用 Ansible 和 Ansible-Vault 部署一个包含敏感数据的 docker-compose 应用程序。Ansible 将存储库克隆到服务器,将其移动到适当的位置并启动 Docker 容器。该应用程序在 docker-compose.yaml 文件的子路径中包含带有环境变量的敏感文件。

如何隐藏文件的敏感部分,同时保持其余部分完好无损?我知道,变量可以使用 ansible-vault 加密并在 Ansible 内部调用,但我需要在服务器上以明文形式使用它们。还是有其他方法?

基本上我想在 docker-compose 应用程序的存储库中留下尽可能多的信息,并且只使用 Ansible 部署敏感数据。我想简单地将所有环境文件放在 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'

我实际上并没有尝试过这个特定的解决方案,所以这就是我说“类似”的原因......


推荐阅读