gpt4 book ai didi

ssh - ansible 剧本 [设置] 收集事实 - SSH UNREACHABLE 连接在横幅期间超时

转载 作者:行者123 更新时间:2023-12-02 13:50:24 24 4
gpt4 key购买 nike

我使用的是 Mac 计算机。

$ which ansible
/Library/Frameworks/Python.framework/Versions/3.5/bin/ansible

或者我猜,ansible 可以位于一个通用位置:/usr/bin/ansible(例如:在 CentOS/Ubuntu 上)。

$ ansible --version
ansible 2.2.0.0

在我的另一个 vagrant/Ubuntu 盒子上运行以下 playbook 效果很好。

Playbook 文件如下所示:

- hosts: all
become: true
gather_facts: true

roles:
- a_role_which_just_say_hello_world_debug_msg

从我的本地计算机,我可以成功 ssh 到目标服务器/以下服务器(无需任何密码,因为我已经使用 ssh-add 添加了 .pem key 文件) code>),在 Ansible playbook 运行中,Ansible playbook 的 [Setup](收集事实步骤)失败。

在 Mac 计算机上,我有时会收到此错误(不是每次)。错误:无法通过 ssh 连接到主机:横幅交换期间连接超时。 PS:这个问题不会一直出现。

$ ansible-playbook -i inventory -l tag_cluster_mycluster myplabook.yml

PLAY [all] *********************************************************************

TASK [setup] *******************************************************************
ok: [myclusterSomeServer01_i_07f318688f6339971]
fatal: [myclusterSomeServer02_i_03df6f1f988e665d9]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Connection timed out during banner exchange\r\n", "unreachable": true}

好的,尝试了几次,同样的行为,在 15 台服务器(我在 mycluster 集群中)中,[SETUP] 设置在收集事实设置期间和下次设置时失败工作正常。

重试: $ ansible-playbook -i inventory -l tag_cluster_mycluster myplabook.yml

PLAY [all] *********************************************************************

TASK [setup] *******************************************************************
ok: [myclusterSomeServer01_i_07f318688f6339971]
ok: [myclusterSomeServer02_i_03df6f1f988e665d9]
ok: [myclusterSomeServer03_i_057dfr56u88e665d9]
...
.....more...this time it worked for all servers.

正如您在上面看到的,这次上述步骤运行良好。在某些任务/操作期间(我尝试使用 Ansible yum 模块安装某些内容)会发生同样的问题(SSH 连接超时)。如果我再试一次,它对于服务器来说工作正常上次失败,但上次成功的另一台服务器可能会失败。因此,行为是随机的。

我的/etc/ansible/ansible.cfg 文件有:

[ssh_connection]
scp_if_ssh = True

最佳答案

将以下timeout设置添加到/etc/ansible/ansible.cfg配置文件中,当我将其增加到25时,它起作用了。当它是10或15时,我仍然看到一些服务器中的错误,因为连接超时横幅问题。

[defaults]
timeout = 25

[ssh_connection]
scp_if_ssh = True

除上述之外,我还必须使用 serial: Nserial: N% (其中 N 是一个数字)在 N 个数字或百分比上运行我的剧本一次有多个服务器,然后就可以正常工作了。

- hosts: all
become: true
gather_facts: true
serial: 2
#serial: "10%"
#serial: "{{ serialNumber }}"
#serial: "{{ serialNumber }}%"

vars:
- serialNumber: 5

roles:
- a_role_which_just_say_hello_world_debug_msg

关于ssh - ansible 剧本 [设置] 收集事实 - SSH UNREACHABLE 连接在横幅期间超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41885326/

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