jenkins中的環境變量 ,master機無法識別slave機環境變量

jenkins中的環境變量

在Jenkins中環境變量有:

  • 主機中的系統環境變量
  • Master/Slave節點設置的環境變量
  • Job執行時的環境變量(http://ip:port/jenkins/env-vars.html/、參數化構建時的參數也會被設置爲環境變量、一些插件提供的環境變量)

其中,如果環境變量名稱相同,後者會覆蓋前者

這些環境變量可以在Shell或Batch腳本中被使用,以JOB_NAME環境變量爲例:

  • 在Shell中:$JOB_NAME
  • 在Batch中:%JOB_NAME%
  • 在Ant插件中:$JOB_NAME
  • 在Ant的build.xml中:${JOB_NAME}

在使用Jenkins的過程中,多次遇到Jenkins job中無法獲取Slave上的環境變量的情況

例如,在Jenkins slave上安裝了python,但在Jenkins job中使用python命令時,出現如下提示

'python'不是內部或外部命令,也不是可運行的程序或批處理文件

而實際上Slave機器的環境變量PATH中已追加了python的環境變量,但是Jenkins job中無法讀取到

解決方法:

  • 使用絕對路徑的命令
  • 在Jenkins的job中設置環境變量參數
  • 在Jenkins的節點配置中設置環境變量

當然,個人感覺其中最友好的方式是 在Jenkins的節點配置中設置環境變量

例如:可以設置PATH的值爲$PATH,這樣PATH就可以讀取到slave機器上的配置

 

個人實際操作:

Path:C:\testcode\jmeterant\apache-ant-1.10.1\bin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章