我尝试使用packer构建映像,但它没有按计划进行,从一开始我创建映像时就超时了,我找不到任何帮助,有人已经遇到了这个问题? 谢谢
==> googlecompute: Checking image does not exist...
==> googlecompute: Creating temporary SSH key for instance...
==> googlecompute: Using image: debian-9-stretch-v20180105
==> googlecompute: Creating instance...
googlecompute: Loading zone: europe-west1-d
googlecompute: Loading machine type: n1-standard-1
googlecompute: Requesting instance creation...
googlecompute: Waiting for creation operation to complete...
==> googlecompute: Error creating instance: time out while waiting for instance to create
Build 'googlecompute' errored: Error creating instance: time out while waiting for instance to create
我遇到了类似的超时错误。
解决方案是为服务用户分配正确的角色。 至少应将计算引擎实例管理员 (v1( 和服务帐户用户角色访问权限分配给您尝试运行打包程序的服务用户。
它可能失败的原因可能是您可能正在使用默认网络以外的自定义网络。默认情况下,入口 ssh 防火墙规则仅适用于default
网络。因此,您需要为网络创建自定义防火墙规则。
检查入口 ssh 防火墙规则在打包程序配置中使用的网络上是否可用。如果没有,请按如下方式创建一个:
gcloud compute firewall-rules create my-ingress-ssh-rule
--project=YOUR-PROJECT --description=my-ingress-ssh-rule-description
--direction=INGRESS --priority=1000
--network=YOUR-NETWORK-IN-PACKER-CONFIG
--action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0
注意:source-ranges=0.0.0.0/0
允许来自公共的 ssh,因此请记住这一点。
我仍然看到服务帐户所需角色的相同问题。他们是否有任何其他方法可以解决此问题。
我正在使用packer-1.8.2和googlecompute 1.0.13。
错误图像链接