收到项目反馈,客户在使用我们提供的工具部署产品时遇到了困难,在主机添加步骤上遇到了问题,导致实施团队无法继续推进工作,因此向我们寻求帮助。
环境信息:kylin10
架构:arm
初见端倪
在系统部署过程中,针对主机的批量操作,我们开发时采用了ansible剧本。最近遇到了执行过程卡顿的问题,初步怀疑是ansible执行时出现了阻塞。为了验证这一点,我已经发送了一条命令给现场进行测试。
localhost$ date 2024年02月19日星期 17:30:41 CST localhost$ ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test 192.168.2.84 CHANGED rc=0 >> 2024年02月19日星期 17:33:34 CST
果然,一条简单的ansible命令,环境上执行了2min多才返回结果,问题原因就出在这里了,有了大致方向。
ansible实际执行时仍然依赖SSH远程连接,之前遇到SSH连接速度缓慢的情况,初步推测可能是由于SSH连接速度慢导致执行返回速度慢。
检查ssh参数,查/etc/ssh/sshd_config配置
GSSAPIAuthentication no #关闭SERVER上的GSS认证
在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭。在配置文件中,虽然UseDNS yes是被注释的,但默认开关就是yes
UseDNS=no #关闭SERVER上DNS反向解析
结果发现,项目上这2个ssh参数配置都是和上面一致的,并且手工测试ssh登录对端主机,速度很快
问题分析
没有头绪,只能用linux的strace命令跟踪下系统调用了
查看strace日志发现有大量的select等待,应该是在执行某项操作时长时间阻塞。
使用ansible调试
ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv
命令后加上-vvv就可以看到详细的执行过程了
解决问题
从debug信息中,看到报错”mux_client_read_packet: read header failed: Broken pipe”,执行脚本的地方可以看到在执行python相关的命令,ansible依赖于python,是否和python版本有关系呢?
在网上查看资料说ansible和python存在兼容性问题。
于是检查下python版本,可以看到python默认版本为python2,但是系统上也有python3,尝试将软链接修改python3.7验证
再次执anible命令
执行时间1.3s,看来是ansible和python版本的兼容性导致了这次问题。
以上是ansible执行速度慢怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!

如果您的PC在AMD芯片组上运行,则可能会在使用时收到“ Windows Update可能自动替换AMD”的错误消息。不用担心! PHP.CN的这篇文章为您提供了一些解决方案。

什么是Microsoft Sway,什么是PowerPoint?这两个是不同的演示工具,可以促进人们的工作和学习。因此,它们之间有什么区别以及它们之间的选择。 php.cn网站上的这篇文章将为您提供一些
![[必须知道]赢得10个离线安装程序:安装赢得10 22H2离线](https://img.php.cn/upload/article/001/242/473/174490855357657.png?x-oss-process=image/resize,p_40)
是否有Windows 10离线安装程序供您安装最新的Windows 10离线或没有Internet?当然,是的。 php.cn软件向您展示了如何在这篇文章中获取Windows 10离线安装程序。

一些用户报告说,许可证到期后,他们符合Windows Server自动驶入问题。来自PHP.CN的这篇文章会教您如何停止过期的Windows Server自动检查。现在,继续阅读。

访问特定文件夹时,您是否正在努力处理“无法显示该文件”错误?一些用户抱怨这种麻烦并寻找有用的措施。有关该文件的本文无法从php.cn Wil中显示

Street Fighter 6是Capcom出版的格斗游戏,属于街头霸王专营权,吸引了许多游戏迷。有些人希望在PC上玩这个游戏。为此,您需要满足一些街头霸王6系统要求

在Windows中默认情况下,在驱动器字母之前显示驱动名称(音量标签)。您知道如何在驱动名称之前显示驱动字母吗?来自PHP.CN的这篇文章告诉您如何在文件资源管理器中首先显示驱动器字母。

语言栏对于多语言Windows用户很有用。您可以通过单击来更改语言。有些人想关闭任务栏上的语言栏。你知道该怎么做吗?如果您不知道,请阅读此php.cn帖子以查找P


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版
视觉化网页开发工具