回滚 Ansible 中的更改

KKE*_*KKE 8 ansible ansible-playbook ansible-tower

有什么方法可以回滚 Ansible 中的更改吗?假设我的剧本包含不同的剧本,例如创建 5 个用户、安装 3 rpm、启动服务。如果我想回滚某个游戏,我该怎么做。我们是否有可能在 anisble 中实现这一目标?

Zor*_*che 11

Ansible 没有任何自动方式来跟踪事情并在失败时撤消,但它确实为您提供了一些自己处理失败的功能。

这是使用blocks实现的。使用块,您可以定义要在该rescue:部分中执行的一组任务。这些可以是你想要的任何东西,通过仔细规划,你应该能够让它撤消一切。

尽管如果系统以某种不寻常的方式损坏,您的“撤消”任务也可能会失败。如果您的系统位于可以检查点/快照的 VM 中,或者在支持检查点/快照的文件系统(即 zfs)上运行,您当然可以使用这些工具来恢复。


Pet*_*ter 4

我不知道任何撤消功能。

我会做的,特别是对于这样简单的任务,是编辑剧本,而不是

state: present
Run Code Online (Sandbox Code Playgroud)

state: absent
Run Code Online (Sandbox Code Playgroud)

  • 不过请注意..使用此方法可能不会将系统返回到之前的状态(例如,如果系统在运行剧本之前已经拥有用户或程序包,则将状态更改为缺席会在 ansible 没有执行时删除程序包)安装它) (3认同)