2017-07-20 29 views
0

我已經從gitlab設置了一個webhook來啓動一個基於標籤推送事件的jenkins作業。可能是合併或提交,但開發人員想使用標籤。沒有問題,它工作正常。這項工作獲得了標記提交的散列,並且我已經驗證了這一點。然後這份工作開始了另一項工作,該工作運行一本完美的劇本,並開始構建。試圖從jenkins傳遞一個變量到合理的劇本

所以我想通過git commit hash作爲ansible extra_var,並且我通過執行shell命令將散列寫入到構建步驟中的文件中。我正在使用後構建操作來觸發下游作業,並使用此屬性文件中的參數。

控制檯輸出驗證了這一點,我看到提交散列回顯出來。 屬性文件包含:

GIT_KEY=3432134325e4323423 (fake sample hash provided) 

的問題是在下游的工作,當我嘗試通過GIT_KEY作爲一個額外的變種,因此ansible劇本將獲取正確的git的承諾。我收到以下錯誤:

/usr/bin/git checkout --force ${GIT_KEY}", "failed": true, "msg": "Failed to checkout ${GIT_KEY}" 

我已經測試了這個靜態設置額外變量值,它的工作原理,所以我知道這本劇本的作品。它只是不插入我正確傳遞給它的這個變量,或者正如我所期望的那樣。

有誰知道如何將jenkins參數作爲extra_var傳遞給ansible?

+0

我在第二份工作中驗證了,在劇本開始之前通過迴應變量,在詹金斯工作層面變量未定義。 – tman

回答

0

假設你像下面通過GIT_KEY

ansible-playbook my_playbook.yml -e GIT_KEY=$GIT_KEY -e JENKINS_BUILD_NUMBER=$BUILD_NUMBER 

在你的劇本,您引用與{{ GIT_KEY }}{{ JENKINS_BUILD_NUMBER }}

0

額外的增值經銷商我不能讓它只用paramterized生成插件工作。 但我得到它的解決方法,我在下游作業中使用injectEnv插件從文件中讀取KEY:Value,然後我可以將它作爲額外的var傳遞,並且可以看到該值。

相關問題