【发布时间】:2020-12-04 09:19:44
【问题描述】:
我是 Terraform 的新手,需要一些帮助。我已经成功创建了一个 VM,并且可以毫无问题地手动 SSH 进入它。问题是我正在与一个项目团队合作,如果不让 Terraform 删除所有资源并重新创建它们,他们就无法对 Tf 文件进行任何更改。我认为这是因为他们的 SSH 密钥与我的不同。
admin_ssh_key {
username = "azureroot"
public_key = file("~/.ssh/id_rsa.pub")}
因为我的 ssh 密钥的内容与我的队友不同,它会破坏虚拟机并使用应用 terraform 的人的密钥重新创建它。有没有办法解决这个问题?这导致了很多问题,因为我们已经破坏了多个虚拟机,因为密钥不同。
【问题讨论】:
-
有几种方法可以解决这个问题。如果你们都使用同一个用户,则可以将两个公钥组合在一起。不是一个好主意,但有效。另一种是通过
cloud-init,您可以在其中添加用户和密钥,但需要告知Azurewaagent,并且由于用户数据过时,您可能会在对实例进行快照时遇到问题。我不明白为什么两个团队都在创建相同的资源.. -
团队没有创建相同的资源。例如,如果我是第一个应用 terraform 的人,我的密钥将与 VM 相关联。但后来,我的队友需要对入站/出站规则进行修改,并制定一个 terraform 计划,它会删除虚拟机并启动一个新虚拟机,即使我们没有对其进行任何更改。当我查看输出时,这是因为 terraform 检测到了不同的密钥(因为我的密钥与我的团队不同)
-
好的。在这种情况下,将两个键组合在一起。
public_key - (Required) The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format. Changing this forces a new resource to be created.参考这个:: terraform.io/docs/providers/azurerm/r/… -
这个问题有什么更新吗?它能解决你的问题吗?
-
是的,您在下面的回答有帮助!感谢大家的参与。
标签: terraform terraform-provider-azure