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

如何在运行ansible-playbook时测量和显示任务所用的时间?

在运行ansible-playbook时测量和显示任务所用的时间,可以通过以下步骤实现:

  1. 使用ansible-playbook命令运行playbook文件:ansible-playbook playbook.yml
  2. 在命令后面添加-v参数,以便显示详细的任务执行信息:ansible-playbook -v playbook.yml
  3. 在命令后面添加--start-at-task=<task_name>参数,指定从特定任务开始执行,以便测量该任务的执行时间:ansible-playbook --start-at-task=<task_name> playbook.yml
  4. 使用time命令来测量整个ansible-playbook命令的执行时间:time ansible-playbook playbook.yml
  5. 使用callback_plugins插件来显示任务执行时间。在ansible配置文件中,找到或创建callback_plugins目录,并在其中创建一个Python脚本文件(例如timing.py),然后将以下代码复制到脚本文件中:
代码语言:txt
复制
import time

class CallbackModule(object):
    def __init__(self):
        self.task_start_time = None

    def v2_playbook_on_task_start(self, task, is_conditional):
        self.task_start_time = time.time()

    def v2_playbook_on_stats(self, stats):
        for host in stats.processed.keys():
            self.display("Host %s:" % host)
            for task in stats.summarize(host).keys():
                self.display("  Task %s: %0.2f seconds" % (task, time.time() - self.task_start_time))

    def display(self, msg):
        print(msg)
  1. 保存并关闭脚本文件。
  2. 运行ansible-playbook命令时,使用-c参数来指定刚刚创建的脚本文件作为回调插件:ansible-playbook -c timing.py playbook.yml

通过以上步骤,你可以在运行ansible-playbook时测量和显示每个任务所用的时间。注意,这里提供的是一种自定义的方法,而不是腾讯云特定产品的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

亦或者我们之前讲 剧本中任务控制指令pro_taskpost_taks,K8s中 pod hook,通过poststartprestop,配置pod创建和死亡回调处理等等。...如果需要编写一些自定义回调插件,我们可以以同样方法来尝试 下面来看看如何通过利用CallBack插件统计资源消耗执行时间来分析Playbook执行性能。...playbook执行结束,它将显示全局摘要和每个任务摘要。这些摘要包括 CPU 内存消耗,以及 playbook tasks 执行期间启动进程 最大数量。...timer 插件显示playbook执行持续时间。 profile_tasks 添加每个任务开始时间,并在 playbook 执行结束显示每个任务所用时间,按降序排列。...profile_roles 结束显示每个角色所用时间,按降序排列。

1.5K30

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

——王小波」 ---- 对 Ansible 剧本资源打标签 处理大型或复杂剧本,如果只希望运行部分剧本或部分任务。可以将标签应用于可能要跳过或运行特定资源。...,给对应资源标记打标签,然后使用ansible-playbook运行playbook,添加--tags选项来筛选 playbook 仅运行带有特定标签play 或任务。...,个别剧本资源不运行,可以在运行ansible-playbook命令,使用--skip-tags选项跳过带有特定标签任务。...也可能希望普通任务tasks处理程序handler运行运行 play 中任务。...由于Ansible通常在多个主机上并行运行每个任务,因此 ansible-playbook 命令输出可能无法反映预期顺序:输出显示任务完成顺序,而不是执行顺序。

2.4K10

02 . Ansible高级用法(运维开发篇)

自动化任务简介 假设我们要在10台linux服务器上安装一个nginx服务,手动是如何?...我们最先展示并非那强大集配置,部署,自动化于一身playbook.而是如何初始化. 远程连接概述 我们开始前要先理解Ansible如何通过SSH与远程服务器连接是很重要....也许这是常识,但也值得分享:任何管理系统受益于被管理机器主控机附近运行.如果在云中运行,可以考虑使用云中一台机器来运行Ansible.....使用Ansible,你可能不想遇到这样情况:如果有个主机没有“known_hosts”中被初始化将会导致交互使用Ansible或定时执行Ansible对key信息的确认提示....# 在运行清单文件时候,--list-hosts选项会显示那些主机将会参与执行task过程中。

