ansible - 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 版本中尝试过这个。在这两个版本中,我都遇到了同样的错误。
提前致谢。拉姆
解决方案
我很难找到一张公开的票,但这是一张已关闭的票,它有一些变通方法和一些可能对您有用也可能不适用的解决方案: https ://github.com/ansible/ansible/issues/14426
我至少有两台机器,列出的解决方案都不起作用。它还会减慢没有 Ansible 的直接 SSH,并且重新启动不起作用。我无法弄清楚这个问题,所以现在我只是重建机器。
正如@AHT 所说,您可以在 ansible.cfg 中将超时时间增加到 30 秒,但是,我认为这应该只是暂时的,因为它掩盖了更大的问题。
推荐阅读
- cryptography - 椭圆曲线中带负数的标量乘法
- r - 如何向 plotly 添加第三个值,以便在 ggplotly 上显示行/观察 ID 变量
- amazon-web-services - aws lambda 在 s3 上写入文件 - javascript
- java - Grafana 正则表达式
- php - 有没有办法将类内部的变量传递给php外部的函数?
- c++ - MOCK_DECLARE_METHOD 和 MOCK_METHOD 有什么区别
- typescript - Typescript:是否可以为类型联合添加扩展方法,例如 T | 空 | 不明确的?
- java - Java.sql.date 存储以前的日期而不是给定的日期
- amazon-web-services - AWS:在多个无服务器应用程序中重用 amazon Cognito Userpool
- javascript - 无法读取未定义的属性“解码”