下载此文档

ansible技术基础-优化.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
ansible基础-优化
       
 
 
 
 
 
 
 
     
     
     
 
 
 
[ansible基础-优化]
转载自()
简介
当管理集群达到一定规模时,ansible达到性能瓶颈是难以避免的,此时我们可以通过一定手段提高ansible的执行效率和性能。
笔者虽未管理过超大规模服务器,但也通过查找资料和咨询大神了解了一些。现总结一些调优方法,供大家参考。
Pipelinling
我们知道ansible执行一个模块要ssh到目的主机多次,开启「pipelining」特性实际上是通过减少ssh连接次数,从而缩短ansible执行时间。在部署大规模服务器或引用模块非常多时,开启「pipelining」特性会给ansible带来显著的性能提升。
开启方法也很简单,,该参数默认值是False。
既然「pipelining」特性默认是关闭的,肯定有它的理由:关闭该特性可以与sudo的requiretty兼容(即/etc/sudoers配置文件的「Defaults requiretty」配置项)。大部分linux操作系统是默认开启requiretty功能的,所以pipelining也是默认False的。
也就是说,如果我们要开启pipelining特性,要么playbook不使用sudo越权功能,要么取消sudo的「requiretty」特性。
该特性可以通过命令行添加 -vvvv 后,根据执行结果对比出区别,因篇幅原因这里不再展示。
适用场景
管理大规模集群
部署代码内容很多,调用了大量的ansible模块
Control_path
control_path通过设置ControlPath sockets的文件路径与文件命名避免因sockets文件过长(超过108个字符串)导致ansible报错的问题。
,「配置项control_path_dir的值」+「根据hostname生成的哈希值」+「ssh端口号」+「用户名」
在ansible旧版本中,默认值是包含主机名的,这在一些特殊情况下(例如EC2主机),会因主机名过长导致ControlPath sockets文件过长,从而导致ansible执行报错。但在新版本中默认值的主机名部分被替换为主机名的哈希值,这很大程度上避免了该问题的发生。
我们也可以设置其他的参数,例如:
control_path = %(directory)s/%%h-%%r
其中$directiry是control_path_dir的值,后面的参数可以灵活定制,可用参数如下:
复制代码
%L 本地主机名的第一个组件
%l 本地主机名(包括域名)
%h 远程主机名(命令行输入)
%n 远程原始主机名
%p 远程主机端口
%r 远程登录用户名
%u 本地 ssh 正在使用的用户名
%i 本地 ssh 正在使用 uid
%C 值为 %l%h%p%r

ansible技术基础-优化 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人科技星球
  • 文件大小96 KB
  • 时间2021-02-25