Ansible 2.3.1.0执行Playbook遇Permission Denied问题求助
解决Ansible扩容逻辑卷时连接中断的问题
看起来你在用Ansible 2.3.1.0管理RHEL7远程主机时,执行扩容/opt逻辑卷的Playbook遭遇了连接中断错误。先把你的问题背景和Playbook整理清楚:
问题重现
你收到的错误提示:
fatal: [my-test.host.nu]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Shared connection to my-test.host.nu closed.\r\n", "module_std...
你的Playbook内容:
--- - hosts: my-test remote_user: myuser become: true become_method: sudo tasks: #Extend /opt to 1GB - name: Extend /opt 2048m. lvol: vg: rootvg lv: rootvg-opt size: 1024m
可能的原因及修复步骤
1. 先确认sudo权限配置
Ansible用become: true切换权限时,如果myuser需要输入sudo密码但Ansible没拿到,就会导致连接直接关闭。
- 登录远程RHEL7主机,用
visudo或者编辑/etc/sudoers.d/myuser文件,给myuser加上无密码sudo权限:
注意一定要用myuser ALL=(ALL) NOPASSWD: ALLvisudo编辑,避免语法错误导致sudo失效。
2. 检查逻辑卷参数的正确性
这里有两个容易踩坑的点:
- 确认远程主机上确实存在
rootvg卷组和rootvg-opt逻辑卷,执行以下命令验证:vgs rootvg lvs rootvg/rootvg-opt - 你的Playbook里写的
size: 1024m是把LV设置为1GB总容量,如果是要扩容1GB,需要改成size: +1024m——Ansible 2.3的lvol模块需要用+号表示增量扩容,这个细节很容易出错!
3. 明确指定远程Python路径
虽然你说Python在/usr/bin/python,但可以在Playbook里明确声明,避免Ansible自动探测出错:
--- - hosts: my-test remote_user: myuser become: true become_method: sudo ansible_python_interpreter: /usr/bin/python # 加上这一行 tasks: #Extend /opt by 1GB - name: Extend /opt by 1024m. lvol: vg: rootvg lv: rootvg-opt size: +1024m
4. 开启调试模式抓细节
如果以上步骤都没解决,执行Playbook时加上-vvv参数,获取完整的错误日志,能帮你精准定位问题:
ansible-playbook your_playbook.yml -vvv
内容的提问来源于stack exchange,提问作者Kermit
相关产品推荐
相关产品推荐

