具体来说,如果使用 cfengine 安装板载设备固件的最新版本并进行一些测试以查看是否需要重新启动,而结果表明机器需要重新启动,那么这是否可以在 cfengine 内部完成,还是应该避免这种做法?如果可以,为什么?我使用 Puppet 的经验告诉我,在某些情况下停止运行以重新启动可能是一件非常糟糕的事情,所以我想知道同样的限制是否也适用于 cfengine。
答案1
这既是一个政策问题,也是一个技术问题。
从技术角度来看,潜在的问题是您的重启将中断剩余的 cfengine 运行,这可能会导致半生不熟并因此损坏状态。然而,这是一个有缺陷的论点——任何重启,无论是自动或手动,还是由硬件故障或电源中断引起的,都会出现这个问题,并且应该编写 cfengine 操作和其他自动化来处理这个问题。
剩下的就是政策问题:系统正在用于某些目的。您无法说明这是用于家庭自动化、工厂自动化、工作站还是服务器……目的决定了是否可以进行未经通知的重启,丢弃所有正在进行的事务、所有内存状态和所有活动会话。除了您和您的用户(如果有的话),没有人可以回答这个问题。