Jenkins

哪些變數(除了 HOME)決定了 terraform 期望從哪裡找到以 github 為源的模組的 git 鍵

  • August 23, 2018

什麼命令行選項和環境變數控制 terraform 如何找到從 git 下載模組的密鑰?

當我使用來自 git repo 的 terraform 模組時,當我通過 jenkins 建構伺服器執行計劃時遇到了問題。

我正在使用具有以下源的模組:

source = "git@github.com:mygroup/myrepo.git//mymodule"

這導致以下結果,因為私有/部署密鑰不在 jenkins 使用者的 home/.ssh 目錄中

Permission denied (publickey).
fatal: Could not read from remote repository.

我可以使用WithEnv($$ “HOME=dir” $$)子句並建立一個 .ssh 目錄,但我認為必須有一個更優雅的withCredential + 命令行選項來處理這種情況。

你知道更好的方法嗎?

謝謝

將您的 terraform 步驟包裝在sshagent

sshagent(['my-credential-id']) {
 sh 'terraform init'
 // etc.
}

替換my-credential-id為包含您的部署私鑰的憑證的 ID。

引用自:https://serverfault.com/questions/927576