ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Ansible详解(十七)——Ansible性能调优

2022-03-20 23:03:07  阅读:228  来源: 互联网

标签:Ansible 配置文件 公钥 调优 SSH 关闭 链接 详解


今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible的性能调优。

一、Ansible调优详解

相比于其他的自动化配置工具,Ansible的一个突出特性就是它是基于SSH链接对下游设备进行控制的,这样做的突出好处就是方便,下游设备不需要安装客户端软件。但是这也不可避免的带来一个问题,即Ansible的执行速度较慢。并且,随着Ansible控制设备的增多,Ansible的执行速度会越来越慢。
关于Ansible执行速度的问题,尽管是Ansible的硬伤,但是我们还是可以对其进行部分的优化,尽量的加快Ansible的执行速度。对Ansible的优化可以有两个思路,一个是优化SSH链接,使得SSH的传输速度变快。
另一个如下图所示:
在这里插入图片描述
每次Ansible Playbook在执行时,都会收集下游设备的信息,这个过程通常要耗费较长的时间。因此,我们可以考虑使用Redis对这些信息进行缓存,从而加快收集信息的速度,如果业务环境允许,我们也可以直接控制Ansible设备跳过该步骤。

二、Ansible SSH链接调优

(一)SSH关闭密钥检测

在默认情况下,以SSH登录远程设备时,该设备会检查远程主机的公钥,并且将该公钥记录在~/.ssh/known_hosts文件中,当下次该主机访问时,OpenSSH会核对公钥。如果公钥不同,则OpenSSH会发出警告,如果公钥相同,则OpenSSH则会提示输入密码。
SSH对主机公钥的检查是根据StrictHostKeyChecking变量来设定的,StrictHostKeyChecking的检查级别包括:no(不检查),ask(是否检查要询问),yes(每次都检查),False(关闭检查)。
我们可以在Ansible的配置文件中defaults模块下加入如下代码:

host_key_checking = False

加入后,配置文件如下所示:
在这里插入图片描述
这样,Ansible就可以关闭密钥检测了。

(二)OpenSSH链接优化

在使用OpenSSH服务时,默认情况下服务器端会根据客户端的IP地址进行DNS反向解析,得到客户端的主机名,然后根据获取到的主机名再次进行DNS查询得到IP地址,比较这两个IP地址是否一样。这样做可以在一定程度上提高安全性,但是却会浪费时间,因此,我们可以通过关闭这一特性,来实现加速SSH链接速度的目的。
关闭该特新需要进入到/etc/ssh/sshd_config目录下,找到UseDNS的参数,将其修改为no,修改后的配置文件如下所示:
在这里插入图片描述
之后,重启SSHD服务即可生效。

(三)SSH pipelining链接加速

SSH的pipelining是另一个加速Ansible执行速度的方法。在Ansible的设置中,SSH的pipelining功能时默认关闭的,这是为了兼容不同的sudo配置,主要是requieretty选项。因此,如果我们不需要在Ansible的控制中使用sudo选项,可以关闭这一选项以加快SSH链接速度。
如果要关闭这一项,可以打开Ansible的配置文件/etc/ansible/ansbile.cfg,将pipelining = False改为True即可,修改后的配置文件如下所示:
在这里插入图片描述

三、Ansible Facts调优

(一)关闭Gather Facts

为了减少Ansible在收集客户端信息时的时间,我们首先想到的就是直接删除这一选项。要删除这一步骤,我们可以在palybook文件中添加一行:

gather_facts: no

添加后的Playbook文件如下所示:
在这里插入图片描述
这样,我们在执行该Playbook时,就不会再次进行gather_facts的步骤了,结果如下所示:
在这里插入图片描述

(二)将Facts信息存入Redis缓存

除了删除这一步之外,我们还可以考虑将客户端信息写入内存,以加快信息查询速度。关于这一部分的内容我已单独整理成文,请大家参考如下:
Ansible详解(十六)——Ansible配合Redis
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

标签:Ansible,配置文件,公钥,调优,SSH,关闭,链接,详解
来源: https://blog.csdn.net/weixin_40228200/article/details/123603649

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有