美文网首页运维工作中的排坑
Ansible执行速度优化指北

Ansible执行速度优化指北

作者: 左舷的风 | 来源:发表于2019-11-06 18:53 被阅读0次

更新日志:
2019.11.06  更新方法一:禁用采集facts信息;

  最近没事看了看ansible,试了个最简单的playbook,发现执行效率很差,跟saltstack差很多,google了下,发现主要是因为ansible使用ssh执行导致的(这一点也是跟saltstack最大的不同),在此找了找解决方法记录分享下。
  ansible/python版本如下:

#ansible --version
ansible 2.4.2.0
python version = 2.7.5 (default, Apr  9 2019, 14:30:50) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

  playbook内容hello.yml内容,一个很简单的hostname命令

---
- hosts: k8s_nodes
  remote_user: root
  
  tasks:
    - name: hello
      command: hostname

  执行hello.yml,3个节点竟然需要58s!

[root@master playbook]# time ansible-playbook hello.yml 

PLAY [k8s_nodes] ****************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
ok: [10.1.129.122]
ok: [10.1.129.123]
ok: [10.1.129.121]

TASK [hello] ********************************************************************************************************************************************************************************************************************************
changed: [10.1.129.122]
changed: [10.1.129.123]
changed: [10.1.129.121]

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
10.1.129.121               : ok=2    changed=1    unreachable=0    failed=0   
10.1.129.122               : ok=2    changed=1    unreachable=0    failed=0   
10.1.129.123               : ok=2    changed=1    unreachable=0    failed=0   


real    0m58.228s
user    0m10.588s
sys     0m3.153s

  在playbook中添加一行gather_facts: no,再执行只需要6s不到!:

[root@master playbook]# time ansible-playbook hello.yml 

PLAY [k8s_nodes] ****************************************************************************************************************************************************************************************************************************

TASK [hello] ********************************************************************************************************************************************************************************************************************************
changed: [10.1.129.122]
changed: [10.1.129.123]
changed: [10.1.129.121]

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
10.1.129.121               : ok=1    changed=1    unreachable=0    failed=0   
10.1.129.122               : ok=1    changed=1    unreachable=0    failed=0   
10.1.129.123               : ok=1    changed=1    unreachable=0    failed=0   


real    0m5.866s
user    0m3.785s
sys     0m1.020s

  关于facts是什么以及为什么不禁用会导致慢可以看这篇文章《Ansible 进阶 | facts 缓存》
  简单来说就是: facts是远程主机的一堆系统信息,Ansible在对远程主机执行任何一个 playbook 之前,总会先通过 setup 模块获取该主机的 facts,并暂存在内存中,直至该 playbook 执行结束。随着主机数量增多,获取这么多数据也是是非常耗时的。
  看来使用gather_facts: no也是暂时解决这个问题,后续还需要使用redis缓存facts信息(关键词:Ansible 的配置文件中可以修改 gathering结合redis缓存缓存facts信息)

相关文章

  • Ansible执行速度优化指北

    更新日志:2019.11.06  更新方法一:禁用采集facts信息;   最近没事看了看ansible,试了个最...

  • ansible速度优化

    文章来自于 carey的博客:ansible速度优化 有人说ansible的执行效率比价差,但是可以通过很多的优化...

  • Ansible 最佳实战

    优化 Ansible 速度 设置 SSH 为长连接 openssh5.6 版本后支持 Multiplexing 检...

  • Ansible日常优化

    当服务器越来越多,Ansibe执行效率会变得比较慢,可以通过优化Ansible提供工作效率,由于Ansible基于...

  • Ansible 学习指北

    前言 因为工作的缘故接触并积极推动Ansible在企业级生产环境的落地,独立承担并实现了《基于ansible的主机...

  • 【ansible】ansible配置优化

    ansible配置优化 https://www.cnblogs.com/mauricewei/tag/ansible

  • ansible安装及使用

    一、Ansible工作机制 工作机制 二、Ansible执行流程 执行流程 三、安装Ansible 四、配置 4....

  • 自动化运维-ansible

    目录 十五、ansible介绍十六、ansible安装十七、ansible远程执行命令十八、ansible拷贝文件...

  • ansible优化

    优化变量收集facts 在playbook执行过程中,ansible收集facts变量是很耗时的一个步骤,如果我们...

  • javascript的装逼优化技巧之惰性加载函数

    天下武功唯快不破!编程也是同理!程序的优化,其实最终优化的是代码执行速度。而执行速度的提升往往是从很多代码细节当中...

网友评论

    本文标题:Ansible执行速度优化指北

    本文链接:https://www.haomeiwen.com/subject/tucpbctx.html