有没有方法可以回滚 Ansible 中的更改?假设我的剧本包含不同的剧本,例如创建 5 个用户、安装 3 个 rpm、启动服务。如果我想回滚某个剧本,我该怎么做。我们有可能在 anisble 中实现这一点吗?
答案1
Ansible 没有任何自动的方式来跟踪事物并在失败时撤消,但它确实为您提供了一些自己处理故障的功能。
这是使用以下方法实现的块。使用块,您可以定义一组要在rescue:
部分中执行的任务。这些可以是任何您想要的,并且经过仔细规划,您应该能够让它撤消所有操作。
但是如果系统以某种不寻常的方式损坏,您的“撤消”任务也可能会失败。如果您的系统位于可以检查点/快照的虚拟机中,或者在支持检查点/快照的文件系统(即 zfs)上运行,您当然可以使用这些功能进行恢复。
答案2
我不知道任何撤消功能。
我会做的,特别是对于这样简单的任务,是编辑剧本,而不是
state: present
写
state: absent
答案3
不,没有用于回滚的全局功能。
您必须添加一个新玩法来逆转另一个玩法的动作。