因此,如今,一种常见的做法是将连接字符串和密码作为环境变量,以避免将它们放入文件中。这一切都很好,但我不确定如何尝试使用某些配置管理工具(例如Salt / Ansible或Chef / Puppet)设置连续部署工作流时如何使这项工作正常进行。
具体来说,在使用上述配置管理工具的环境中,我有以下问题:
在主厨中可以
environment
参数调用外部软件时设置环境变量execute resource。使用木偶,首选方法可能是将机密存储在Hiera文件中,这些文件只是普通的YAML文件。这意味着所有机密都与清单文件分开存储在主服务器上。
truecrypt虚拟加密磁盘是跨平台的,并且与工具无关。对其进行读写安装,以更改其包含的文件中的秘密,将其卸载,然后将加密的磁盘映像提交/推送到版本控制中。挂载只读以实现自动化。
ansible-vault可用于加密敏感数据文件。但是,像Jenkins这样的CI服务器并不是存储访问凭据的最安全的地方。如果添加Hashicorp Vault和Ansible Tower / AWX,则可以为多个团队提供安全的解决方案。