JClouds-Chef是否具有恢复功能?

时间:2014-08-21 15:40:34

标签: java chef jclouds

我正在使用优秀的JClouds-Chef库来引导和配置带有Chef的VM。

我需要考虑出现错误的用例在VM上执行了 JClouds-Chef后,我可以基本上回滚并卸载它。这里的目标是让系统保持原来的状态(在JClouds-Chef参与之前),如果出现问题。

  1. 一种解决方案可能是完全卸载Chef Client
  2. 另一个解决方案可能是擦除平板清理或将引导程序反转到虚拟机上有简单/tmp/chef-bootstrap.sh文件的位置
  3. 根据我的设想,理想解决方案将是" OK"如果chef-bootstrap.sh可以一次又一次地运行,并且每次运行时,只需重新配置Chef Client即可使用VM应具备的最新配方/角色/环境。
  4. 所以我的第一个问题是,#3高于案例吗?如果没有,那么我怎样才能实现#1或#2解决方案,还是有更好的方法来实现这种撤消/恢复/回滚功能?

1 个答案:

答案 0 :(得分:1)

据我所知,Chef没有提供开箱即用的回滚功能。

关于你的问题:

  1. 卸载Chef客户端不会卸载Chef运行可能已安装的内容,也不会还原配置文件中的更改等。
  2. 该脚本必须手动创建。
  3. 在Chef中恢复内容(或卸载某些内容)的方法是创建一个删除需要删除的内容的配方(例如,回滚Apache安装,您将创建卸载它的配方)。
  4. 建议使用最新版本,您可以通过以下方式完成:

    • 添加" chef-client" cookbook到你的节点的运行列表,所以它定期运行。这样,它将监视运行列表中的更改并应用它们。
    • 如果出现故障,您可以更新节点的运行列表,并留下"回滚配方"。在下一个Chef客户端运行中,状态将被还原。

    当定期使用Chef客户端时,非常重要的是您使用的所有配方都是幂等的,因此它们可以多次运行而不会失败(根据定义它们应该!)。