Vagrant 正在等待SSH可用的打包程序
我是packer and vagrant的新手,我正在尝试从Windows 10光盘映像和packer构建一个全新的Windows操作系统虚拟盒。但是,在进行构建时,packer从不退出步骤“等待SSH可用”。我尝试并遵循了Stack overflow和Hashicorp的多种解决方案,但都没有解决我的问题 我的windows 10 JSON文件:Vagrant 正在等待SSH可用的打包程序,vagrant,packer,Vagrant,Packer,我是packer and vagrant的新手,我正在尝试从Windows 10光盘映像和packer构建一个全新的Windows操作系统虚拟盒。但是,在进行构建时,packer从不退出步骤“等待SSH可用”。我尝试并遵循了Stack overflow和Hashicorp的多种解决方案,但都没有解决我的问题 我的windows 10 JSON文件: { "builders": [ { "type": "virtualbox-iso", "iso_url": "
{
"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...
如果您有任何建议,请让我知道如何使此构建工作。自动安装Windows是一件复杂的事情。例如,我建议你不要从零开始,而是把你的工作建立在别人的基础上
打包器模板的一个基本问题是它应该使用WinRM而不是SSH 自动安装Windows是一件复杂的事情。例如,我建议你不要从零开始,而是把你的工作建立在别人的基础上
打包器模板的一个基本问题是它应该使用WinRM而不是SSH 你的虚拟盒版本是什么?我的虚拟盒版本是5.1.20 R114628,我也有同样的问题。我在我的机器(不是虚拟机)上安装了OpenSSH,它可以正常工作。你的虚拟机版本是什么?我的虚拟机版本是5.1.20 R114628,我也有同样的问题。我在我的机器(不是虚拟机)上安装了OpenSSH,它可以工作。谢谢Rickard,这是我在公司做的一个POC,他们想为多个项目创建基础windows映像,所以我必须从公司指定的OS版本安装。我看到了windows模板和JSON的区别。。所以我在模板中有winrm,在JSON文件中有ssh。你认为这是导致这个问题的原因吗?是的,而且你没有软盘上的
自动无人值守.xml
。首先运行链接版本,然后用iso和adapt替换。Rickard,你能详细说明这一点吗“首先运行链接版本,然后用iso和adapt替换”。ThanksI在我的回答中提供了一个指向存储库的链接,其中包含工作模板。拿一个,最接近你想要的。分小步进行更改,并验证它在每个步骤之间是否仍然有效。我明白您现在所说的,我当前的模板和json文件是上述链接中可用文件的修改版本。最初,当我在没有任何修改的情况下尝试这些模板时,它在“软盘文件”部分和后续脚本中出错。我正在寻找为Windows10操作系统创建autounattend.xml
的方法。谢谢Rickard,这是我在公司做的一个POC,他们想为多个项目创建基本windows映像,所以我必须从公司指定的操作系统版本安装。我看到了windows模板和JSON的区别。。所以我在模板中有winrm,在JSON文件中有ssh。你认为这是导致这个问题的原因吗?是的,而且你没有软盘上的自动无人值守.xml
。首先运行链接版本,然后用iso和adapt替换。Rickard,你能详细说明这一点吗“首先运行链接版本,然后用iso和adapt替换”。ThanksI在我的回答中提供了一个指向存储库的链接,其中包含工作模板。拿一个,最接近你想要的。分小步进行更改,并验证它在每个步骤之间是否仍然有效。我明白您现在所说的,我当前的模板和json文件是上述链接中可用文件的修改版本。最初,当我在没有任何修改的情况下尝试这些模板时,它在“软盘文件”部分和后续脚本中出错。我正在寻找为Windows10操作系统创建autounattend.xml
的方法。