我正在学习使用 Salt Stack 将我的 Python 应用程序部署到 AWS 上的各个生产阶段。目前,我的所有源代码和 salt 状态都保存在一个大型存储库中。
将 Minion 状态文件与源文件一起保存是否有任何实际或安全方面的考虑?或者我应该将它们分开,为什么?
如果我确实将我的状态文件移动到单独的 salt-states 存储库,那么我应该将我的配置文件保存在哪里master
,minion
或者它们不属于版本控制?
答案1
皮特,
因此,在将配置和代码放在一起时,需要注意一些事项。假设您使用 git 进行部署,这意味着您的所有代码和配置文件都将发送到每台服务器。如果您的 git 未设置为只读,那么进入您其中一台机器的人就可以使用一个小漏洞来编辑配置,这将帮助他们访问您的所有机器。
我知道有人将 ssh 密钥放在部署存储库中,这样他们就可以轻松启动新的 salt 服务器或 puppet 或他们使用的任何东西。同样,将应用程序和配置部署到每台服务器的问题意味着您再次将密钥交给了王国,这取决于您是否在所有服务器上执行此操作,并且 ssh 密钥也在那里。
我设置了部署系统,使用只读 git 用户部署代码,并将配置与所有服务器分开,只向每台服务器提供其所需的配置文件。每台服务器都有只读 git 帐户的私钥。我还设置了每次部署时都会自动轮换所有服务器的公钥。