Ansible超时(12秒)等待权限升级提示

vme*_*zes 7 amazon-ec2 ansible-playbook ansible-2.x

我在AWS实例上运行Ansible playbook时遇到了麻烦.这是我的版本:

$ ansible --version
ansible 2.0.0.2
Run Code Online (Sandbox Code Playgroud)

我创建了一个库存文件:

[my_ec2_instance]
default ansible_host=MY_EC2_ADDRESS ansible_user='ubuntu' ansible_ssh_private_key_file='/home/MY_USER/MY_KEYS/MY_KEY.pem'
Run Code Online (Sandbox Code Playgroud)

测试与我的服务器的连接:

$ ansible -i provisioner/inventory my_ec2_instance -m ping
default | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
Run Code Online (Sandbox Code Playgroud)

现在当我在这个库存上运行我的Playbook时,我得到Timeout (12s) waiting for privilege escalation prompt如下错误:

$ ansible-playbook -i provisioner/inventory -l my_ec2_instance provisioner/playbook.yml

PLAY [Ubuntu14/Python3/Postgres/Nginx/Gunicorn/Django stack] *****

TASK [setup] *******************************************************************
fatal: [default]: FAILED! => {"failed": true, "msg": "ERROR! Timeout (12s) waiting for privilege escalation prompt: "}

NO MORE HOSTS LEFT *************************************************************

PLAY RECAP *********************************************************************
default                    : ok=0    changed=0    unreachable=0    failed=1
Run Code Online (Sandbox Code Playgroud)

如果我使用.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory库存参数运行相同的剧本,它在我的Vagrant实例上完美运行.(我相信,证明剧本/角色本身没有错)

此外,如果我用a运行它-vvvv,复制该exec ssh行并手动运行它确实连接到AWS没有问题.

我是否需要在库存文件中添加任何其他参数来连接EC2实例?我错过了什么?

小智 12

vim /etc/ansible/ansible.cfg
Run Code Online (Sandbox Code Playgroud)

SSH 超时

[default]
timeout = 10 ( change to 60 )
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,因为我的 LDAP 很慢并且增加超时有帮助。但是我建议编辑本地 ansible.cfg 而不是全局 /etc/ansible/ansible.cfg (2认同)

vme*_*zes 9

这个错误有一个git问题影响各种版本的Ansible 2.x在这里https://github.com/ansible/ansible/issues/13278#issuecomment-216307695

我的解决方案只是添加timeout=30/etc/ansible/ansible.cfg.

这不是"任务"或"角色"超时,并且足以解决错误(我确实有一些角色/任务需要比这更长的时间).


Don*_*Lee 8

就我而言,根本原因是 /etc/hosts 中的 localhost 条目不正确,导致任何sudo命令延迟 20 秒。

127.0.0.1 wronghostname
Run Code Online (Sandbox Code Playgroud)

将其更改为正确的主机名以修复它。sudo/特权命令不再有延迟。


GG.*_*GG. 7

就我而言,这是因为我的剧本有

\n\n
become_method: su\nbecome_flags: "-"\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会提示在主机上请求密码。

\n\n

添加ansible-playbooks \xe2\x80\xa6 --ask-become-pass并传递密码解决了该问题。

\n