web-dev-qa-db-ja.com

権限昇格のプロンプトを待機するAnsible Timeout(12s)

AWSインスタンスでAnsibleプレイブックを実行できません。これが私のバージョンです:

_$ 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_を在庫パラメーターとして使用して同じプレイブックを実行すると、Vagrantインスタンスで完全に機能します(プレイブック/ロール自体に問題がないことを証明しています)

また、_-vvvv_を使用して実行する場合は、_exec ssh_行をコピーして手動で実行すると、問題なくAWSに接続されます。

EC2インスタンスに接続するには、インベントリファイルに他のパラメーターを追加する必要がありますか?何が欠けていますか?

10
vmenezes

このエラーに関するgitの問題があり、Ansible 2.xのさまざまなバージョンに影響します https://github.com/ansible/ansible/issues/13278#issuecomment-216307695

私の解決策は、単にtimeout=30/etc/ansible/ansible.cfgに追加することでした。

これは「タスク」または「ロール」のタイムアウトではなく、エラーを解決するのに十分でした(私はそれよりはるかに時間がかかるいくつかのロール/タスクがあります)。

9
vmenezes

これをターゲットコンピュータで実行します

Sudo apt-get install python-simplejson
0
narayan nilesh

Ansible設定ファイルを変更したのを忘れたので、システムのこのエラーを修正しました:

Sudo vim /etc/ansible/ansible.cfg 

Sudoをrootにしようとしている可能性のある特権パラメーターをコメント化してみてください。

そのようです:

[privilege_escalation]
#become=True
#become_method=su
#become_user=root
#become_ask_pass=False
#become_exe="Sudo su -"

Rootになる権限がないため、sshしようとしたアカウント。

0
DDrake

移行先サーバーで古いバージョンのSudoに問題がないか確認してください。古いSudoバージョンの中には、-nオプションを使用できないものがあります。

0
Jose

Ec2インスタンスのセットアップフェーズに時間がかかることがあります。タイムアウト値をansible.cfgtimeout=40のように変更する必要があります。これにより、タイムアウト値が40秒に設定されます。

0
Mr Kashyap

安全なVM AWS、QEMU、VBoxのイメージを分離されたネットワーク上で構築し、DNSサポートを制限しています。SSHタイムアウトを40秒に増やすと、状況に影響が限定されました。

Packer v1.5.5、Ansible v2.9.2、OpenSSH v7.4p1を使用しています

私の解決策は、/etc/ssh/ssd_configUseDNSパラメータをnoに変更することでした。

RHEL/CentOSキックスタート構成に次の行を追加したところ、すばらしい結果が得られました。

%post
# Disable DNS lookups by sshd to address Ansible timeouts
Perl -npe 's/^#UseDNS yes/UseDNS no/g' -i /etc/ssh/sshd_config
%end
0
Glenn Bell

私は次のようにコマンドを実行しました&それは動作します:command:

ansible-playbook -c paramiko httpd.yml
0
sambit

私の場合、それは私のプレイブックに

become_method: su
become_flags: "-"

これは、ホストでパスワード要求を要求します。

ansible-playbooks … --ask-become-passを追加してパスワードを渡すことで問題は解決しました。

0
GG.
vim /etc/ansible/ansible.cfg

SSHタイムアウト

timeout = 10 ( change to 60 )