3.5K52

ansible 学习笔记

snippet 指定模块显示剧本片段 -f --forks=NUM 并行任务数。...-B 后台运行超时时间 -P 调查后台程序时间 -T Seconds, --timeout=Seconds 时间,单位秒s -P NUM, --poll=NUM 调查背景工作每隔数秒。...--tags=TAGS 只执行指定标签任务 例子:ansible-playbook test.yml --tags=copy 只执行标签为copy那个任务 --list-hosts 只打印有哪些主机会执行这个...ip执行 --skip-tags=SKIP_TAGS 只运行戏剧任务不匹配这些值标签 --skip-tags=copy_start -e EXTRA_VARS, --extra-vars=...该指令使用需要谈到ansible另一种模式---pull 模式,这和我们平常经常用push模式刚好相反,其适用于以下场景:你有数量巨大机器需要配置,即使使用非常高线程还是要花费很多时间;你要在一个没有网络连接机器上运行

47210

运维自动化工具ansible

公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍扩容,并搭建出多套环境可以共开发测试人员做测试,运维老大为了在年底有所表现,要求运维部门同学尽快实现,当你接到这个任务,有没有更快解决方案...不过,开发这种语言,YAML意思其实是:”Yet Another Markup Language”(仍是一种标记语言) 特性 YAML可读性好 YAML脚本语言交互性好 YAML使用实现语言数据类型...也可以通过指定其通过sudo方式远程主机上执行任务,其可用于play全局或某任务;此外,甚至可以sudo使用sudo_user指定sudo切换用户 - hosts: websrvs remote_user...在运行自下而下某playbook,如果中途发生错误,所有已执行任务都将回滚,因此,更正playbook后重新执行一次即可 task目的是使用指定参数执行模块,而在模块参数中可以使用变量。...注意:shellcommand模块后面跟命令,而非key=value 某任务状态在运行后为changed,可通过“notify"通知给相应handlers 任务可以通过"tags"打标签

3.3K10

如何Ansible编写一个Playbook

2、playbook基础组件 1.Hosts:运行执行任务(task)目标主机 2.remote_user:远程主机上执行任务用户 3.tasks:任务列表 4.handlers:任务,与tasks...不同是只有接受到通知才会被触发 5.templates:使用模板语言文本文件 6.variables:变量,变量替换 3、playbook临时命令比较 1.临时命令不适合复杂配置管理或编配场景...当需要多个操作,必须使用多个临时命令来执行。 3.playbook是描述要在受管理主机上实施必要配置或程序性步骤文件。playbook为配置管理部署提供了强大而灵活解决方案。...playbook执行时显示name属性值。对于具有多个playtaskspalybook,使用name属性会给监控playbook执行提供非常大帮助。...这会使Ansible报告执行该playbook将会发生什么更改,但不会对受管主机进行任何实际更改。 下面演示了一个playbook运行,它在受管主机上安装了最新版本httpd软件包。

2.8K20

全方位对比:Python、Julia、MATLAB、IDL Java (2019 版)

该测试用例旨在测量语言访问连续内存位置速度,并查看每种语言如何处理循环向量化。 表 CPA-1.0: Xeon 节点上使用循环复制矩阵元素所用时间。...它第一项是: ? 斐波那契数列经济学、计算机科学、生物学、组合学等领域都有广泛应用。我们计算第 n 个斐波那契数列测量所用时间。迭代计算递归计算都需要计算时间。...当 n 发生变化时,测量完整全部操作所用时间。 表 TRG-1.0: Xeon 节点上计算三角函数所用时间。...通过仅在必要创建变量以及“清空”不再使用变量来减少内存占用非常重要。 对于相同任务,使用内置函数会比内联代码带来更高性能。 Julia R 提供了简单基准测试工具。...循环向量化: 与使用循环相比,Python( NumPy)、IDL R 向量化时运行速度更快。 使用 Numba ,只要使用 NumPy 数组,Python 就可以更快地处理循环。

