快速问题
我已经设置了一个名为test的Ubuntu服务器。我将authorized_keys复制到它,可以轻松地进行SSH连接。 如果我执行$ ansible -m ping ubu1,没有问题,我会收到响应。
<i><p>ubu1 | SUCCESS => {
<br>"changed": false,
<br>"ping": "pong"
<br>}</i>
我不理解的是,如果我执行以下命令:
$ ansible-playbook -vvvv Playbooks/htopInstall.yml
注:本文涉及 IT 技术。fatal: [ubu1]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "setup"}, "module_stderr": "OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g-fips 1 Mar 2016\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: 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 = 6109\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 192.168.1.112 closed.\r\n", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "parsed": false}
如果我执行 $ ansible-playbook --ask-sudo-pass Playbooks/htopInstall.yml,那么它会要求我的用户密码并且操作成功。
如果我重命名authorized_keys,那么它会告诉我“Failed to connect to the host via ssh.”这是可以理解的。但是我不明白为什么它会要求sudo密码。我肯定漏掉了某些步骤。
我的ansible.cfg文件看起来像这样:
[defaults]
nocows = 1
inventory = ./Playbooks/hosts
remote_user = test
private_key_file = /home/test/.ssh/id_ubu
host_key_checking = false
我的hosts文件看起来像这样:
[servers]
ubu1 ansible_ssh_host=192.168.1.112 ansible_ssh_user=test
Playbooks/htopInstall.yml
。请花几分钟时间学习如何在 SO 上使用格式以及常用的不同元素的格式化方式。 - techraftest
用户启用了无需密码的sudo权限? - Konstantin Suvorov