hpm*_*pmi 23 git github terraform
我正在尝试使用我的私人 git 存储库作为 terraform 模块的源。
ssh 公钥已复制到 github。
尝试了以下选项作为源,但没有任何效果:
任何帮助是极大的赞赏。
参考以下链接上的 Private Github repos 部分也没有帮助。 https://github.com/alibaba/terraform-provider/blob/master/vendor/github.com/hashicorp/terraform/website/docs/modules/sources.html.markdown
私有 GitHub 存储库 如果您需要 Terraform 从私有 GitHub 存储库获取模块,则必须向 Terraform 提供凭据,以作为对这些存储库具有读取访问权限的用户进行身份验证。
如果您仅在本地计算机上运行 Terraform,则可以将模块源指定为 SSH URI(如 git@github.com:hashicorp/example.git),Terraform 将使用您的默认 SSH 密钥进行身份验证。
如果您使用 Terraform Enterprise,则可以使用 SSH URI。您需要向您的组织添加 SSH 私钥,并将其分配给从私有存储库获取模块的任何工作区。请参阅有关克隆模块的 SSH 密钥的 Terraform Enterprise 文档。
如果您需要在 CI Worker 等远程计算机上运行 Terraform,则需要将 SSH 密钥写入磁盘并在 Worker 的配置过程中适当设置 GIT_SSH_COMMAND 环境变量,或者创建一个对存储库具有读取权限的 GitHub 计算机用户有问题并将其凭据嵌入到模块的源参数中: module "private-infra" { source = "git:: https://MACHINE-USER:MACHINE-PASS@github.com/org/privatemodules//modules/foo " } 请注意,Terraform 不支持在模块的源参数中进行插值,因此如果使用此方法,您必须对计算机用户名和密码进行硬编码。
这对我有用:
~/.ssh/config文件有这样的块:Host USERNAME.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
.tf文件中:module "name_of_module" {
source = "git@USERNAME.github.com:USERNAME/REPONAME.git//SUBDIR"
...
}
Run Code Online (Sandbox Code Playgroud)
小智 6
需要的东西:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)
注意:如果您将组织机密配置为可用于特定存储库,请务必指定具有您尝试导入的 Terraform 代码的存储库。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)
参考/信用: https: //github.com/hashicorp/setup-terraform/issues/33
注意:在谷歌搜索时,似乎有很多方法可以做这样的事情,但我花了几个星期的时间尝试各种选项,最终能够用这个来做到这一点,并且我理解了它是如何工作的。:) 我鼓励反馈。
这对我有用
module "name_of_module" {
source = "git::https://<user>:<pat>@github.com/folder/terraform-azure-core-resource-group.git"
...
}
Run Code Online (Sandbox Code Playgroud)
在位桶上测试。github上应该是一样的:
source = "git::https://@bitbucket.com/mycompany/my-project.git"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32984 次 |
| 最近记录: |