LInux生产问题排查---ssh连接未释放造成的ansible故障

错误如下:

2019-12-11 17:16:00 {

"_ansible_parsed": false,
"_ansible_no_log": false,
"module_stderr": "WARNING: Your password has expired.\nPassword change required but no TTY available.\n",
"changed": false,
"module_stdout": "",
"rc": 1,
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error"

}

看字面上错误,密码过期,修改密码即可,如果这么简单就不值得我记录了,

ansible的inventory配置如下:

192.168.1.1 ansible_become_user=’’ ansible_ssh_private_key_file=’/apps/exec-ansible/keystore/devops’ uuid=‘11ff8398-1ca7-11ea-bb08-005056af8dc6’ host_ip=‘192.168.1.1’ ansible_ssh_host=‘192.168.1.1’ ansible_ssh_user=‘apps’ ansible_become_pass=’’ ostype=‘linux’

使用ssh -i devops 192.168.1.1 连接成功,说明密码没有过期,ssh使用用户名和密码连接亦然没有问题。

排查思路如下:

我尝试修改我的inventory,发现去掉ansible_ssh_user参数或者加上ansible_ssh_port=22参数 ,ansible可以执行成功

我尝试换台机器,配置一样,IP换了,可以成功,

我尝试换台ansible服务器,发现可以成功

检查下ansible的版本,发现两台ansible服务器一直,都是2以上

初步定位:ansible服务器和192.168.1.1之间有点问题

这时候我果断的开启ansible的调试模式:

ansible --inventory-file=inventory_3 192.168.1.1 -m shell -a pwd -vvv

发现如下内容:

SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=5d -o StrictHostKeyChecking=no -o ‘IdentityFile="/apps/exec-ansible/keystore/devops"’ -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=apps -o ConnectTimeout=10 -o ControlPath=/apps/.ansible/cp/12c4e8d1da 192.168.1.1 ‘/bin/sh -c ‘"’"’/usr/bin/python && sleep 0’"’"’’

了解ansible原理(等待下一章讲解)。发现2以上的ansible都是通过sshpass来运行,发现-o ControlPath=/apps/.ansible/cp/12c4e8d1da,根据ssh原理:每连上一个服务器都会自动在~/.ssh/socket/下创建一个socket文件,下次用相同用户名、端口、主机名进行连接就会自动复用,然后查看ansible配置文件:

发现ansible的socket是放在~/.ansible/cp/下,

这里应该是一堆临时文件,ssh连中断,文件应该被删除,

然后:

ps -ef| grep /apps/.ansible/cp/ | wc -l

居然有430个未释放的,果断的12c4e8d1da

ps -ef| grep /apps/.ansible/cp/12c4e8d1da

然后kill 掉对应的进程,马上可以执行了

在这里插入图片描述
如果对你的学习和工作有帮助,麻烦转发下,谢谢!!!

可以关注公众号一起交流,一起成长。

何以解忧,唯有暴富;好好学习,努力跳槽

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值