A compilação do empacotador trava no SSH ao criar o Win 2012 Server + Virtualbox

0

Estou tentando usar o virtualbox + packer + vagrant para automatizar o provisionamento de VMs.

Eu tenho a configuração do modelo json para mostrar a interface do usuário da VM (assim headless = false) e configurei o autounattend.xml com a minha chave ISO e a opção OpenSSH Server para ser instalada como primeiro.

O problema é que a criação de vm fica presa na entrada de log "Aguardando SSH", vejo a VM em execução e o prompt para inserir a chave do Windows, mas nada mais acontece.

Qualquer ajuda é apreciada

esta é a saída até esse ponto da compilação do empacotador, ponto em que abortei a instalação

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.

Esta é a parte autounattend.xml com a entrada 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>                

Eu também tentei mudar a ordem do acima como último comando (ordem = 23), mas sem efeito.

Esta é uma parte do modelo 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"
  ],
    
por TomTom 24.09.2015 / 17:41

1 resposta

0

Tente aumentar o ssh_wait_timeout de 10m para 2h no seu json template

O que parece ser esse problema é que o sistema não teve tempo suficiente para inicializar e ter uma configuração para que o SSH esteja pronto. Ajustar esse tempo para algo mais razoável deve funcionar.

    
por 22.06.2016 / 20:47