AWX执行Playbook时SSH连接超时失败求助
看起来你遇到的不是SSH连接失败的问题,而是连接成功建立后,执行后续命令超时了!从你提供的AWX日志里能明确看到这些成功的步骤:
- 已经成功和远程设备10.162.29.138建立了SSH连接
- 能执行
echo ~root并返回了/home/root路径 - 能在远程设备上创建Ansible临时目录
- 甚至成功完成了Python解释器的探测,找到了/usr/bin/python3.5
但最后执行/usr/bin/python3.5的时候触发了超时报错,下面给你几个排查方向:
先确认远程设备的Python环境是否正常
手动登录到远程设备,直接执行/usr/bin/python3.5,看看会不会卡住、响应缓慢或者报错。Ansible依赖Python环境来执行模块逻辑,哪怕是shell模块也会先初始化Python环境,如果这个过程因为资源不足或者Python本身有问题,就会触发超时。调整Playbook的超时时间
你在Playbook里设置了timeout: 10(10秒),可能远程设备执行命令的时间刚好超过了这个阈值。先把这个值改大一点,比如改成timeout: 30,再试一次看看能不能成功。检查远程设备的系统资源状态
登录远程设备后用top或者free命令看看CPU、内存是不是被占满了,如果系统负载很高,执行任何命令都会变慢,自然容易触发超时。简化测试命令,排除命令本身的问题
先把shell: "date"换成更简单的command: echo test,看看会不会超时。如果这个简单命令能成功,那可能是原来的date或者后续要执行的固件文件读取命令有问题(比如文件太大、读取慢)。关闭SSH控制连接复用
日志里AWX用了ControlMaster=auto的SSH参数,有时候控制连接复用会导致奇怪的卡住问题。可以在Playbook里添加变量关闭这个功能:vars: ansible_ssh_args: '-o ControlMaster=no'检查远程设备临时目录的权限
虽然日志显示临时目录创建成功,但可以确认下/home/root/.ansible/tmp的权限是否为root所有,有没有读写权限异常的情况,这也可能导致后续操作卡住。
备注:内容来源于stack exchange,提问作者leonardf2001

