我正在使用Root.io
\'sTrellis
工作流。
我遇到一个错误,无法通过建立连接ansible-playbook
.
当我跑步时ansible-playbook server.yml -e env=staging
它向我抛出了一个错误,即无法建立ssh连接,因此我检查了users.yml
文件,并在keys
第节:
- name: "{{ admin_user }}"
groups:
- sudo
keys:
- "{{ lookup(\'file\', \'~/.ssh/id_rsa.pub\') }}"
- https://github.com/dummyuser.keys
我意识到我有一个
id_rsa.pub
但是我没有在我的服务器上授权它,我正在使用
https://github.com/dummyuser.keys
相反所以我去掉了那条线
- "{{ lookup(\'file\', \'~/.ssh/id_rsa.pub\') }}"
然而,问题仍然存在。答复是:
fatal: [10.10.2.5]: UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
还有,为什么配置指向
public key
当我们需要
private key
通过ssh登录。我通常是这样的
ssh -i ~/.ssh/private_key [email protected]
每当我通过ssh登录到服务器时。
所以我用了另一种方法。这次在cli上指定了密钥
ansible-playbook server.yml -e env=staging -vvvv --key-file=~/.ssh/dummy_rsa
结果我建立了一种联系:
<10.10.2.5> ESTABLISH SSH CONNECTION FOR USER: dummy_admin
但还有一个错误:它说
a password is required
以下是完整信息:
fatal: [10.10.2.5]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {"module_name": "setup"},
"module_stderr": "OpenSSH_6.9p1, LibreSSL 2.1.8\\r\\ndebug1: Reading configuration data /etc/ssh/ssh_config\\r\\ndebug1: /etc/ssh/ssh_config line 21: Applying options for *\\r\\ndebug1: auto-mux: Trying existing master\\r\\ndebug2: fd 3 setting O_NONBLOCK\\r\\ndebug2: mux_client_hello_exchange: master version 4\\r\\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\\r\\ndebug3: mux_client_request_session: entering\\r\\ndebug3: mux_client_request_alive: entering\\r\\ndebug3: mux_client_request_alive: done pid = 85702\\r\\ndebug3: mux_client_request_session: session request sent\\r\\ndebug1: mux_client_request_session: master session id: 2\\r\\ndebug3: mux_client_read_packet: read header failed: Broken pipe\\r\\ndebug2: Received exit status from master 1\\r\\nShared connection to 10.10.2.5 closed.\\r\\n",
"module_stdout": "sudo: a password is required\\r\\n",
"msg": "MODULE FAILURE",
"parsed": false
}
我不知道为什么它要输入密码我已经在我的
group_vars/staging/vault.yml
以下是内容:
vault_mysql_root_password: stagingpw
vault_sudoer_passwords:
dummy_admin: $6$rounds=656000$8DWzDN3KQkM9SjlF$DhxLkYaayplFmtj9q.EqzMDWmvlLNKsLU0GPL9E0P2EvkFQBsbjcMCXgWkug4a5E66PfwL4eZQXzMLkhXcPBk0
因此,我最终使用以下命令登录:
ansible-playbook server.yml -e env=staging -vvvv --key-file=~/.ssh/dummy_rsa --ask-become-pass
在向我询问密码后,它可以正常工作并为我的服务器提供服务。
有人能解释一下吗?我错过什么了吗?如果你需要更多细节,请告诉我。