gpt4 book ai didi

git - saltstack 项目的存储库结构

转载 作者:太空狗 更新时间:2023-10-29 12:55:16 24 4
gpt4 key购买 nike

我正在开始一个新项目,我想使用 SaltStack用于管理跨越多个数据中心的大型部署。一切都在 Linux 上运行。我以前有过 Chef 的经验但我对SaltStack比较陌生.我的目标是将整个项目保存在一个单一的 git 存储库中,并让 SaltStack 从该存储库中提取配置并将其应用于 minions。似乎 SaltStack 没有版本控制的概念,但在存储库中提供来自不同分支的内容会更好。所以,我想创建一个具有以下结构的 git 存储库:

salt -+- config (for salt-master config files)
+- states
+- pillars
+- reactors
+- formulas

并为 dev 使用不同的分支, qaprod环境。我也想用 pillars用于提供数据中心特定配置,我想使用 GitFS将所有内容粘合在一起。

但是,有那些讨厌的top.sls以非常特殊的方式处理的文件不适合这张图片,最终打破了这个概念。

我还想将配置文件保留在这个存储库中,但我现在没有更好的主意,只能手动将它们复制或符号链接(symbolic link)到 /etc/salt 下。来自 config目录。

我多次查阅文档并在模拟环境中进行了一些实验,但我还没有想出任何合理的项目布局,所以我联系了 stackoverflow 社区。

我的问题是:

  1. 有人可以分享他们成功用于管理类似环境的存储库结构和配置吗?
  2. 有人想出维护配置文件的好方法吗?

最佳答案

听起来您正朝着合理的方向前进。我们没有像您那样大的操作(例如,我们还没有使用多个环境,只是 base;我们没有使用 react 器等),但是我们有与我们的主要州仓库类似的布局。

以下是我们采用的一些做法:

自部署

我们使用 Fabric 脚本将配置和更新的状态/支柱从存储库部署到 salt-master。 Fabric 脚本还具有使用 salt-minion 引导新机器并自动与 master 进行 key 交换的任务。

我想我们可以使用 GitFS,但我在设置它和可靠地应用更新的变更集时遇到了一些麻烦。理论上,你可以引导 salt 来部署它自己,但在实践中,一个单独的、有限的部署过程已经足够好了。

隔离的 secret

我们将所有“ secret ”作为支柱文件保存在单独的存储库中,以使它们远离我们的主存储库。我们的部署脚本会检查这些并将它们部署到我们在 salt-master 上的/srv/pillar 树中的正确位置。这使我们能够将敏感数据(密码、 key 对等)保存在我们的主存储库之外。我们使用 salt 在开发人员机器上配置 Vagrant VM,因此“开发 secret ”存储在主存储库中。

关于git - saltstack 项目的存储库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com