我使用GCE V1 rest api来启动实例。我很少使用谷歌开发者控制台。我通过rest api创建了windows VM实例。我在元数据属性中传递了Windows初始用户名和密码。 Windows VM已成功创建。我还能够在创建VM时发送响应中的那些凭据。但我无法使用该用户名和密码连接VM。我阅读了有关如何从开发人员控制台重置密码的文档。它工作正常。但我们想为所有人休息。我的意思是创建/管理GCE资源。那么任何人都可以帮助解决这个问题吗?
我用来启动虚拟机的图像是“windows-server-2012-r2-dc-v20150511”
"metadata": {
"items": [
{
"key": "gce-initial-windows-user",
"value": "administrator"
},
{
"key": "gce-initial-windows-password",
"value": "twxsFL3U-/,*"
}
]
}
注意:我通过rest api创建了很多虚拟机。所有实例都有相同的问题。从开发者控制台重置密码时,它可以正常工作。
凭据不起作用。我可以从开发者控制台重置它们。但这不会解决我的问题。因为我们有自己的系统来启动VM和其他服务。为此,我正在建立一个连接器。这是我从node.js脚本发送的示例请求。
Request :
***********
options : {
"host": "www.googleapis.com",
"path": "/compute/v1/projects/project-id/zones/us-central1-f/instances",
"method": "POST",
"headers": {
"Authorization": "Bearer ya29.lQGsX8hwdWKaDDwOFnDIZB49eir-c2TUBqYpaVvir7C430Quy8kIWsL4rXv7qjSVQZJKK5e1BdxNug",
"Content-Type": "application/json charset=utf-8"
}
}
body : {
"name": "rin2qvxkz-e",
"zone": "https://www.googleapis.com/compute/v1/projects/project-id/zones/us-central1-f",
"machineType": "https://www.googleapis.com/compute/v1/projects/project-id/zones/us-central1-f/machineTypes/n1-standard-2",
"metadata": {
"items": [
{
"key": "gce-initial-windows-user",
"value": "administrator"
},
{
"key": "gce-initial-windows-password",
"value": "%1zuV27$.:?*"
}
]
},
"tags": {
"items": [
"default"
]
},
"disks": [
{
"type": "PERSISTENT",
"boot": true,
"mode": "READ_WRITE",
"deviceName": "rin2qvxkz-e",
"autoDelete": true,
"initializeParams": {
"sourceImage": "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/images/windows-server-2012-r2-dc-v20150511",
"diskType": "https://www.googleapis.com/compute/v1/projects/project-id/zones/us-central1-f/diskTypes/pd-standard"
}
}
],
"canIpForward": false,
"networkInterfaces": [
{
"network": "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/default",
"accessConfigs": [
{
"name": "External NAT",
"type": "ONE_TO_ONE_NAT"
}
]
}
],
"description": "rin2qvxkz-e",
"scheduling": {
"preemptible": false,
"onHostMaintenance": "MIGRATE",
"automaticRestart": true
}
}
感谢。
答案 0 :(得分:1)
您正在使用新的Windows映像“windows-server-2012-r2-dc-v20150511”,其中包含更新的GCEAgent,它不会查看gce-initial-windows-user / gce-initial-windows-password实例the old authentication scheme使用的元数据键。
以下是explanations新身份验证的工作原理,从“windows-server-2012-r2-dc-v20150511”图片开始,然后再开始。
请注意,初始Windows身份验证和GCE API v1是两个单独的主题,GCE API v1未作为身份验证更新的一部分进行更改。
答案 1 :(得分:1)
早先的答案并没有真正解释何时更改。我进行了更多研究,并在Google Windows图片更改日志中找到了一条注释。
元数据项gce-initial-windows-user和gce-initial-windows-password将不再适用于图像v20150511及更高版本
https://cloud.google.com/compute/docs/release-notes-archive#february_2015
2015年6月3日
更新了Windows身份验证过程。 Windows映像v20150511和 以后将默认使用新方案。 gcloud现在将生成一个 Windows登录的随机密码;不再可能 通过gcloud手动设置Windows密码,但是您可以设置 实例中的自定义密码。
有些链接详细介绍了如何立即将用户添加到Windows图片
https://cloud.google.com/sdk/gcloud/reference/compute/reset-windows-password
gcloud computing reset-windows-password INSTANCE_NAME [--user = USER] [--zone = ZONE] [GCLOUD_WIDE_FLAG…]
https://cloud.google.com/compute/docs/instances/windows/automate-pw-generation