Ansible-playbook 并发运行async、poll(学习笔记二十二)

简介: ansible默认只会创建5个进程,所以一次任务只能同时控制5台机器执行.那如果你有大量的机器需要控制,或者你希望减少进程数,那你可以采取异步执行.ansible的模块可以把task放进后台,然后轮询它.

ansible默认只会创建5个进程,所以一次任务只能同时控制5台机器执行.那如果你有大量的机器需要控制,或者你希望减少进程数,那你可以采取异步执行.ansible的模块可以把task放进后台,然后轮询它.这使得在一定进程数下能让大量需要的机器同时运作起来.

使用async和poll这两个关键字便可以并行运行一个任务. async这个关键字触发ansible并行运作任务,而async的值是ansible等待运行这个任务的最大超时值,而poll就是ansible检查这个任务是否完成的频率时间.

如果你希望在整个集群里面平行的执行一下updatedb这个命令.使用下面的配置

- hosts: all

    tasks:

      - name: Install mlocate

        yum: name=mlocate state=installed

      - name: Run updatedb

        command: /usr/bin/updatedb

        async: 300

        poll: 10

你会发现当你使用上面的例子控制超过5台机器的时候,command.在上面yum模块会先在5台机器上跑,完成后再继续下面的机器.而上面command模块的任务会一次性在所有机器上都执行了,然后监听它的回调结果

如果你的command是控制机器开启一个进程放到后台,那就不需要检查这个任务是否完成了.你只需要继续其他的动作,最后再使用wait_for这个模块去检查之前的进程是否按预期中开启了便可.只需要把poll这个值设置为0,便可以按上面的要求配置ansible不等待job的完成.

最后,或者你还有一种需求是有一个task它是需要运行很长的时间,那你需要设置一直等待这个job完成.这个时候你把async的值设成0便可.

总结来说,大概有以下的一些场景你是需要使用到ansible的polling特性的

你有一个task需要运行很长的时间,这个task很可能会达到timeout.

你有一个任务需要在大量的机器上面运行

你有一个任务是不需要等待它完成的

当然也有一些场景是不适合使用polling特性的

你的这个任务是需要运行完后才能继续另外的任务的

你的这个任务能很快的完成

目录
相关文章
|
运维 自然语言处理 Shell
金鱼哥戏说RHCE认证:部署Ansible---运行临时命令
第二章 部署Ansible---运行临时命令
229 0
金鱼哥戏说RHCE认证:部署Ansible---运行临时命令
|
Windows
【Ansible】Ansible控制windows插件安装及运行error与解决方法
一、 问:因pip版本问题无法安装kerberos 答:安装提示需要先安装pip升级包 下载pip9.0.1升级包: https://pypi.python.org/packages/b6/ac/7015eb97dc749283ffdec1c3a88ddb8ae03b8fad0f0e611408f196358da3/pip-9.
7544 0
ansible安装后运行报错cryptography
[root@kazihuo ~]# ansible all -m ping ERROR! Unexpected Exception, this is probably a bug: (cryptography 0.
1458 0
|
1月前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible实战应用
【9月更文挑战第33天】本文将带你深入理解Ansible,一个强大的自动化运维工具。我们将从基础概念开始,逐步探索其配置管理、任务调度等功能,并通过实际案例演示其在自动化部署和批量操作中的应用。文章旨在通过浅显易懂的语言和实例,为读者揭开Ansible的神秘面纱,展示其在简化运维工作中的强大能力。
156 64
|
1月前
|
运维 负载均衡 应用服务中间件
自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第34天】在现代IT运维工作中,自动化已成为提升效率、减少错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。我们将通过实际案例展示如何利用Ansible的Playbooks来自动化常见任务,并讨论其对提高运维团队工作效率的影响。
|
1月前
|
运维 应用服务中间件 网络安全
自动化运维:使用Ansible进行批量服务器配置
【9月更文挑战第35天】在现代IT基础设施管理中,高效、可扩展的自动化工具是提升工作效率的关键。本文将引导您了解如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置过程,确保一致性和可靠性的同时减少人为错误。通过实际案例,我们将展示如何编写Ansible Playbook以实现批量服务器配置,从而让您能够更加轻松地管理和维护您的服务器群。
|
1天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
4天前
|
运维 负载均衡 Ubuntu
自动化运维的利器:Ansible入门与实践
【10月更文挑战第31天】在当今快速发展的信息技术时代,高效的运维管理成为企业稳定运行的关键。本文将引导读者了解自动化运维工具Ansible的基础概念、安装步骤、基本使用,以及如何通过实际案例掌握其核心功能,从而提升工作效率和系统稳定性。
|
12天前
|
缓存 运维 应用服务中间件
自动化运维的新篇章:使用Ansible进行配置管理
【10月更文挑战第23天】随着云计算和微服务架构的兴起,传统的手动运维方式已经无法满足现代IT基础设施的需求。自动化运维成为提升效率、减少错误的关键。本文将介绍如何使用Ansible,一个流行的开源自动化工具,来简化配置管理和部署流程。我们将从基础概念出发,逐步深入到实战应用,展示如何通过编写Playbook来实现服务器的自动化配置和管理。
|
9天前
|
运维 应用服务中间件 调度
自动化运维:使用Ansible实现服务器批量管理
【10月更文挑战第26天】在当今快速发展的IT领域,自动化运维已成为提升效率、降低人为错误的关键技术手段。本文通过介绍如何使用Ansible这一强大的自动化工具,来简化和加速服务器的批量管理工作,旨在帮助读者理解自动化运维的核心概念和实践方法。文章将围绕Ansible的基础使用、配置管理、任务调度等方面展开,通过实际案例引导读者深入理解自动化运维的实现过程,最终达到提高运维效率和质量的目的。