使用 Terraform,我们必须为通过 Terraform 创建的 Windows VM 创建用户和密码

使用 Terraform,我们必须为通过 Terraform 创建的 Windows VM 创建用户和密码

我们面临的问题是,我们已经通过 terraform 创建了 Windows VM,并且必须通过 terraform 进行连接,因此我们无法通过 terraform 为新创建的 Windows VM 添加用户名和密码

答案1

截至撰写本文时,由于缺少 TLS 实用程序,Terraform 官方记录的生成 GCP Windows VM 密码的方法实际上不起作用(我们应该每次生成一次性证书并计算其模数): https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/compute_instance_serial_port

我的破解方法是运行一个local-exec配置程序来运行gcloud命令来生成密码

gcloud compute reset-windows-password <...> --quiet | tee > $(grep password | cut -d ' ' -f2- | tr -d '\n' > pass.txt)

...然后将其写入文件,并在需要的地方读取它,例如作为输出。

对我来说,它运行得很好。但请记住time_sleep在虚拟机刚创建后大约 4 分钟内执行此操作,否则命令将失败且不会出现错误。

此外,这会给您的管道增加一些开销。您需要设置和gcloud auth login,而使用原生 gcp 提供程序时,这应该不是必需的。而且由于它将密码写入中间文件,如果您在临时环境(例如 docker)中运行 Terraform 管道,管理其状态会有点棘手。

相关内容