Ansible |用下一批中的主机替换当前批中已完成的主机

Ansible |用下一批中的主机替换当前批中已完成的主机,ansible,ansible-2.x,Ansible,Ansible 2.x,我实现了一个playbook来迭代10台主机。在这10台主机中,host_2和host_8速度较慢。我在这个设置中使用了2的批量大小。我的预期结果是,当playbook以host_1和host_2开始时,只要以host_1结束(速度更快),它就会从下一批抓取一台主机,而不是等待两台主机都完成后再开始下一批。不幸的是,使用带有host_pinted策略的playbook,其结果与自由策略相同,即只有当两台主机都从当前批次完成时,下一批次才会开始。结果如下: PLAY [all] ********

我实现了一个playbook来迭代10台主机。在这10台主机中,
host_2
host_8
速度较慢。我在这个设置中使用了2的批量大小。我的预期结果是,当playbook以
host_1
host_2
开始时,只要以
host_1
结束(速度更快),它就会从下一批抓取一台主机,而不是等待两台主机都完成后再开始下一批。不幸的是,使用带有
host_pinted
策略的playbook,其结果与自由策略相同,即只有当两台主机都从当前批次完成时,下一批次才会开始。结果如下:

 PLAY [all] **************************************************************************************************************************************************************************************************************************************************************************

    TASK [stop : stop for specific hosts] ***********************************************************************************************************************************************************************************************************************************************

    TASK [stop : stop for specific hosts] ***********************************************************************************************************************************************************************************************************************************************
    skipping: [host_1]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    skipping: [host_1]

    TASK [stop : stop for other hosts] **************************************************************************************************************************************************************************************************************************************************
    changed: [host_1 -> localhost]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_1] => {
        "msg": "stop host_1 10:57:16.373188889"
    }

    TASK [update : update] **************************************************************************************************************************************************************************************************************************************************************
    changed: [host_1 -> localhost]

    TASK [update : debug] ***************************************************************************************************************************************************************************************************************************************************************
    ok: [host_1] => {
        "msg": "updating host_1 10:57:21.788484077\nupdated host_1 10:57:23.790958603"
    }

    TASK [start : start] ****************************************************************************************************************************************************************************************************************************************************************
    changed: [host_1 -> localhost]

    TASK [start : debug] ****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_1] => {
        "msg": "start host_1 10:57:24.185053675"
    }

    TASK [start : debug] ****************************************************************************************************************************************************************************************************************************************************************
    changed: [host_2 -> localhost]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_2] => {
        "msg": "stop host_2 10:57:16.415522282"
    }

    TASK [stop : stop for other hosts] **************************************************************************************************************************************************************************************************************************************************
    skipping: [host_2]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    skipping: [host_2]

    TASK [update : update] **************************************************************************************************************************************************************************************************************************************************************
    changed: [host_2 -> localhost]

    TASK [update : debug] ***************************************************************************************************************************************************************************************************************************************************************
    ok: [host_2] => {
        "msg": "updating host_2 10:58:17.368744495\nupdated host_2 10:58:19.372907064"
    }

    TASK [start : start] ****************************************************************************************************************************************************************************************************************************************************************
    changed: [host_2 -> localhost]

    TASK [start : debug] ****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_2] => {
        "msg": "start host_2 10:58:19.903162652"
    }

    PLAY [all] **************************************************************************************************************************************************************************************************************************************************************************

    TASK [stop : stop for specific hosts] ***********************************************************************************************************************************************************************************************************************************************

    TASK [stop : stop for specific hosts] ***********************************************************************************************************************************************************************************************************************************************
    skipping: [host_3]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    skipping: [host_4]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    skipping: [host_3]

    TASK [stop : stop for other hosts] **************************************************************************************************************************************************************************************************************************************************

    TASK [stop : stop for other hosts] **************************************************************************************************************************************************************************************************************************************************
    skipping: [host_4]

    TASK [stop : stop for other hosts] **************************************************************************************************************************************************************************************************************************************************
    changed: [host_3 -> localhost]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_3] => {
        "msg": "stop host_3 10:58:21.214160633"
    }

    TASK [update : update] **************************************************************************************************************************************************************************************************************************************************************

    TASK [update : update] **************************************************************************************************************************************************************************************************************************************************************
    changed: [host_4 -> localhost]

    TASK [stop : debug] *****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_4] => {
        "msg": "stop host_4 10:58:21.329958767"
    }

    TASK [update : update] **************************************************************************************************************************************************************************************************************************************************************
    changed: [host_3 -> localhost]

    TASK [update : debug] ***************************************************************************************************************************************************************************************************************************************************************
    ok: [host_3] => {
        "msg": "updating host_3 10:58:26.831347906\nupdated host_3 10:58:28.833336983"
    }

    TASK [start : start] ****************************************************************************************************************************************************************************************************************************************************************

    TASK [start : start] ****************************************************************************************************************************************************************************************************************************************************************
    changed: [host_4 -> localhost]

    TASK [update : debug] ***************************************************************************************************************************************************************************************************************************************************************
    ok: [host_4] => {
        "msg": "updating host_4 10:58:26.953679789\nupdated host_4 10:58:28.970638599"
    }

    TASK [start : start] ****************************************************************************************************************************************************************************************************************************************************************
    changed: [host_3 -> localhost]

    TASK [start : debug] ****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_3] => {
        "msg": "start host_3 10:58:29.662201166"
    }

    TASK [start : debug] ****************************************************************************************************************************************************************************************************************************************************************
    changed: [host_4 -> localhost]

    TASK [start : debug] ****************************************************************************************************************************************************************************************************************************************************************
    ok: [host_4] => {
        "msg": "start host_4 10:58:29.801761229"
    }

我是否误解了主持人的策略?关于如何使用Ansible实现我的方法,您能给我一些指导吗?

您遇到的问题是由于您使用了批处理而不是策略插件。ansible文档特别声明,在整个批次完成之前,它不会继续(见下文)。不过,还有其他方法可以加快速度。您可以考虑使用SSH流水线(需要禁用/ETC/SUDIDES)或甚至有丝分裂原。这里有一篇关于这个主题的文章:

在上面的示例中,如果组“webservers”中有4台主机,则2台主机将在转到下2台主机之前完成播放:


谢谢你的重播。加速剧本执行的唯一方法是使用插件?对于使用流水线,我相信禁用requirety不再是必需的,因为ansible 2.6或其他什么。这是正确的吗?我不会说这是唯一的方法,但这是第一步,也是最明显的一步,特别是在您的情况下,因为您有一些主机比其他主机慢得多。此外,根据2.9文档,管道仍然需要禁用要求。我真的不能推荐足够的丝裂原。它将大大提高您的播放速度,并大大减少网络和控制器负载,而无需对客户端设备进行任何更改。安装起来很容易。