使用 ansible 配置服务器时出错

使用 ansible 配置服务器时出错

我又遇到了一个令人沮丧的困境,如果能有其他人来帮我解决就好了(真的,除了我之外,任何人都可以)。我已经使用 sage/bedrock/trellis 构建了一个 wordpress 网站,我正准备将其推送到一个全新的暂存服务器,但很遗憾。当我尝试配置远程服务器时,我收到此错误(即使有该--ask-pass选项...没有该选项也会出现同样的错误)

$sudo ansible-playbook server.yml -e env=staging -u root --ask-pass -vvvv

Failed to connect to the host via ssh: OpenSSH_7.6p1 Ubuntu-4, OpenSSL 1.0.2n
7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/home/jill/.ansible/cp/4c119164e1" does not exist
debug2: resolving "159.65.244.133" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 159.65.244.133 [159.65.244.133] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug3: timeout: 9972 ms remain after connect
debug1: permanently_set_uid: 0/0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2
Ubuntu-4ubuntu2.8
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.8 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 159.65.244.133:22 as 'root'
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type ED25519 in file
/root/.ssh/known_hosts:9
debug3: load_hostkeys: loaded 1 keys from 159.65.244.133
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-
[email protected],ssh-ed25519
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-
sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-
exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-
hellman-group14-sha1,ext-info-c
debug2: host key algorithms: [email protected],ssh-ed25519
,[email protected],ecdsa-
[email protected],[email protected]
,[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-
sha2-nistp521,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes
256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes
256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],hmac-
[email protected],[email protected],hmac-
[email protected],[email protected],[email protected],hmac-sha2-256
,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],hmac-
[email protected],[email protected],hmac-
[email protected],[email protected],[email protected],hmac-sha2-256
,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-
sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-
hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-
sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes
256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes
256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],hmac-
[email protected],[email protected],hmac-
[email protected],[email protected],[email protected],hmac-sha2-256
,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],hmac-
[email protected],[email protected],hmac-
[email protected],[email protected],[email protected],hmac-sha2-256
,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: [email protected] MAC:
<implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC:
<implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ssh-ed25519
SHA256:h5ttXeall7vVdsT+r9GRe6GmAFYozHN5DGjzrfUeRZM
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type ED25519 in file
/root/.ssh/known_hosts:9
debug3: load_hostkeys: loaded 1 keys from 159.65.244.133
debug1: Host '159.65.244.133' is known and matches the ED25519 host key.
debug1: Found key in /root/.ssh/known_hosts:9
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /root/.ssh/id_rsa ((nil))
debug2: key: /root/.ssh/id_dsa ((nil))
debug2: key: /root/.ssh/id_ecdsa ((nil))
debug2: key: /root/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-
interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug3: no such identity: /root/.ssh/id_rsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_ecdsa
debug3: no such identity: /root/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_ed25519
debug3: no such identity: /root/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey).

fatal: [159.65.244.133]: UNREACHABLE! => {
    "changed": false, 
    "unreachable": true
}

这是我运行 ansible ping 时输出的错误

$ ansible staging -m ping -u root --ask-pass

SSH password: 
159.65.244.133 | FAILED! => {
    "changed": false, 
    "failed": true, 
    "module_stderr": "Shared connection to 159.65.244.133 closed.\r\n", 
    "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 
    "msg": "MODULE FAILURE", 
    "rc": 0
}

你可能会注意到它抱怨找不到/usr/bin/python,但文件 /is / 在那里 :c

如果我可以提供更多详细信息,请告诉我。感谢您的建议和帮助!

答案1

第一个错误是由于 SSH 密钥配置不正确造成的。vx3r 是正确的。如果您尝试使用没有 ansible 的密钥通过 SSH 连接到服务器,您应该会收到相同的错误。

对于第二个错误。你有没有看过 Stackoverflow 上的这篇文章?

https://stackoverflow.com/questions/32429259/ansible-fails-with-bin-sh-1-usr-bin-python-not-found

答案2

您的调试输出显示用户名不匹配:

debug1: 控制套接字 "/home/吉尔/.ansible/cp/4c119164e1" 不存在
[...]
debug1:身份文件 //.ssh/id_ed25519-证书类型-1

我假设吉尔是您自己的用户名,并且您使用该用户的密钥配置了 ssh 连接。

尝试ansible-playbook不使用运行sudo。完全没有必要,这样它就不会尝试使用来自用户。

对于第二个错误:ansible 需要安装 python在目标服务器上。我怀疑你只在本地机器上检查过它。在服务器上安装它,然后ansible-playbook再次运行(无需 sudo)。

答案3

大家都说得对。谢谢你们这么快回答我的问题。

简而言之:

我尝试使用带有密码的 root 用户来绕过 ssh,从而导致 SSH 错误。

第二个错误是缺少 python 包。有问题的服务器有一个名为“python3”和“python3.6”的包,但没有Python。为了解决这个问题,我运行了sudo apt-get install python,它安装了“python”。

相关内容