Ansible优化

本文介绍了如何优化Ansible的执行速度,包括开启SSH长连接以减少连接建立时间,启用pipelining避免脚本复制,利用scp_if_ssh选项适应无SFTP的环境,设置facts缓存以及通过Inventory管理多环境。此外,建议采用playbook和role结构,使用when条件区分不同环境,使用--syntax-check进行语法检查,并通过灰度发布确保配置正确性,最终将所有配置纳入git仓库进行统一管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

优化

  • 优化ansible速度
  1. 开启SSH长连接

     # ssh版本:> 5.6
     [ssh_connection]
     sh_args = -C -o ControlMaster=auto -o ControlPersist=5m  #连接保留5d  ansible.cfg  -C 压缩传输
     control_path_dir = $HOME/.ansible/cp
     control_path = %(directory)s/%%h-%%r
    

    设置之后,连接信息会被保留在~.ansible/cp下, netstat -nltpa | grep ESTABLISH | grep ssh 会看到长连接存在

  2. 开启pipelining

    ansible执行过程中,他会基于调用的模块生成一个python脚本,然后将python脚本复制到主机上,最后执行脚本.
    ansible支持一个优化,叫做pipelining,在这个模式下ansible执行脚本时并不会去复制它,而是通过管道传递给ssh会话,这会让ansible的ssh会话从2个减少到1个,从而节省时间.

     [ssh_connection]
     pipelining = True  # sudoer配置要关闭requiretty选项(不需要再终端执行sudo命令)
     use_tty = False
    
  3. scp_if_ssh

     scp_if_ssh=False
    

用户操控一个一个没有开启SFTP协议的远程系统.如果这个设置为True,scp将代替用来为远程主机传输文件:

  1. 设置facts 缓存

     # 保存json文件
     gathering = smart
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值