哪些变量(除了 HOME)决定了 Terraform 期望从哪里找到以 Github 为源的模块的 git 密钥

哪些变量(除了 HOME)决定了 Terraform 期望从哪里找到以 Github 为源的模块的 git 密钥

哪些命令行选项和环境变量控制 terraform 如何查找从 git 下载模块的密钥?

当我使用来自 git repo 的 terraform 模块时,我通过 jenkins 构建服务器执行计划时遇到了问题。

我正在使用具有如下源的模块:

source = "[email protected]:mygroup/myrepo.git//mymodule"

由于私有/部署密钥不在 jenkins 用户的 home/.ssh 目录中,因此导致以下结果

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

我可以使用WithEnv(["HOME=dir"])子句并建立一个 .ssh 目录,但我认为必须有一个更优雅的带凭证+ 命令行选项来处理这种情况。

您知道有更好的方法吗?

谢谢

答案1

将您的地形步骤包裹起来sshagent

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

将其替换my-credential-id为包含您的部署私钥的凭证的 ID。

相关内容