在所有服务器中,我们都有一些.env文件,这些文件会在启动时设置服务器(Node.JS)的配置。
现在,我想从管理窗格(另一个Web服务,通过API与主服务器一起使用)中编辑此文件。 有什么最佳实践或好的主意,我该如何实现呢?
第一个想法-在实例上创建另一个Web服务器,该Web服务器将只有两个API端点(读,写),并且在编辑配置后将重新启动服务器。这个想法看起来太沉重了。
第二个想法是创建bash脚本,该脚本将向管理服务器发送请求以进行实际配置,并在发现一些更改的情况下重写本地.env文件,但是这里会出现很多不必要的请求。 (每分钟请求一次,但配置每月会更改1次)。
您怎么看?有什么想法吗?
答案 0 :(得分:1)
您有两种选择,这主要取决于您的部署策略。
如果您具有分布式环境和/或您的配置经常更改(即:运行多个docker容器,旋转键等),我强烈建议您使用K / V存储并在应用程序期间动态读取配置开始。查看HashiCorp Vault,etcd甚至mongodb。
如果您的配置包含敏感数据,请绝对使用HashiCorp Vault之类的东西。如果您使用诸如ansible之类的配置工具,则该工具具有ansible-vault
可以对您的秘密进行加密,并在部署期间对其进行解密。
我强烈建议不要在版本控制中存储(甚至可能是)敏感数据,例如api密钥,令牌等。这是一个相当大的攻击媒介,它将带领您走上黑暗之路。
最坏的情况是使用环境变量。几乎所有CI / CD工具都支持这些工具,您可以将关注点分离。