Упаковщик не будет создавать изображения в GCloud - PullRequest
0 голосов
/ 09 января 2020

Я использовал инструменты от HashiCorp (Packer и Terraform) для создания образов, а затем для создания виртуальных машин с использованием Jenkins на AWS. Теперь у меня есть проект, который находится на GCloud, и я успешно настроил Terraform для создания виртуальной машины, но при попытке запустить упаковщик я получаю следующую ошибку root@packer packer] # builder buildImage. json

googlecompute output will be in this color.

==> googlecompute: Checking image does not exist...
==> googlecompute: Creating temporary SSH key for instance...
==> googlecompute: Error getting source image for instance creation: Could not find image, centos-7, in projects, [<PROJECT_ID> centos-cloud coreos-cloud debian-cloud google-containers opensuse-cloud rhel-cloud suse-cloud ubuntu-os-cloud windows-cloud gce-nvme]: 11 error(s) occurred:
==> googlecompute: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body: 
==> googlecompute: * googleapi: got HTTP response code 400 with body:
Build 'googlecompute' errored: Error getting source image for instance creation: Could not find image, centos-7, in projects, [PROJECT_ID centos-cloud coreos-cloud debian-cloud google-containers opensuse-cloud rhel-cloud suse-cloud ubuntu-os-cloud windows-cloud gce-nvme]: 11 error(s) occurred:

* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 

==> Some builds didn't complete successfully and had errors:
--> googlecompute: Error getting source image for instance creation: Could not find image, centos-7, in projects, [PROJECT_ID centos-cloud coreos-cloud debian-cloud google-containers opensuse-cloud rhel-cloud suse-cloud ubuntu-os-cloud windows-cloud gce-nvme]: 11 error(s) occurred:

* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 
* googleapi: got HTTP response code 400 with body: 

==> Builds finished but no artifacts were created.

Это мой createImage. json

{
 "variables": {
    "project_id": "PROJECT_ID"
  },
 "builders": [
    {
      "type": "googlecompute",
      "region": "europe-west1",
      "zone": "europe-west1-b",
      "project_id": "{{user `project_id`}}",
      "source_image_family": "centos-7",
      "image_name": "My-Test-Image",
      "disk_size": 10,
      "machine_type": "f1-micro",
      "ssh_username": "centos"
    }
  ]
}

Я должен отметить, что используемой учетной записи службы даже дано разрешение владельца, чтобы быть уверенным, что у меня нет проблем с разрешениями. Кто-нибудь знает, почему у меня есть эта проблема, в то время как на AWS она прекрасно работает.

1 Ответ

2 голосов
/ 09 января 2020

Поскольку вы не используете "account_file" - , укажите JSON ключ учетной записи службы , я предполагаю, что вы запускаете упаковщик из экземпляра виртуальной машины в GCP, который работает как Сервисная учетная запись , и эта учетная запись службы имеет роль Owner.

Сначала я бы проверил, правильно ли настроена учетная запись службы в сведениях о виртуальной машине и что Доступ к облачному API Области определены, как описано в этом Packer do c:

  • «Чтение и запись» для Compute Engine
  • «Полный» для «Хранилища» "

Кроме того, хотя я думаю, что это не связано с этой проблемой, вы не должны создавать образы, используя f1-micro или g1-small типы машин согласно , это делает c.

Наконец, я бы предложил опубликовать этот вопрос также на форуме сообщества упаковщиков или на любом другом официальном канале .

...