如何修復 Ansible 錯誤“共享連線到 x.x.xx 已關閉”?


簡介

Ansible 是一款開源自動化工具,IT 專業人員使用它來管理和配置系統、部署軟體和編排任務。但是,有時在使用 Ansible 時,使用者可能會遇到一條錯誤訊息,提示“共享連線到 x.x.xx 已關閉”,這對於不熟悉該工具的使用者來說可能會令人沮喪。此錯誤通常發生在使用者嘗試透過 SSH 使用 Ansible 連線到遠端伺服器,但連線突然終止時。

修復錯誤的步驟概述

好訊息是,可以透過一些故障排除技巧和更改 Ansible 配置檔案來解決此錯誤。在本文中,我們將逐步討論如何修復“共享連線到 x.x.xx 已關閉”的 Ansible 錯誤。

解決方案包括瞭解不同機器之間 SSH 連線的工作原理,確定這些連線可能突然終止的原因(例如網路問題或防火牆限制),並相應地更新本地機器和遠端目標伺服器配置中的設定。透過仔細遵循這些步驟,您應該能夠快速解決此問題,而不會在過程中遇到任何進一步的障礙!

瞭解錯誤

錯誤原因

Ansible 中的“共享連線到 x.x.xx 已關閉”錯誤可能是由多種因素引起的。其中一個主要原因是網路連線問題。當控制機器和目標主機之間的連線中斷時,可能會觸發此錯誤。

問題可能是由於網路緩慢或不穩定造成的,或者 DNS 解析、路由或交換機故障也可能導致此問題。此外,如果機器之間存在許多跳躍點,也可能導致延遲和資料包丟失。

此錯誤的另一個原因是防火牆限制。如果您的目標主機具有限制性的防火牆配置,該配置阻止了 Ansible 使用的某些埠上的流量,則通訊將失敗,並在控制檯輸出中導致此錯誤訊息。

錯誤症狀

“共享連線到 x.x.xx 已關閉”的 Ansible 錯誤表現為 Ansible playbook 執行突然終止,表明 SSH 會話在完成前異常終止。以下是一些您可能會觀察到的常見症狀:

  • 劇本中的任務失敗

  • 執行過程中程序突然終止

  • 執行任務時的效能緩慢

  • 引用連線斷開的錯誤訊息,例如“連線被對端重置”

識別這些症狀非常重要,因為它們可以作為線索來幫助診斷可能導致問題的原因,以便及時採取適當的補救措施。

故障排除步驟

共享連線到 x.x.xx 已關閉的 Ansible 錯誤是一個常見問題,可能出現在任何網路中。要解決此問題,需要遵循一些步驟。

這些步驟將有助於確定問題的根本原因,併為您提供解決方法。以下是一些故障排除步驟:

檢查網路連線

遇到共享連線到 x.x.xx 已關閉的 Ansible 錯誤時,首先要檢查的是網路連線。這可以透過多種方法完成,例如 ping 測試或 traceroute 測試。

Ping 測試

ping 命令用於檢查網路上兩臺機器之間的連線。要執行此測試,請開啟終端並鍵入 ping 後跟目標機器的 IP 地址。

如果成功,您將看到來自目標機器的響應。如果失敗,您可能會收到指示資料包已丟失的訊息。

Traceroute 測試

traceroute 命令用於透過顯示從您的計算機或伺服器到網際網路上的另一臺計算機或伺服器的資料包所經過的路徑來診斷網路中的問題。要執行此測試,請開啟終端並鍵入 traceroute 後跟目標機器的 IP 地址。

檢查防火牆限制

如果在執行這些測試時沒有發現問題,則需要檢查防火牆限制,這些限制可能阻止了執行 Ansible 的機器和目標機器之間的通訊。

臨時停用防火牆

如果確實存在防火牆限制阻止了執行 Ansible 的機器和目標機器之間的通訊,則臨時停用它可以允許進一步測試這是否是導致問題的原因。

新增規則以允許 Ansible 流量透過防火牆

如果在檢查後防火牆限制仍然存在,則需要新增規則以允許 Ansible 流量透過防火牆,使用 Ansible 執行的埠。

檢查 SSH 配置問題

另一個潛在問題是 SSH 配置問題。為了確保沒有 SSH 配置問題,應執行以下檢查:

驗證 SSH 連線設定

確保使用了正確的使用者名稱和密碼組合。如果不是,請諮詢系統管理員以獲取正確的登入憑據。下一步是驗證 SSH 是否在目標機器上執行。

您可以透過登入到目標機器並執行命令“ps aux | grep sshd”或“systemctl status ssh”來做到這一點。如果這些命令未能返回任何輸出,則表示 sshd 服務未執行,應啟動它。

修復共享連線到 x.x.xx 已關閉的 Ansible 錯誤

更新 Ansible 配置檔案

更新 Ansible 配置檔案是修復共享連線到 x.x.xx 已關閉的 Ansible 錯誤的最常見解決方案。其中一種方法是增加 ansible.cfg 檔案中的超時值。

這是透過修改 ansible.cfg 檔案中“ssh_connection”部分的“timeout”值來完成的。預設情況下,此值設定為 10 秒,對於網路連線緩慢或延遲高的系統來說可能不夠。

增加此值將為 Ansible 提供更多時間來建立與遠端機器的連線。更新 Ansible 配置檔案的另一種方法是更改 ansible.cfg 檔案中的 ssh_args。

此修改將在透過 SSH 連線時新增其他引數或選項,可用於解決與遠端機器的 SSH 問題。例如,新增“-vvv”將在透過 SSH 連線時提高詳細程度級別,並提供有關連線建立期間可能發生的任何問題的更多資訊。

重啟目標機器上的 sshd 服務

修復共享連線到 x.x.xx 已關閉的 Ansible 錯誤的另一個解決方案是重啟目標機器上的 sshd 服務。有時,SSH 可能會因某些內部錯誤而卡住,重啟它可能會解決這些錯誤。

要重啟目標機器上的 sshd 服務,需要在該機器上擁有 root 訪問許可權或 sudo 許可權。重啟 SSH 的命令因 Linux 發行版的不同而異:

對於使用 SystemD 的系統:

systemctl restart sshd 

對於使用 SysVinit 的系統:

/etc/init.d/sshd restart 

確保…

更新配置檔案並重啟 sshd 服務後,務必確保所有必要的更改已正確應用並透過使用 Ping、traceroute 或 SSH 命令測試與遠端機器的連線來進行驗證。一個有用的測試 SSH 連線的命令是:

ssh -vvv target-machine 

此命令將與目標機器建立詳細的 SSH 連線,並提供有關連線建立期間可能發生的任何錯誤的詳細資訊。務必確保對配置檔案所做的所有更改都已正確記錄,以便將來發生類似錯誤時更容易進行故障排除。

結論

修復共享連線到 x.x.xx 已關閉的 Ansible 錯誤需要多方面的方法。在嘗試修復它之前,務必先了解錯誤的原因和症狀。在更新 Ansible 配置檔案或重啟目標機器上的 sshd 服務之前,應先探索檢查網路連線、防火牆限制和 ssh 配置問題的故障排除步驟。

更新於: 2023年6月12日

7K+ 閱讀量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.