ansible執行速度慢怎麼解決

PHPz
發布: 2024-03-05 17:34:02
轉載
722 人瀏覽過

收到專案回饋,客戶在使用我們提供的工具部署產品時遇到了困難,在主機新增步驟上遇到了問題,導致實施團隊無法繼續推進工作,因此向我們尋求協助。

環境資訊:kylin10

架構:arm

ansible執行速度慢怎麼解決

#初見端倪

#在系統部署過程中,針對主機的大量操作,我們開發時採用了ansible劇本。最近遇到了執行過程卡頓的問題,初步懷疑是ansible執行時出現了阻塞。為了驗證這一點,我已經發送了一條命令給現場進行測試。

localhost$ date
2024年02月19日星期 17:30:41 CST 
localhost$ ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test
192.168.2.84 CHANGED rc=0 >> 
2024年02月19日星期 17:33:34 CST 
登入後複製

果然,一條簡單的ansible指令,環境執行了2min多才回傳結果,問題原因就出在這裡了,有了大致方向。

ansible實際執行時仍然依賴SSH遠端連接,之前遇到SSH連接速度緩慢的情況,初步推測可能是由於SSH連接速度慢導致執行返回速度慢。

檢查ssh參數,查/etc/ssh/sshd_config配置

GSSAPIAuthentication no #关闭SERVER上的GSS认证  
登入後複製

在linux中,預設就是開啟了SSH的反向DNS解析,這個會消耗大量時間,因此需要關閉。在設定檔中,雖然UseDNS yes是被註解的,但預設開關就是yes

UseDNS=no  #关闭SERVER上DNS反向解析 
登入後複製

結果發現,專案上這2個ssh參數配置都是和上面一致的,並且手動測試ssh登入對端主機,速度很快

問題分析

沒有頭緒,只能用linux的strace指令追蹤下系統呼叫了

ansible執行速度慢怎麼解決

#查看strace日誌發現有大量的select等待,應該是在執行某項操作時長時間阻塞。

使用ansible調試

ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv
登入後複製

指令後面加上-vvv就可以看到詳細的執行過程了

ansible執行速度慢怎麼解決

#解決問題

從debug訊息中,看到報錯”mux_client_read_packet: read header failed: Broken pipe”,執行腳本的地方可以看到在執行python相關的命令,ansible依賴於python,是否和python版本有關係呢?

在網路上查看資料說ansible和python有相容性問題。

ansible執行速度慢怎麼解決

#於是檢查下python版本,可以看到python預設版本為python2,但是系統上也有python3,嘗試將軟連結修改python3.7驗證

ansible執行速度慢怎麼解決

#再次執anible指令

ansible執行速度慢怎麼解決

#執行時間1.3s,看來是ansible和python版本的兼容性導致了這次問題。

以上是ansible執行速度慢怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:mryunwei.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板