2.9K20

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

每个任务都有一个状态, ok 表示它已成功运行。 PLAY RECAP 汇总了每个主机 playbook 中所有任务结果。在此示例中,有2个任务,因此 ok=2 表示每个任务都已成功运行。...(例如 -l) --sftp-extra-args 指定仅传递给 SFTP 额外参数(例如 -f、-l) --skip-tags 仅运行标签与这些值不匹配重头戏任务...> 指定仅传递给 ssh 额外参数(例如 -R) --start-at-task 与此名称匹配任务处启动 playbook --step 在运行前确认每个任务 --...、配置文件位置、配置模块搜索路径、模块位置、可执行文件位置退出 -C, --check 不要进行任何更改;相反,请尝试预测可能发生一些变化 -D, --diff 更改(小)文件模板显示这些文件差异...-k,--ask-pass 询问连接密码 -l , --limit 进一步将选定主机限制为其他模式 -t,--tags 仅运行标记有这些值重头戏任务

22310

如何快速学习Ansible使用

ansible是一种自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)优点,实现批量系统配置、批量程序部署、批量运行命令等功能...未分组机器需保留在hosts顶部,分组可以使用[]指定,如: [web] linuxtoy.org 同时,分组也能嵌套: [vps:children] web db 此外,也可以通过数字字母模式来指定一系列连续主机...: • -i:指定inventory文件,使用当前目录下hosts • all:针对 hosts 定义所有主机执行,这里也可以指定组名或模式 • -m:指定所用模块,我们使用 Ansible...使用 Playbook 管理复杂任务 对于需反复执行、较为复杂任务,我们可以通过定义Playbook来搞定。...,稍后可通过变量形式Playbook中使用;vars定义变量,也可单独放在文件中;tasks指定要执行任务

1.2K10

如何在Ubuntu 14.04上使用Ansible部署多个PHP应用程序

但是,如果您在浏览器中访问http://laravel.example.com/,它应该显示我们原始应用程序。 第3步 - 在任务中循环变量 本节中,我们将学习如何遍历任务变量列表。...第4步 - 模板中应用循环变量 本节中,我们将介绍如何在模板中使用循环变量。 模板中循环变量非常简单。它们使用方式与在任务中使用方式完全相同,就像所有其他变量一样。...完成运行后,浏览器中刷新站点,它应该显示与上一个教程末尾相同内容: Queue: YES Cron: YES 第5步 - 一起循环多个变量 在这一步中,我们将在任务中循环多个变量。...现在是时候运行剧本了: ansible-playbook php.yml --ask-sudo-pass 当设计者设置新应用程序时,此步骤可能需要一段时间。...最后我们可以运行我们剧本: ansible-playbook php.yml --ask-sudo-pass Ansible需要一段时间才能运行,因为它是第二台服务器上设置了所有内容。

8.6K00

Ansible常用功能说明

因此轮训检查时间内,ansible仍然正在运行(尽管某批任务已经被放到后台执行了),当前shell进程仍被占用处于睡眠状态,只有指定检查时间间隔为0,才会尽快将所有任务放到后台并释放shell。...async参数值:代表了这个任务执行时间上限值。即任务执行所用时间如果超出这个时间,则认为任务失败。此参数若未设置,则为同步执行。 poll参数值:代表了任务异步执行时轮询时间间隔。...使用asyncpoll这两个关键字便可以并行运行一个任务,即在所有机器上一次性运行。...当在一个独立群集环境中配置,只是想操作其中某一台主机,或者特定主机上运行task任务,此时就需要用到ansible任务委托功能。...使用delegate_to关键字可以配置task任务指定机器上执行,就是说其他task任务还是hosts关键字配置机器上运行,到了这个关键字所在任务,就使用委托机器运行

