2017-07-04 64 views
1

我是封裝和流浪者的新手,我試圖從Windows 10光盤映像和打包器中構建一個全新的Windows操作系統虛擬框。但是,在進行構建時,打包程序不會退出步驟"Waiting for SSH to become available"。我試過並遵循Stack overflow和Hashicorp的多個解決方案,但沒有解決我的問題。封裝等待SSH成爲可用

我的Windows 10 JSON文件:

{ 
    "builders": [ 
    { 
     "type": "virtualbox-iso", 
     "iso_url": "{{user `iso_url`}}", 
     "iso_checksum_type": "{{user `iso_checksum_type`}}", 
     "iso_checksum": "{{user `iso_checksum`}}", 
     "headless": false, 
     "boot_wait": "10m", 
     "ssh_username": "vagrant", 
     "ssh_password": "vagrant", 
     "ssh_wait_timeout": "2h", 
     "shutdown_command": "shutdown /s /t 10 /f /d p:4:1 /c \"Packer Shutdown\"", 
     "guest_os_type": "Windows10_64", 
     "disk_size": 61440, 
     "vboxmanage": [ 
     [ 
      "modifyvm", 
      "{{.Name}}", 
      "--memory", 
      "2048" 
     ], 
     [ 
      "modifyvm", 
      "{{.Name}}", 
      "--cpus", 
      "2" 
     ] 
     ] 
    } 
    ], 
    "post-processors":[ 
    { 
     "type": "vagrant", 
     "keep_input_artifact": false, 
     "output": "windows_10_{{.Provider}}.box", 
     "vagrantfile_template": "windows10.template" 
    } 
    ], 
    "variables": { 
    "iso_url": "C:/Ebe/Vagrant/Windows_10/SW_DVD5_Win_Pro_10_1511.1_64BIT_English_MLF_X20-93914.iso", 
    "iso_checksum_type": "md5", 
    "iso_checksum": "bd09dc56c51a6ce137b8c0eb7c4369ea", 
    "autounattend": "./answer_files/10/Autounattend.xml" 
    } 
} 

我windows.template

Vagrant.require_version ">= 1.6.2" 

Vagrant.configure("2") do |config| 
    config.vm.define "vagrant-windows-10" 
    config.vm.box = "windows_10" 
    config.vm.communicator = "winrm" 

    # Admin user name and password 
    config.winrm.username = "vagrant" 
    config.winrm.password = "vagrant" config.vm.network :private_network, ip: "192.168.56.1" 

    config.vm.guest = :windows 
    config.windows.halt_timeout = 15 

    config.vm.network :forwarded_port, guest: 3389, host: 3389, id: "rdp", auto_correct: true 
    config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true 

    config.vm.provider :virtualbox do |v, override| 
     #v.gui = true 
     v.customize ["modifyvm", :id, "--memory", 2048] 
     v.customize ["modifyvm", :id, "--cpus", 2] 
     v.customize ["setextradata", "global", "GUI/SuppressMessages", "all" ] 
    end 

    config.vm.provider :vmware_fusion do |v, override| 
     #v.gui = true 
     v.vmx["memsize"] = "2048" 
     v.vmx["numvcpus"] = "2" 
     v.vmx["ethernet0.virtualDev"] = "vmxnet3" 
     v.vmx["RemoteDisplay.vnc.enabled"] = "false" 
     v.vmx["RemoteDisplay.vnc.port"] = "5900" 
     v.vmx["scsi0.virtualDev"] = "lsisas1068" 
    end 

    config.vm.provider :vmware_workstation do |v, override| 
     #v.gui = true 
     v.vmx["memsize"] = "2048" 
     v.vmx["numvcpus"] = "2" 
     v.vmx["ethernet0.virtualDev"] = "vmxnet3" 
     v.vmx["RemoteDisplay.vnc.enabled"] = "false" 
     v.vmx["RemoteDisplay.vnc.port"] = "5900" 

     v.vmx["scsi0.virtualDev"] = "lsisas1068" 
    end end 

我使用下面的命令來揭開序幕構建

packer build windows10.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:/Ebe/Vagrant/Windows_10/SW_DVD5_Win_Pro_10_1511.1_64BIT_English_MLF_X20-93914.iso 
==> virtualbox-iso: Creating virtual machine... 
==> virtualbox-iso: Creating hard drive... 
==> virtualbox-iso: Creating forwarded port mapping for communicator (SSH, WinRM, etc) (host port 3527) 
==> virtualbox-iso: Executing custom VBoxManage commands... 
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso-1499123943 --memory 2048 
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso-1499123943 --cpus 2 
==> virtualbox-iso: Starting the virtual machine... 
==> virtualbox-iso: Waiting 10m0s for boot... 
==> virtualbox-iso: Typing the boot command... 
==> virtualbox-iso: Waiting for SSH to become available... 

請讓我知道,如果你有任何建議,使此構建工作。

+0

什麼是你的虛擬盒子版本? –

+0

我的虛擬箱是版本** 5.1.20 r114628 ** – samuelebe

+0

我有同樣的問題。我在我的機器上安裝了OpenSSH(不是VM),它工作正常。 –

回答

0

自動安裝Windows是一件複雜的事情。例如https://github.com/joefitzgerald/packer-windows

你的打包模板的一個基本問題是它應該使用WinRM而不是SSH。

+0

感謝Rickard,它是我在我公司的POC,他們想爲多個項目創建基礎窗口映像,因此我必須從公司給定操作系統版本進行安裝。我看到在Windows模板和JSON的區別..所以我有模板中的winrm和JSON文件中的ssh。你認爲這是造成這個問題嗎? – samuelebe

+0

是的,你沒有軟盤上的'Autounattended.xml'等鏈接版本先運行並替換你的ISO和適應。 –

+0

Rickard,你能否詳細闡述這一點:「首先運行鏈接的版本,用你的iso代替並適應」。謝謝 – samuelebe