gpt4 book ai didi

ssh - 对远程主机的ping操作可在本地连接上进行,但不能进行其他操作

转载 作者:行者123 更新时间:2023-12-02 14:33:05 25 4
gpt4 key购买 nike

我是一个完整的Ansible新手,所以提前致歉!

我正在尝试运行Ansible剧本,其作用是启用在本地和远程计算机上构建的程序之间的文件共享/传输/同步(您可以猜到,我没有写剧本)。

我的问题是,当我不使用--connection = local时,无法对远程主机执行ping操作。但是,我可以SSH远程主机。当我运行剧本时,它会引发错误:

    host1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true}

如果我做
    ansible-playbook cvfms.yml --connection=local

则我不会收到ssh错误,但该剧本无法执行任何操作,因为我怀疑该连接应该不是本地的才能运行。

有关更多信息,这是我的/ etc / ansible / hosts文件:
    [group_name]
host1 ansible_ssh_host=lengau.chpc.ac.za

我也有一个/ etc / ansible / host_var,说我在机器上的用户名。

在这个问题上的任何帮助将不胜感激!

回答评论:当我运行ansible-playbook -vvv cvfms.yml时,我得到输出:
PLAYBOOK: cvmfs.yml     ************************************************************
2 plays in /home/testuser/Documents/DevOps-master/Ansible/cvmfs.yml

PLAY [Enable CVMFS] ************************************************************

TASK [setup] *******************************************************************
Using module file /usr/lib/python2.6/site-packages/ansible-2.2.0- py2.6.egg/ansible/modules/core/system/setup.py
<lengau.chpc.ac.za> ESTABLISH SSH CONNECTION FOR USER: khenninger
<lengau.chpc.ac.za> SSH: EXEC ssh -q -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/home/testuser/.ssh/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=khenninger -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r lengau.chpc.ac.za '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1468582573.96-15730857177484 `" && echo ansible-tmp-1468582573.96-15730857177484="` echo $HOME/.ansible/tmp/ansible-tmp-1468582573.96-15730857177484 `" ) && sleep 0'"'"''
fatal: [host1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
to retry, use: --limit @/home/testuser/Documents/DevOps- master/Ansible/cvmfs.retry

PLAY RECAP *********************************************************************
host1 : ok=0 changed=0 unreachable=1 failed=0

在回答另一个问题时:
我这样设置私钥:

在我的“家庭”机器上,我现在有一个文件/home/testuser/.ssh/id_rsa,其中包含我通过
ssh-keygen -t rsa.

此私钥也存储在远程计算机上的目录/home/user/.ssh/中。

据我所知,这是正确的做法。

当我运行ansible-playbook或ping时,仍然遇到与上述相同的问题。

更奇怪的是,所有这些只有在我是root的情况下才会发生。如果我是家用计算机的普通用户,则ssh可以正常工作,并且剧本在本地连接上运行并显示新的错误消息,如下所示:
ansible-playbook cvmfs.yml --connection=local

PLAY [Enable CVMFS] ************************************************************

TASK [setup] *******************************************************************
ok: [196.24.44.83]
ok: [host1]

TASK [Inform the team] *********************************************************
fatal: [host1]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'slack_token' is undefined\n\nThe error appears to have been in '/home/testuser/Documents/DevOps-master/Ansible/cvmfs.yml': line 7, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n pre_tasks:\n - name: Inform the team\n ^ here\n"}
fatal: [196.24.44.83]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'slack_token' is undefined\n\nThe error appears to have been in '/home/testuser/Documents/DevOps-master/Ansible/cvmfs.yml': line 7, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n pre_tasks:\n - name: Inform the team\n ^ here\n"}

NO MORE HOSTS LEFT *************************************************************
to retry, use: --limit @cvmfs.retry

PLAY RECAP *********************************************************************
196.24.44.83 : ok=1 changed=0 unreachable=0 failed=1
host1 : ok=1 changed=0 unreachable=0 failed=1

我认为我的本地计算机上的某些东西有严重的问题。

最佳答案

我找到了答案!我既高兴又很傻(脸红)...

通过执行以下所有步骤可以解决此问题:

ansible-playbook cvmfs.yml --ask-pass

在这之后,它运行良好。输出
ansible all -m ping --ask-pass

然后在所有情况下都“成功”,而不仅仅是通过本地网络。剧本运行良好。好极了!

关于ssh - 对远程主机的ping操作可在本地连接上进行,但不能进行其他操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com