2016-09-16 389 views
2

我在AWS實例上運行我的Ansible操作手冊時遇到問題。這裏是我的版本:Ansible超時(12秒)等待特權升級提示

$ ansible --version 
ansible 2.0.0.2 

我創建了一個清單文件:

[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' 

測試連接到我的服務器:

$ ansible -i provisioner/inventory my_ec2_instance -m ping 
default | SUCCESS => { 
    "changed": false, 
    "ping": "pong" 
} 

現就本次庫存運行我的劇本時,我得到了錯誤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 

如果我運行使用.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory的清單參數它完美的作品對我的流浪實例相同的劇本。(我相信,證明沒有什麼不妥的劇本/角色本身)

另外,如果我有運行一個-vvvv,複製exec ssh行並手動運行它確實連接到AWS沒有問題。

我是否需要在我的庫存文件中添加任何其他參數以連接EC2實例?我錯過了什麼?

回答

6

有一個關於此錯誤的一個git的問題,影響Ansible 2.X的各種版本在這裏https://github.com/ansible/ansible/issues/13278#issuecomment-216307695

我的解決辦法是簡單地添加到timeout=30/etc/ansible/ansible.cfg

這不是一個「任務」或「角色」超時,足以解決錯誤(我確實有一些角色/任務需要比這更長的時間)。

+0

工作!謝謝 – Gadi

+0

不適合我。 – gies0r