美文网首页
ansible速度优化

ansible速度优化

作者: carey_ff72 | 来源:发表于2017-06-02 16:01 被阅读0次

    文章来自于 carey的博客:ansible速度优化

    有人说ansible的执行效率比价差,但是可以通过很多的优化去调整执行速度

    $ time ansible centos -m ping -o
    192.168.56.101 | SUCCESS => {"changed": false, "ping": "pong"}
    192.168.56.102 | SUCCESS => {"changed": false, "ping": "pong"}
    
    real    0m1.298s
    user    0m0.479s
    sys 0m0.217s
    

    开启ssh长连接

    OpenSSH 5.6版本后SSH支持了Multiplexing,关于这个特性可以参考文章Multiplexing
    修改ansible.cfg文件
    设置参数

    ssh_args = -C -o ControlMaster=auto -o ControlPersist=5d
    
    ControlPersist=5d //长连接时间保持5天
    

    开启后,通过SSH连接过的设备会在当前目录.ansible/cp/目录下生成一个socket文件,通过netstat命令会看到,有ESTABLISHED状态的连接一直与远端社保进行tcp连接

    开启pipelining

    执行流程优化
    需要被控制主机/etc/sudoers文件编辑当前ansible ssh用户的配置为requiretty。否则在执行的时候会提示sudo: sorry, you must have a tty to run sudo
    设置参数

    pipelining = True
    

    开启accelerate模式

    accelerate在远端服务器上运行一个守护进程。
    注意: 开启accelerate需要在管理与被管理端都安装python-keyczar软件包。
    设置参数

    [accelerate]
    #accelerate_port = 5099
    #accelerate_timeout = 30
    #accelerate_connect_timeout = 5.0
    

    开启facts缓存

    如果你不使用facts里的信息,可以在playbook中设置gather_facts: False来提交效
    设置参数
    使用json文件存储facts信息

    gathering = smart
    fact_caching_timeout = 86400 
    fact_caching = jsonfile 
    fact_caching_connection = /dev/shm/ansible_fact_cache
    

    目前facts存储还不支持远端,所以需要在ansible管理机上安装redis服务,然后安装redis python库。pip install redis
    设置参数

    gathering = smart
    fact_caching_timeout = 86400
    fact_caching = redis
    

    文章来自于 carey的博客 :ansible速度优化

    相关文章

      网友评论

          本文标题:ansible速度优化

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