如何为连续部署管理环境变量

问题描述 投票:8回答:4

因此,如今,一种常见的做法是将连接字符串和密码作为环境变量,以避免将它们放入文件中。这一切都很好,但我不确定如何尝试使用某些配置管理工具(例如Salt / Ansible或Chef / Puppet)设置连续部署工作流时如何使这项工作正常进行。

具体来说,在使用上述配置管理工具的环境中,我有以下问题:

  1. 您将连接字符串/密码/密钥与代码库分开存储在哪里?
    • 您是否将这些项目保留在某种类型的代码存储库(git等)中?
    • 您是否使用工具内置的某种结构?
  2. 如何保护这些相同物品的安全?
  3. 您是否跟踪更改/备份这些项目,如果是,如何?
automation continuous-integration chef puppet ansible
4个回答
2
投票

在主厨中可以

  1. 将密码或API令​​牌存储在encrypted data bags中或使用chef-vault。然后在厨师进行配置时将它们解密(使用共享机密使用加密的数据袋,使用厨师客户端的现有PKI使用厨师库)。
  2. 使用例如environment参数调用外部软件时设置环境变量execute resource
  3. 不确定,在这里写些什么-我想说你不是真正地管理他们。这样,您只为需要它的命令设置变量,而不是例如对于整个厨师运行。

0
投票

使用木偶,首选方法可能是将机密存储在Hiera文件中,这些文件只是普通的YAML文件。这意味着所有机密都与清单文件分开存储在主服务器上。


0
投票

truecrypt虚拟加密磁盘是跨平台的,并且与工具无关。对其进行读写安装,以更改其包含的文件中的秘密,将其卸载,然后将加密的磁盘映像提交/推送到版本控制中。挂载只读以实现自动化。


0
投票

ansible-vault可用于加密敏感数据文件。但是,像Jenkins这样的CI服务器并不是存储访问凭据的最安全的地方。如果添加Hashicorp Vault和Ansible Tower / AWX,则可以为多个团队提供安全的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.