首页 > 解决方案 > ansible playbook failed: Timeout (12s) waiting for privilege escalation prompt: "}

问题描述

我正在尝试在 VM 上自动化我的一些手动任务。作为其中的一部分,我的虚拟机没有直接的 root 访问权限。所以我必须使用不同的用户,然后升级到 root。当我尝试切换到 root 用户时,密码提示与默认提示不同。我看到的提示如下图

================== [user1@vm-1 tmp]$ su - root

输入登录密码:

我写了一本剧本来测试连接性。该剧如下图

======================================

 hosts: vm-1
 any_errors_fatal: true
 become: true
 become_method: su
 become_user: root
 gather_facts: no
 vars:
 ansible_become_pass: "r00t"
 tasks:
 name: Test me
 command: 'echo works'

======================================

我的主机文件如下所示

localhost ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
vm-1 ansible_ssh_host=1.2.3.4 
ansible_connection=ssh 
ansible_ssh_user=user1 
ansible_ssh_pass=password  
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

======================================

使用此配置,当我尝试运行游戏时,我遇到了错误

致命:[vm-1]:失败!=> {"msg": "等待提权提示超时(12s):"}

相同的剧本适用于不同的虚拟机,但尝试将用户切换到 root 时的提示只是“Passowrd”

感谢您对此的帮助。

顺便说一句,我在 ansible 2.4、2.5 版本中尝试过这个。在这两个版本中,我都遇到了同样的错误。

提前致谢。拉姆

标签: ansible

解决方案


我很难找到一张公开的票,但这是一张已关闭的票,它有一些变通方法和一些可能对您有用也可能不适用的解决方案: https ://github.com/ansible/ansible/issues/14426

我至少有两台机器,列出的解决方案都不起作用。它还会减慢没有 Ansible 的直接 SSH,并且重新启动不起作用。我无法弄清楚这个问题,所以现在我只是重建机器。

正如@AHT 所说,您可以在 ansible.cfg 中将超时时间增加到 30 秒,但是,我认为这应该只是暂时的,因为它掩盖了更大的问题。


推荐阅读