Ansible - 连续播放而不是线性播放

时间:2018-04-29 09:42:52

标签: ansible

我有一个适用于每个主机和角色的列表。它们托管在hypvervisor(XenServer / ESX)上。

我正在尝试每台机器还原为快照,然后再执行ansible播放。我的行动流程如下:

  1. 从文件(machines.txt)中获取VM名称
  2. 连接管理程序并通过CLI还原机器快照
  3. 一旦SSH启动机器,连接并执行其余的播放
  4. 一次执行一台机器。
  5. 我到目前为止所做的最好的事情是在一个剧中执行虚拟机管理程序上的还原任务,然后使用不同的游戏来应用角色。这就是我的剧本的样子:

    ---
      - 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
    

    到目前为止我找到的解决方案是,

    1. 执行从CLI恢复快照的任务并在虚拟机监控程序上执行
    2. 在机器上执行我的整个维护游戏 2.1在每个上等待SSH 2.2应用角色

    3. 在管理程序上清理并拍摄新快照

    4. 我在这种情况下的缺点是,首先它恢复所有机器,然后应用所有角色,然后批量恢复所有角色。 我无法将任务组合到一个游戏中,因为它们在不同的主机上执行。

      有更好的解决方案吗? - 将恢复一台机器,应用所有角色,拍摄快照,然后继续使用下一台机器。

1 个答案:

答案 0 :(得分:0)

serial: 1

您可以将所有这些任务分组到一个角色中,并使用- hosts: hostgroup serial: 1 roles: - {role: rolename }

执行该角色
<?php

        $datum = date("d-m-Y");
        $begindatum = '28-04-2018';

        if ($datum >= $begindatum)
        {
          echo "test";
        }
?>