我们有一个现有的 cfengine3-community 安装,其中包含许多自定义承诺,它在大约 50 台机器上运行。我有兴趣切换到 Rudder,我想知道最好的迁移方式。Rudder 的最新版本似乎基于 cfengine 3.6.3,而我们正在运行最新的 cfengine,即 3.7.1。因此存在一些语法不兼容。只需换入最新的 cfengine 二进制文件就可以了吗?如果不行,正确的迁移方式是什么?
答案1
Rudder 可以与 CFEngine 并排运行。它们使用不同的端口进行客户端-服务器通信(Rudder 使用 5309)和不同的路径(/var/rudder/cfengine-community),以便它们可以在系统上协同工作。
最好的策略是让它们在你的节点上运行,并将你的策略逐一转录到 Rudder 中(通过定义指令并在规则中应用它们,或者使用图形技术编辑器创建你自己的技术),并禁用 CFEngine 中的迁移策略。
直接转录相当快(所有砖块都可以在 Rudder 中使用并且易于使用);但这也是一个很好的复习机会:
- 政策的相关性——我们经常在迁移过程中发现死代码
- 策略的应用 - 有些策略应该应用在比实际应用的节点更多(或更少)的节点上
- 政策的正确性 - 您可以使用 Rudder 报告,显示政策是否正确应用并发挥作用。可能有些政策之前在您不知情的情况下失败了,因为没有报告。
答案2
rudder 使用嵌入式 cfengine-community,它与独立的 cfengine 安装并不兼容(路径不同)。
Rudder 团队维护了一些 cfengine 补丁,所以我认为交换二进制文件不是一个好主意。
对于不兼容性我不知道,但我知道你需要在你的承诺中添加一些信息来报告 Rudder 内部的状态。