7.7K42

python中Ansible模块Playbook具体使用

ansible-playbook命令与ansible命令相同命令行选项: -T –timeout:建立SSH连接超时时间 –key-file –private-key:建立SSH连接私钥文件...例如,–list-tasks选项,该选项用来显示当前Playbook中任务列表。当Playbook比较大,可以通过这个方式快速查看任务列表。...当我们使–step选项执行Playbookansible-playbook每一个任务之前都会停住,等侍用户输入yes,、no或continue。...二、Playbook详细语法 到目前为止,我们已经学习了如何编写Playbook以及如何运行Playbook。但是,我们仅仅介绍了最简单Playbook。...我们tasks选项下定义了部署nginx服务任务列表,包括软件安装、模板渲染、定制s首页重启nginx进程。

4K10

Ansible Playbook介绍使用

将多个play组织一个playbook内,即可以让它们联动起来按实现编排机制唱一台大戏 playbook采用YAML语言编写 二、ansible playbook 如何工作?...每个模块都包含元数据,这些元数据确定执行任务时间地点,以及执行任务用户。还有数以千计其他 Ansible 模块可以执行各种 IT 任务。 三、什么是 yaml?...:模板,可替换模板中变量并实现一些简单逻辑文件; Handlers notify:两者结合使用,由特定条件触发操作,满足条件方才执行,否则不执行; Tags:标签,用于制定某条任务执行,用户选择运行...此外,还可以sudo使用sudo_user指定sudo切换用户。...如果你想要单独执行这个独有的tag标签任务,就可以使用ansible-playbook命令加上 -t 参数来指定 tag 执行剧本。

78220

开源运维自动化工具 Ansible 详解

常用参数如下: chdir:远程主机上运行命令前要提前进入目录; creates:命令运行时创建一个文件,如果文件已存在,则不会执行创建任务; removes:命令运行时移除一个文件,如果文件不存在...; disablerepo:在用yum安装,临时禁用某个仓库ID; enablerepo:在用yum安装,临时启用某个仓库ID; conf_file:yum运行配置文件,而不是使用默认配置文件...上面介绍ansible命令虽然可以完成各种任务,但是当配置一些复杂任务,逐条输入就显得效率非常低下。...; remote_user:远程主机上,运行任务默认身份为root; tasks:任务,即定义具体任务,由模块定义操作列表; handlers:触发器,类似tasks,只是特定条件下才会触发任务...某任务状态在运行后为changed,可通过“notify”通知给相应handlers进行触发执行; roles:角色,将hosts剥离出去,由tasks、handlers等所组成一种特定结构集合

3.6K40

ansible--一键部署redis5.0.5集群及全套脚本

我们再看看这main.yml是如何?...就这两句,这里就说明task任务顺序指定任务文件名奥! include就是干这个用。这个就是jinjia2语句,都得记住!...async:参数值代表了这个任务执行时间上限值。即任务执行所用时间如果超出这个时间,则认为任务失败。此参数若未设置,则为同步执行。 poll:参数值代表了任务异步执行时轮询时间间隔。...templates有点多:波哥写个时候还挺费劲。就不讲了,应该能看懂就是shell脚本。 咱们最后总结一下咱们这个项目的ansible-playbook写法特点。...2、tasks文件拆分:将一个大目的拆分成几个大步骤,然后用main文件导入细分二级任务文件并且控制其执行顺序。 3、变量类型声明运算。 4、模板配置及ansible+shell脚本调用。

58310

一文详解 Ansible 自动化运维!

