首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何优化 Ansible Playbook 执行速度

写在前面 今天和小伙伴们分享一些 Ansible中 Playbook 执行速度优化的笔记 博文通过7种不同的优化方式,合理利用可配置项,从而提高 Playbook 的执行速度 个人感觉如果受控机数量很少...———艾米莉·狄金森」 ---- 优化 Playbook 执行 主要通过以下方式来优化 优化基础架构 禁用facts收集 增加任务并行 程序包管理器模块不使用循环 高效拷贝文件 使用模板代替多lineinfile...操作 优化SSH连接 启用pipelining 下面我们一起来看一下如何优化 优化基础架构 运行最新版本的 Ansible 可帮助提高使用 Ansible 核心模块的 Playbook 的性能。...,设置多并行处理forks=10,时间由原来的10秒到现在的4秒。...,可以发现使用的循环的方式是通过多个子bash的方式来执行,所以每次执行都要重新申请资源为一个bash进程来处理,而上面的方式始终只有个一个bash进程 - name: Install the packages

1.9K10

Ansible使用CallBack插件分析Playbook执行性能

写在前面 和小伙伴们分享一些Ansible回调插件的笔记 一个好的剧本,执行起来会很是丝滑,良好的执行体验让你甚至感觉不到执行了很久,哈......Ansible提供了CallBack插件来处理playbook中的回调事件。我们可以通过回调插件分析剧本资源利用率、消耗时间,从而优化剧本。...默认情况下,回调插件控制在运行命令行程序时看到的大部分输出,但也可用于添加额外的输出、与其他工具集成以及将事件编组到存储后端。...在playbook执行结束时,它将显示全局摘要和每个任务的摘要。这些摘要包括 CPU 和内存消耗,以及在 playbook 和 tasks 执行期间启动的进程 的最大数量。...timer 插件显示playbook执行的持续时间。 profile_tasks 添加每个任务的开始时间,并在 playbook 执行结束时显示每个任务所用的时间,按降序排列。

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Ansible的Playbook基操

    Task实际是调用ansible的一个module,将多个play组织在一个playbook中, 即可以让它们联合起来,按事先编排的机制执行预定义的动作 Playbook采用YAML语言编写 --- -...command: install redis # 当前执行的具体命令操作 1.0 PlayBook核心元素 Hosts:playbook中的每一个play的目的都是为了让特定主机以某个指定的用户身份执行任务...: 指定某条任务执行,用于选择运行playbook中的部分代码. ansible-playbook -C hello.yaml - C 选项检查剧本是否成功,并不实际执行 1.0.1 忽略错误信息 tasks...,但是不会执行 --list-hosts: 列出运行任务的主机 --limit: 主机列表,只针对主机列表中的主机执行 -v: 显示过程 --list-tasks: 查看任务列表 ansible-playbook...newfile test.yaml # 表示只执行newfile标签的动作 ansible-playbook -t newfile,newuser test.yaml # 表示只执行newfile标签的动作

    89010

    如何控制Ansible Playbook的执行顺序、运行选定的剧本资源

    亦或是你希望同时通知多个handler,处理程序被通知后立即执行,而不是等role、tasks执行完统一执行等等 上面的问题都有解决办法,但是Ansible本身提供了很多更优的解决方法,通过博文内容一起来学习下...&&任务执行后的钩子 有时候希望⼀个剧本 在角色之前运行某些任务,以及它们所通知的处理程序。...和 tasks 部分中通知的处理程序 handlers post_tasks post_tasks 部分中通知的处理程序 handlers 这些部分在 Play 中的编写顺序不会修改以上列出的执行顺序...但是不会存在 一个处理的程序连续执行多次,即同一时间段,多此次通知只执行一次。...在上面的Demo中,可以看到,任务处理程序 handler 总是在一个任务块处理完之后才会执行,那如果我希望在任务执行到一半,执行前面的任务处理程序,应该这么处理?

    2.7K10

    如何编写清晰的Ansible Playbook(复杂Playbook如何构建)

    ,只要掌握几个基本的模块就可以解决好多运维中重复的事,但是对于处理更为高级的功能和更大、更复杂的项目时,管理和维护Ansible Playbook或高效使用将变得更加困难。...对于难以在Ansible Playbook 中表述⼀些复杂的控制结构或条件,可以通过模板和Jinja2过滤器巧妙地处理变量中的数据。...Playbook(不会改变主机状态),以查看Playbook执行的更改。...嗯,简单介绍下,ansible 可以使用两种方式实现剧本的模块化: 包含内容:动态操作(include_task),在playbook运行期间,Ansible会在内容到达时处理包含的内容 导入内容:静态包含...(import_task,import_playbook),在playbook运行之前,Ansible在最初解析的时候预处理导入的内容 和Java web体系中的Jsp脚本有些类似,通过include指令和

    3.4K10

    自动化运维| Ansible playbook的逻辑控制语句

    今天我们来讲讲Ansible playbook中的逻辑控制语句when 和loop。 Ansible条件判断语句-When when是Ansible中的条件判断语句, 类似于编程语言中的if。...有时候用户很可能需要满足特定条件才执行某一个特定的步骤,例如在一个特定版本的系统上安装软件包,或者只在磁盘空间不足的文件系统上执行清理操作一样。这些操作在playbook中用when语句实现。...when的基本用法 tasks: - name: "Shutdown centos server" shell: shutdown -t now when: ansible_os_family...== "centos" 根据Action的执行结果,来决定接下来执行的任务 tasks: - command: /bin/false register: result ignore_errors...参考资料: Ansible快速入门, 技术原理与实战。

    1.3K20

    现代 IT 人一定要知道的 Ansible系列教程:playbook

    提供了一个可重复、可重用、简单的配置管理和多机部署系统,非常适合部署复杂的应用程序。...如果您需要多次使用 Ansible 执行任务,请编写一个 playbook 并将其置于源代码控制之下。然后,您可以使用 playbook 推出新配置或确认远程系统的配置。'...定义 Ansible 从上到下执行操作以实现总体目标的顺序列表。 Play 映射到清单中的托管式节点的任务的有序列表。 Task 任务 个或多个模块的列表,用于定义 Ansible 执行的操作。...--force-handlers 即使任务失败,也要运行处理程序 --list-hosts 输出匹配主机列表;不执行任何其他操作 --list-tags 列出所有可用标签 --list-tasks 列出将要执行的所有任务...syntax-check 对 playbook 执行语法检查,但不要执行它 --vault-id 要使用的保管库标识。

    46510

    Jenkins运行ansible playbooks

    本文是关于应用程序的自动化配置和部署。如果您的架构未使用容器类型的技术(例如Docker),则可能是在Linux上安装虚拟机甚至物理服务器。...,让诸如Jenkins这样的自动化和任务编排工具去运行Ansible playbook非常容易。...因此,使用Jenkins pipeline语言,您可以使用ansible_playbook方法,这将在Jenkins作业中执行作为参数传递的playbook。...的Job,并将必要的参数添加到我们配置的Playbook中: 通过将这些参数传递给作业执行,我们可以自动安装mariaDB,增强root密码,使用给定名称创建新数据库,创建对该数据库具有权限的用户。...但是,最后一个参数是:Ansible要在目标计算机上执行命令,有必要将登录凭据传递给计算机。为此,我们使用Jenkins凭据管理功能,该功能使以安全的方式存储秘钥。

    3.2K10

    非常好的Ansible入门教程(超简单)

    关于Ansible的一个好处是,将bash脚本转换为可执行任务是非常容易的。我们可以编写自己的配置程序,但是Ansible更加干净,因为它可以自动在执行任务之前获取上下文。...我已经安装了Nginx 2.3.1 处理程序(Handlers) 处理程序与任务完全相同(它可以做task可以做的任何事),但只有当另一个任务调用它时才会运行。...这将在任务运行后通知名为“Start Nginx”的处理程序。 然后我们可以创建名为“Start Nginx”的处理程序。此处理程序是通知“Start Nginx”时调用的任务。...这个特定的处理程序使用服务模块,它可以启动,停止,重启,重新加载(等等)系统服务。在这种情况下,我们告诉Ansible,我们要启动Nginx。...2.4.3 处理程序(handlers) 我们可以把曾经在nginx.yml 剧本中的定义的所有处理程序放入到handlers目录中。约定必须包含main.yml文件。

    3.7K20

    运维自动化工具ansible

    该功能不常用 API:供第三方程序调用的应用程序编程接口 ANSIBLE:组合INVENTORY、API、MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具...,大型项目的场景,需要有前提的规划 Ansible-playbook(剧本)执行过程: 将已有编排好的任务集写入Ansible-Playbook 通过ansible-playbook命令分拆任务集至逐条...主机清单 /etc/ansible/roles/ 存放角色的目录 程序 /usr/bin/ansible 主程序,临时命令执行工具 /usr/bin/ansible-doc 查看配置文档,...test1.yml 执行 playbook基础组件 Hosts: playbook中的每一个play的目的都是为了让某个或某些主机以某个指定的用户身份执行任务。...在运行自下而下某playbook时,如果中途发生错误,所有已执行任务都将回滚,因此,在更正playbook后重新执行一次即可 task的目的是使用指定的参数执行模块,而在模块参数中可以使用变量。

    3.4K10

    Ansible 新手指南 - 如何批量管理 NGINX

    用户也可以编写自己的模块。这些模块可以控制系统资源,比如服务、包或文件(实际上是任何东西),或者处理执行系统命令。...简单地说,playbook是一个非常简单的配置管理和多机部署系统的基础,不像任何已经存在的系统,它非常适合部署复杂的应用程序。...备注: 下面几个小章节的ansible-playbook 执行结果类似, 就不一一贴出来了....tasks: 分别为: 安装 启动 复制NGINX配置文件 创建软链接 复制html文件 nofity和handlers: 用notify触发一个在Ansible中称为处理程序 - handler的事件...notify引发事件后,将触发相应的处理程序(restart nginx). 总结¶¶ 本文通过批量管理NGINX这样一个实际案例, 介绍了Ansible的基本用法.

    99520

    如何在 Ansible Playbook 中进行变量替换,解决环境之间差异的问题?

    通过ansible-playbook命令行传入 通过 ansible-playbook 命令行传参的方式定义变量,默认传进去的都是全局变量,如下: ?...使用register内的变量 Ansible playbook内task之间还可以互相传递数据,比如我们总共有两个tasks,其中第2个task是否执行是需要判断第1个task运行后的结果,这个时候我们就得在...修改 register.yaml 文件内容,info[‘stdout’]是一个标准的 Python 语言在字典中取值的用法,执行 playbook,如下所示: ?...使用vars_prompt传入 Ansible 支持在运行 playbook 的时,通过交互式的方式给定义好的参数传入参数值,只需在playbook中定义vars_prompt的变量名和交互式提示内容即可...Ansible可以对输入的变量值进行加密处理,比如采用SHA512和MD5算法加密。需要注意:如果要对变量值进行加密,ansible机器上要安装passlib python库 ?

    5K20

    如何在 Ansible Playbook 中进行变量替换,解决环境之间差异的问题?

    ,只有主机变量生效,主机组变量不生效; 下面验证group_vars/下的nginx组的主机组变量,如下: 通过ansible-playbook命令行传入 通过 ansible-playbook 命令行传参的方式定义变量...使用register内的变量 Ansible playbook内task之间还可以互相传递数据,比如我们总共有两个tasks,其中第2个task是否执行是需要判断第1个task运行后的结果,这个时候我们就得在...从字典中,取出想要的值 修改 register.yaml 文件内容,info[‘stdout’]是一个标准的 Python 语言在字典中取值的用法,执行 playbook,如下所示: 使用vars_prompt...传入 Ansible 支持在运行 playbook 的时,通过交互式的方式给定义好的参数传入参数值,只需在playbook中定义vars_prompt的变量名和交互式提示内容即可。...Ansible可以对输入的变量值进行加密处理,比如采用SHA512和MD5算法加密。

    2.3K20

    现代 IT 人一定要知道的 Ansible系列教程:Roles详解

    现代 IT 人一定要知道的 Ansible系列教程:Roles详解 Ansible Playbook 提供了一个可重复、可重用、简单的配置管理和多机部署系统,非常适合部署复杂的应用程序。...在 playbook 执行的底部,Ansible 提供了目标节点及其执行方式的摘要。一般故障和致命的“无法访问”通信尝试在计数中保持分开。...Roles 在 ansible 中角色允许我们根据已知的文件结构自动加载相关的变量、文件、任务、处理程序和其他 Ansible 工件。...handlers/main.yml - 处理程序,可以在此角色内部或外部使用。 library/my_module.py - 模块,可以在此角色中使用(有关更多信息,请参阅在角色中嵌入模块和插件)。...如果 roles/x/handlers/main.yml 存在,则 Ansible 会将该文件中的处理程序添加到playbook中。

    42310

    Linux云计算运维架构师(连载)-自动化运维ansible-14

    若读者有其他需要定义的变量,都可以在该文件中进行定义。 5.编写处理程序 任务文件中调用的处理程序应当定义在handlers目录中。...在本小节的第二步中,剧本调用了重启Nginx服务的处理程序,其定义代码如下所示。...需要注意的是,此处的nginx指的是rolers/nginx目录,表示该目录下包含了整个任务。 7.执行剧本 playbook配置完成之后,即可开始执行,代码及结果如下所示。...playbook: site.yaml #检验无误后开始执行 [root@ansible roles]# ansible-playbook site.yaml PLAY [host3] *******...通过本章的学习,希望读者能够了解Ansible的工作原理,熟悉Ansible的组成模块与配置方式,熟练结合Ansible与playbook实现多功能或应用的一键部署。

    1.4K30

    深入了解 Ansible:全面掌握自动化 IT 环境的利器

    Ansible 是一款备受欢迎的自动化工具,它能够简化配置管理、应用程序部署和任务自动化等方面的工作。本文将深入探讨 Ansible 的各个方面,从基础概念到高级用法,帮助您全面掌握这个强大的工具。...初识 Ansible 2.1 什么是 Ansible Ansible 是一种自动化工具,它能够简化配置管理、应用程序部署和任务自动化等工作。...角色(Roles): 角色是一种组织 Playbook 的方式,将相关的任务和配置组织成可重用的单元。一个角色通常包含目录结构、变量、任务和处理器等。 3....这样可以根据不同的情况自动调整任务的执行逻辑,提高代码的灵活性和适用性。 5.2.4 错误处理与恢复 考虑到任务执行过程中可能出现的错误情况,编写适当的错误处理和恢复机制。...处理器(Handlers): 角色可以定义处理器,用于在任务执行完成后触发特定的操作,例如重新启动服务或发送通知。 文件(Files): 角色可以包含静态文件,例如配置文件、脚本文件等。

    90911

    Ansible-基本概述

    痛点: 1、重复操作频繁,增加了人工成本和后续维护成本; 2、机器太多时,容易落下某些机器且未操作,进而产生后续影响; 3、人工频繁操作时可能有操作步骤不完整的情况,造成该机器和其他机器状态不一致。...、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能的自动化管理工具。...Ansible 架构 ? 模块说明如下: Ansible:Ansible 核心程序。 Host Inventory:记录由 Ansible 管理的主机信息清单,包括端口、密码、IP 等。...ad-hoc 和 playbook: ad-hoc 模式(点对点模式) 使用单个模块,支持批量执行单条命令。...playbook 模式(剧本模式) 是 Ansible 主要管理方式,也是 Ansible 功能强大的关键所在。

    76331

    自动化运维之playbook

    ****前言**** 前段时间总结了ansible的基本配置与使用,那么说到了ansible的话呢,playbook是必不可少的,playbook在我看来就是一个花花公子-playboy!...顾名思义,playbooks是一个"剧本",不同于ansible的使用方式,它是按照编排的任务智能地执行,并且非常强大!...简单地来说呢,playbooks适合简单的配置管理以及多服务器机器的管理,同时还可以处理部署复杂的应用。...传送ansible文档详解 自动化运维之ansible ---- ****playbook基础语法**** playbook使用了YAML格式的语法,该语法还是相当简单的,可以体验出程序构造或执行的过程...好比如yum只有centOS,RedHat等发行版才具有的包管理命令工具 重点:when主要用于处理不同的操作系统与处理逻辑上。

    1.1K30
    领券