Проблема с запуском экземпляра из пользовательского образа Google Cloud Platform. Тайм-аут WinRm - PullRequest
0 голосов
/ 21 октября 2019

У меня проблема с запуском экземпляра из пользовательского изображения в Google Cloud Platform с помощью Packer. Через полчаса у меня выдается WinRM timeout)

==> image-ami-win: Waiting for the instance to become running...
    image-ami-win: Internal IP: 10.154.21.203
    image-ami-win: IP: 10.154.21.203
==> image-ami-win: Using winrm communicator to connect: 10.154.21.203
==> image-ami-win: Waiting for WinRM to become available...
==> image-ami-win: Timeout waiting for WinRM.
==> image-ami-win: Deleting instance...
    image-ami-win: Instance has been deleted!
==> image-ami-win: Deleting disk...
    image-ami-win: Disk has been deleted!
Build 'image-ami-win' errored: Timeout waiting for WinRM.

Если я использую базовый образ Windows-2016 - все работает должным образом.

{
  "builders": [
    {
      "type": "googlecompute",
      "account_file": "account.json",
      "project_id": "my project",
      "source_image_family": "windows-2016",
      "image_family": "my-image"
      "disk_size": "50",
      "machine_type": "n1-standard-1",
      "communicator": "winrm",
      "winrm_username": "packer_user",
      "winrm_insecure": true,
      "winrm_use_ssl": true,
      "metadata": {
        "windows-startup-script-cmd": "winrm quickconfig -quiet & net user /add packer_user & net localgroup administrators packer_user /add & winrm set winrm/config/service/auth @{Basic=\"true\"}"
      },
      "zone": "us-central1-a"
    }
  ]
}

Сначала вместо packer_user Iиспользовал имя пользователя «Администратор» - оно не работало ( Проблема с использованием пользователя winrm, отличного от «packer_user» с Google Cloud Platform )

В настоящее время, если я запускаю экземпляр из пользовательского образа(который был успешно создан из образа gcp windows-2016), он показал мне ошибку: «Build 'image-ami-win' errored: время ожидания ожидания для WinRM."

Я не запускаю никакого специального провайдера, которыйможет влиять на брандмауэр или доступ. Просто создайте экземпляр из базового образа Windows-2016 - закройте его, создайте образ и соберите его с помощью упаковщика:

{
  "variables": {
    "zone": "us-east1-b",
    "winrm_user" : "packer_user",
    "builder_name": ""
  },
  "builders": [
    {
      "name": "image-ami-win",
      "type": "googlecompute",
      "project_id": "{{user `project_id`}}",
      "zone": "{{user `zone`}}",
      "source_image_family": "my-family"
      "communicator": "winrm",
      "winrm_username": "{{user `winrm_user`}}",
      "image_name": "{{user `project`}}{{user `env`}}-{{build_name}}-{{user `team`}}-{{timestamp}}",
      "machine_type": "n1-standard-4",
      "disk_size": 50,
      "network_project_id": "{{user `network_project_id`}}",
      "subnetwork": "{{user `subnetwork`}}",
      "omit_external_ip": false,
      "use_internal_ip": false,
      "tags": [
        "project-{{user `project`}}", 
        "branch-{{user `branch`}}", 
        "commit-{{user `commit_id`}}",
      ],
      "winrm_insecure": true,
      "winrm_use_ssl": true,
      "metadata": {
        "windows-startup-script-cmd": "winrm quickconfig -quiet & net user /add {{user `winrm_user`}} & net localgroup administrators {{user `winrm_user`}} /add & winrm set winrm/config/service/auth @{Basic=\"true\"} & powershell -Command \"& {Set-ExecutionPolicy AllSigned -Force}\""
      }
    }
  ],
  "provisioners": []
}

Я уже пытался запустить скрипт запуска:

<powershell>
Enter-PSSession -ComputerName server.domain.local -Credential domain\administrator
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
</powershell>

Это не помогло решить эту проблему. Также я не могу подключиться через RDP к этому экземпляру из Google Cloud Console (UI), но в то же время я могу легко подключиться при создании экземпляра из образа Google Cloud для Windows-2016.

Также я заметилРазница между созданием экземпляра из Google Cloud Windows-2016 и пользовательского изображения:

Если я запускаю экземпляр из Windows-2016 Google Cloud Image, у меня появляются следующие сообщения:

2019/10/21 12:22:38 packer: 2019/10/21 12:22:38 [INFO] Attempting WinRM connection...
2019/10/21 12:22:38 packer: 2019/10/21 12:22:38 [DEBUG] connecting to remote shell using WinRM
2019/10/21 12:23:08 packer: 2019/10/21 12:23:08 [ERROR] connection error: unknown error Post https://10.154.21.219:5986/wsman: dial tcp 10.154.21.219:5986: i/o timeout
2019/10/21 12:23:08 packer: 2019/10/21 12:23:08 [ERROR] WinRM connection err: unknown error Post https://10.154.21.219:5986/wsman: dial tcp 10.154.21.219:5986: i/o timeout
2019/10/21 12:23:08 packer: 2019/10/21 12:23:08 [INFO] Attempting WinRM connection...
2019/10/21 12:23:08 packer: 2019/10/21 12:23:08 [DEBUG] connecting to remote shell using WinRM
2019/10/21 12:23:38 packer: 2019/10/21 12:23:38 [ERROR] connection error: unknown error Post https://10.154.21.219:5986/wsman: dial tcp 10.154.21.219:5986: i/o timeout
2019/10/21 12:23:38 packer: 2019/10/21 12:23:38 [ERROR] WinRM connection err: unknown error Post https://10.154.21.219:5986/wsman: dial tcp 10.154.21.219:5986: i/o timeout
2019/10/21 12:23:38 packer: 2019/10/21 12:23:38 [INFO] Attempting WinRM connection...

Но если я запускаюЭкземпляр из пользовательского изображения У меня есть следующие сообщения:

2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [INFO] Attempting WinRM connection...
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [DEBUG] connecting to remote shell using WinRM
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [ERROR] connection error: unknown error Post https://10.154.21.203:5986/wsman: read tcp 10.147.84.31:48984->10.154.21.203:5986: read: connection reset by peer
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [ERROR] WinRM connection err: unknown error Post https://10.154.21.203:5986/wsman: read tcp 10.147.84.31:48984->10.154.21.203:5986: read: connection reset by peer
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [INFO] Attempting WinRM connection...
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [DEBUG] connecting to remote shell using WinRM
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [ERROR] connection error: unknown error Post https://10.154.21.203:5986/wsman: read tcp 10.147.84.31:48988->10.154.21.203:5986: read: connection reset by peer
2019/10/21 10:46:08 packer: 2019/10/21 10:46:08 [ERROR] WinRM connection err: unknown error Post https://10.154.21.203:5986/wsman: read tcp 10.147.84.31:48988->10.154.21.203:5986: read: connection reset by peer

Различия в

/ wsman: dial tcp 10.154.21.219:5986: тайм-аут ввода-вывода

и

10.147.84.31: 48988-> 10.154.21.203:5986: читать:

. Похоже, что некоторая переадресация работает, но я не понимаю почему, потому что сборщик упаковщика идентичен, кроме имени изображения.

Экземпляр должен успешно работать из пользовательского образа так же, как я создаю экземпляр из Google Cloud Windows-2016 базовый образ.

Я использую Packer v. 1.4.4

Может кто-нибудь, пожалуйста, помогите мне с этим?

...