常用参数如下: chdir:远程主机上运行命令前要提前进入目录; creates:命令运行时创建一个文件,如果文件已存在,则不会执行创建任务; removes:命令运行时移除一个文件,如果文件不存在...; disablerepo:在用yum安装,临时禁用某个仓库ID; enablerepo:在用yum安装,临时启用某个仓库ID; conf_file:yum运行配置文件,而不是使用默认配置文件...上面介绍ansible命令虽然可以完成各种任务,但是当配置一些复杂任务,逐条输入就显得效率非常低下。...更有效方案是playbook配置文件中放置所有的任务代码,利用ansible-playbook命令执行该文件,可以实现自动化运维。YAML文件扩展名通常为.yaml或.yml。...某任务状态在运行后为changed,可通过“notify”通知给相应handlers进行触发执行; roles:角色,将hosts剥离出去,由tasks、handlers等所组成一种特定结构集合

2.8K30

如何在Ubuntu 14.04上使用Ansible部署高级PHP应用程序

介绍 本教程中,我们将介绍如何设置SSH密钥以支持代码部署/发布工具,配置系统防火墙,配置配置数据库(包括密码!),以及设置任务调度程序(crons)队列守护进程。...shellAnsible中使用任务,记住在运行任务之前完成处理任务输出/结果整个工作流程以避免必须手动登录重置状态,这一点非常重要。...Cron任务设定时间表上运行命令,可用于为您应用程序执行任意数量任务,例如执行维护任务或发送电子邮件活动更新 - 基本上任何需要定期完成而无需手动用户干预任务。...这意味着如果先前schedule:run命令仍在运行,则不会再次运行。这有助于避免cron任务循环中被锁定情况,并且随着时间推移,服务器资源耗尽之前,会启动相同任务越来越多实例。...队列任务由工作者一次执行一次,并且当在队列中找到它们将按需处理。队列任务通常用于需要时间执行工作,例如发送电子邮件或对外部服务进行API调用。

10.7K60

AnsiblePlaybook基操

1.0 PlayBook核心元素 Hosts:playbook中每一个play目的都是为了让特定主机以某个指定用户身份执行任务,hosts用于指定要执行指定任务主机,须事先定义主机清单中....也可以通过指定其通过sudo方式远程主机上执行任务,其可用于play全局或某任务.此外,甚至可以sudo使用sudo_user指定sudo切换用户. varniables: 内置变量或自定义变量...: 指定某条任务执行,用于选择运行playbook中部分代码. ansible-playbook -C hello.yaml - C 选项检查剧本是否成功,并不实际执行 1.0.1 忽略错误信息 tasks...,但是不会执行 --list-hosts: 列出运行任务主机 --limit: 主机列表,只针对主机列表中主机执行 -v: 显示过程 --list-tasks: 查看任务列表 ansible-playbook...task执行与否前提要用到条件测试, 通过when语句实现,task中使用,jinja2语法格式 task后添加when子句即可使用条件测试;when语句支持Jinja2表达式语法 当ansible_distribution

85910

一次近乎完美的PostgreSQL版本大升级实践

HA 集群通过 Patroni 进行管理配置,以保证 Consul 集群及其所有复制体异步流复制中,使用复制槽 WAL 对 GCS 存储桶进行复制工作 leader 选举一致性。...ansible-playbook 对于这一步实现,是通过从 leader 节点到每一个副本都有一个任务新旧数据目录中父目录中触发 rsync 命令。...、WEB-API 另一个 ansible-playbook 运行升级过程: 协调所有数据库连接池流量 控制 Patroni 集群 Consul 实例 主节点次级节点上执行升级 收集升级后统计数据...使用 Chef 同步更改,以保持配置管理完整性 验证集群完整性状态 执行 GCP 快照 (可能)回滚过程 playbook 以交互方式逐个运行所有任务,让程序员得以在任意给定执行点跳过或暂停程序...升级过程由停止所有流量及相关服务开始,这是为了避免用户更新中途访问网站。 下面图表显示服务更新之前,维护期间(图标中空白部分)、以及维护结束、流量恢复后流量 HTTP 数据统计。

1.7K10
领券