Я пытаюсь использовать virtualbox+packer+vagrant для автоматизации предоставления виртуальных машин.

У меня есть настройка шаблона json для отображения пользовательского интерфейса виртуальной машины (так что headless = false), и я настроил файл autounattend.xml с моим ключом ISO и опцией сервера OpenSSH для установки первой.

Проблема в том, что создание vm застревает в записи журнала "Ожидание SSH", я вижу работающую виртуальную машину и приглашение ввести ключ Windows, но больше ничего не происходит.

Любая помощь приветствуется

это вывод до этого момента из сборки упаковщика, после чего я прервал установку

PS C:\Users\xxxxxxx\Documents\DevVM> packer build .\windows_2012_r2.json 
virtualbox-iso output will be in this color.
==> virtualbox-iso: Downloading or copying Guest additions
    virtualbox-iso: Downloading or copying: file:///C:/Program%20Files/Oracle/VirtualBox/VBoxGuestAdditions.iso
==> virtualbox-iso: Downloading or copying ISO
    virtualbox-iso: Downloading or copying: file:///C:/Users/xxxxxxx/Documents/Work/VMs/ISOs/en_windows_server_2012_r2_x64_dvd_2707946.iso
==> virtualbox-iso: Creating floppy disk...
    virtualbox-iso: Copying: C:/Users/xxxxxxx/Documents/DevVM/Autounattend.xml
    virtualbox-iso: Copying: C:/Users/xxxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/microsoft-updates.bat
    virtualbox-iso: Copying: C:/Users/xxxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/win-updates.ps1
    virtualbox-iso: Copying: C:/Users/xxxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/openssh.ps1
    virtualbox-iso: Copying: C:/Users/xxxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/oracle-cert.cer
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Creating hard drive...
==> virtualbox-iso: Attaching floppy disk...
==> virtualbox-iso: Creating forwarded port mapping for SSH (host port 4430)
==> virtualbox-iso: Executing custom VBoxManage commands...
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso-1443107958 --memory 2048
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso-1443107958 --cpus 2
==> virtualbox-iso: Starting the virtual machine...
==> virtualbox-iso: Waiting 2m0s for boot...
==> virtualbox-iso: Typing the boot command...
==> virtualbox-iso: Waiting for SSH to become available...
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Build was cancelled.
Cleanly cancelled builds after being interrupted.

Это часть autounattend.xml с записью openssh

 <FirstLogonCommands>
            <SynchronousCommand wcm:action="add">
                <CommandLine>cmd.exe /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File a:\openssh.ps1 -AutoStart</CommandLine>
                <Description>Install OpenSSH</Description>
                <Order>1</Order>
                <RequiresUserInput>true</RequiresUserInput>
            </SynchronousCommand>                

Я также попытался изменить порядок выше как последняя команда (order = 23), но безрезультатно.

Это часть шаблона JSON

      "type": "virtualbox-iso",
  "iso_url": "C:/Users/xxxxxx/Documents/Work/VMs/ISOs/en_windows_server_2012_r2_x64_dvd_2707946.iso",
  "iso_checksum_type": "md5",
  "iso_checksum": "0e7c09aab20dec3cd7eab236dab90e78",
  "headless": false,
  "boot_wait": "2m",
  "ssh_username": "vagrant",
  "ssh_password": "vagrant",
  "ssh_wait_timeout": "10m",
  "shutdown_command": "shutdown /s /t 10 /f /d p:4:1 /c \"Packer Shutdown\"",
  "guest_os_type": "Windows2012_64",
  "disk_size": 61440,
  "floppy_files": [
    "C:/Users/xxxxxx/Documents/DevVM/Autounattend.xml",
    "C:/Users/xxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/microsoft-updates.bat",
    "C:/Users/xxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/win-updates.ps1",
    "C:/Users/xxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/openssh.ps1",
    "C:/Users/xxxxxx/Documents/DevVM/GitHub/packer-windows/scripts/oracle-cert.cer"
  ],

1 ответ1

0

Попробуйте увеличить ssh_wait_timeout с 10m до 2h в вашем json template

Эта проблема, по-видимому, заключается в том, что у системы не было достаточно времени для загрузки и настройки для готовности SSH. Установка этого времени на что-то более разумное должно работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .