在我的管理主机上,我已经安装了Ansible 2.2.0.0并尝试连接到我的客户端。
客户端是一个只接受SSH密钥登录的EC2实例。我有一个简单的playbook,在客户端上创建一个临时文件。
我发现被要求多次输入私钥的密码,并想知道原因。在以前的Ansible版本中,我没有看到这种行为。
我发现了这个链接:https://github.com/ansible/ansible/issues/16354,其中提到要使用ssh-agent,我现在正在使用它并且它有效,但我很想知道为什么需要与客户端进行这么多次交互?另外,如果我使用ask-pass选项,Ansible会卡在那里。
客户端是一个只接受SSH密钥登录的EC2实例。我有一个简单的playbook,在客户端上创建一个临时文件。
我发现被要求多次输入私钥的密码,并想知道原因。在以前的Ansible版本中,我没有看到这种行为。
ansible-playbook -i inventory soe-yml --verbose --private-key <keyfile> -vvv
ansible-playbook -i inventory soe-yml --verbose --private-key <keyfile>
Using /home/X/ansible/ansible.cfg as config file
PLAY [<instance-dns>] **************************
TASK [setup] *******************************************************************
Enter passphrase for key 'X':
[WARNING]: sftp transfer mechanism failed on [<instance-dns>]. Use ANSIBLE_DEBUG=1 to see detailed information
Enter passphrase for key 'X':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
ok: [<instance-dns>]
TASK [Create test file] ********************************************************
Enter passphrase for key '<keyfile>':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
changed: [] => {"changed": true, "dest": "/tmp/hello", "gid": 1000, "group": "centos", "mode": "0664", "owner": "centos", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 0, "state": "file", "uid": 1000}
PLAY RECAP *********************************************************************
<instance-dns> : ok=2 changed=1 unreachable=0 failed=0`
```
我发现了这个链接:https://github.com/ansible/ansible/issues/16354,其中提到要使用ssh-agent,我现在正在使用它并且它有效,但我很想知道为什么需要与客户端进行这么多次交互?另外,如果我使用ask-pass选项,Ansible会卡在那里。
[X@X ansible]$ ansible-playbook -i inventory soe-yml --verbose --private-key key --ask-pass
Using /home/x/ansible/ansible.cfg as config file
SSH password:
PLAY [hostx] **************************
TASK [setup] ***************
这是一个bug吗?看到过类似的情况吗?