我正在尝试理解 Puppet,以便能够调整我们的自动构建/部署过程。
我现在缺少的一件事是机器可以处于的“状态”的概念:如果我理解正确的话,Puppet 假设有一个最终的期望状态,并且它会尽一切努力达到并维持它。
但是,假设我希望根据我正在处理的系统部分(我是一名开发人员)使系统处于不同的状态:也许在某个时候我希望我的 Riak 集群与我们所有的服务应用程序一起启动并运行。但是我可能正在修复一个只影响系统 UI 的错误 - 我不需要完整的 Riak 集群或一些后端机器。目前我们的构建/部署要么全部有,要么全部没有。
我读过有关“阶段”的概念,但我认为这不是我想要的。有没有办法在 Puppet 中实现“状态”?
附言:我第一次在谷歌搜索“傀儡国家”时大笑起来。这不是我想要的:)
答案1
正如迈克尔·汉普顿在评论中提到的,环境可能是你想要的,但你可能还想要类似的东西角色和简介。使用角色和配置文件模式,您可以将配置文件应用于主机,该主机将其设置为提供一组定义的功能。因此,在您的案例中,我会想象您拥有描述您的机器将处于的各种“状态”的配置文件。使用角色和配置文件模式,您通常会将单个配置文件应用于主机。
然后您将使用 hiera 或 enc 将您的盒子的配置文件设置为您想要的状态。