Jenkins流水線執行失敗

2021-10-12 09:12:25 字數 947 閱讀 6314

本人用jenkins+ansible搭建了乙個流水線發包流程,結果發現一直卡在pipeline中的某一步發布不成功。

1、開啟jenkins控制台檢視日誌

發現一直卡在了 "task [gathering facts] ***********************"這一步

2、查詢資料得知這是ansible用setup模組預設自動執行的乙個task,作用是獲取目標機(客戶端)上的基本資訊,如:作業系統、ipv4等。

3、首先考慮了是不是ansible連線出問題。檢視了ansible中的hosts(自己新定義的),發現使用者、密碼、ip位址、使用者組都沒有問題,又看了playbook 格式、配置也都沒有問題。

4、然後用ssh登入目標機、ping目標機位址都能成功,說明是可以連通的。那就只能是"gathering facts"這個task在目標機上 一直沒有執行成功。

5、在ansible機子上使用ansible -i *** *** -m setup -a 'filter=ansible_all_ipv4_addresses』命令,一直卡住不動。登入到目標機上使用ps -ef |grep ansible查詢程序,發現有ansiballz_setup.py的程序。

根據問題排查發現是ansible中的"gathering facts"這task一直在獲取目標機上的資訊,目標機因為檔案掛載系統出錯的原因一直沒有返回內容。

在playbook中新增乙個配置gather_facts: false 關閉"gathering facts"這個任務就能正常執行了。

ps:因為我只是jenkins流水線用ansible重啟服務,用不到目標機上的資訊,所以沒有找目標機上的具體原因直接關掉了那個任務。可以用strace -p 命令追蹤ansiballz_setup.py這個程序的具體報錯原因,並進行更改。

Jenkins 什麼是流水線

流水線提供了一組可擴充套件的工具,通過 特定的語法對從簡單到複雜的交付流水線 作為 進行建模。對jenkins 流水線的定義被寫在乙個文字檔案中 成為jenkinsfile 該檔案可以被提交到專案的源 的控制倉庫。這是 流水線即 的基礎 將cd 流水線作為應用程式的一部分,像其他 一樣進行版本化和審...

jenkins流水線pipeline指令碼例項

傳送郵件 import hudson.model.println env.job name println env.build number pipeline body something is wrong with 傳送郵件svn日誌內容 pipeline stage 輸出日誌 stage 傳送郵...

Jenkins 流水線pineline相關問題

需要歸檔的文件需放在當前job的workplace下,且路徑是相對路徑。歸檔絕對路徑的日誌失敗問題暫未找到解決辦法 1 建立乙個目錄 在pine中建立的目錄,預設的當前路徑是 jenkins workplace your job name 2 將需要的日誌文件等copy到該目錄下 3 對該目錄進行歸...