【发布时间】:2018-04-29 21:31:43
【问题描述】:
我有一个适用于每个主机和角色的列表。它们托管在 hypvervisor (XenServer / ESX) 上。
在执行 ansible 播放之前,我正在尝试将每台机器还原回快照。我的动作流程如下所示:
- 从文件 (machines.txt) 中获取 VM 名称
- 连接 Hypervisor 并通过 CLI 还原机器快照
- 一旦机器上的 SSH 启动,连接并执行其余的操作
- 一次执行一台机器。
到目前为止,我取得的最好成绩是在一个游戏中在管理程序上执行 revert 任务,然后在另一个游戏中应用角色。这就是我的剧本的样子:
---
- name: Reverting
hosts: xenhost
tasks:
- include_tasks: tasks/vms/revert_snap.yml
with_lines: cat "machines.txt"
- name: Ensure NTP is installed
hosts: temp
roles:
- ntp
到目前为止我找到的解决方案是,
- 执行从 CLI 恢复快照的任务并在 Hypervisor 上执行它
在机器上执行我的整个维护操作 2.1 等待 SSH 在每个 2.2 申请角色
在 Hypervisor 上清理并拍摄新快照
我在这种情况下的缺点是,首先它会还原所有机器,然后应用所有角色,然后批量还原所有角色。 我不能将这些任务组合成一个游戏,因为它们是在不同的主机上执行的。
有更好的解决方案吗? - 这将还原一台机器,应用所有角色,拍摄快照,然后继续下一台机器。
【问题讨论】:
标签: ansible