我们是一个 2 人团队,使用 puppet/Hiera 管理 20 台服务器。到目前为止,我们在开发清单时还没有使用过任何 VCS。
我在 puppetmaster 上配置了一个远程 Git 存储库,并将我们的清单和模块文件夹推送到主分支(用于开发)并推送了一个相同的生产分支。远程仓库有一个发布后挂钩,它根据分支名称(或更新,如果存在)配置新环境,并且 puppetmaster 配置了动态环境以使其能够工作。这个配置在puppet 博客上有详细讨论。
我们的工作流程是让我们每个人都在本地主分支上开发,当我们准备好测试时,我们提交,然后推送,发布后挂钩更新开发环境。然后,我们可以使用puppetd --test --environment development
. 如果一切都按预期工作,那么我们中的任何一个都可以将开发分支合并到生产中并推送它再次更新生产环境。
问题
- 这是使用 Git 和 Puppet 的最佳工作流程吗?
- 我们如何实际测试开发环境。我们有可以使用的备用服务器,但是我们是否使用与节点声明中指定的生产服务器相同的主机名来配置它们?如果我们这样做,那么来自 Hiera 的某些节点特定数据(例如 IP 地址)将是错误的。还是我们使用--environment development 开关在生产服务器上进行测试并使用--noop?
任何建议将不胜感激。