厨师:如何回滚 运行 的食谱?
Chef: How to rollback a run of cookbook?
我 运行 一本食谱,它在我的厨师节点上安装了一些东西(例如 apache)。这是我的食谱的第一个版本 (0.1.0)。我怎样才能撤消更改? (使用 chef 删除 apache)
没有特定的方法,您需要编写一个新的配方来强制执行您想要的新状态(卸载包、删除文件夹、停止服务等)。
我同意@coderange。没有明确的方法,但我会按照以下步骤操作:
1- 首先从 Chef 服务器删除食谱,使用 knife cookbook delete <cookbook_name>
2- 使用新食谱创建新食谱,以撤消初始食谱中的更改(apache 等)。
3- 将新食谱上传到厨师服务器 knife cookbook upload <new_cookbook_name>
4- 检查在 chef-client 运行后节点是否回到初始(或期望状态)。
注意:在您的情况下,我更喜欢添加带有新食谱的新食谱,而不是仅向现有食谱添加新食谱。它使事物保持清洁且易于理解。
另外,什么时候清理,你可以删除整个用于清理的食谱,不会有任何影响。
Chef 不擅长移除东西,除非您明确指定它们。所以没有简单的方法。您需要为要删除的资源编写配方。
我 运行 一本食谱,它在我的厨师节点上安装了一些东西(例如 apache)。这是我的食谱的第一个版本 (0.1.0)。我怎样才能撤消更改? (使用 chef 删除 apache)
没有特定的方法,您需要编写一个新的配方来强制执行您想要的新状态(卸载包、删除文件夹、停止服务等)。
我同意@coderange。没有明确的方法,但我会按照以下步骤操作:
1- 首先从 Chef 服务器删除食谱,使用 knife cookbook delete <cookbook_name>
2- 使用新食谱创建新食谱,以撤消初始食谱中的更改(apache 等)。
3- 将新食谱上传到厨师服务器 knife cookbook upload <new_cookbook_name>
4- 检查在 chef-client 运行后节点是否回到初始(或期望状态)。
注意:在您的情况下,我更喜欢添加带有新食谱的新食谱,而不是仅向现有食谱添加新食谱。它使事物保持清洁且易于理解。 另外,什么时候清理,你可以删除整个用于清理的食谱,不会有任何影响。
Chef 不擅长移除东西,除非您明确指定它们。所以没有简单的方法。您需要为要删除的资源编写配方。