繁体   English   中英

Packer超时等待VirtualBox的SSH错误

[英]Packer Timeout waiting for SSH error with VirtualBox

尽管我可以在VirtualBox中手动ssh,但Packer不知道是否已建立ssh连接。
我见过同样的问题,但是我找不到任何解决方案。
使用打包程序的目的是将现有的ovf文件转换为Digital Ocean Droplet,以便可以在Digital Ocean服务器中使用它。

template.json

{
  "builders": [
    {
      "type": "virtualbox-ovf",
      "source_path": "/Users/seoyoochan/Desktop/work/G4M_3.1.2_OVF_demo/G4M_centos6_demo.ovf",
      "ssh_username": "root",
      "ssh_password": "g4mg4m$$",
      "boot_command":[
        "root<return>",
        "g4mg4m$$<return>"
      ],
      "headless": true,
      "boot_wait": "30s",
      "ssh_wait_timeout": "10000s",
      "shutdown_command": "echo 'packer' | sudo -S shutdown -P now"
    }
  ],
  "post-processors": ["vagrant"]
}

运行没有调试选项的打包程序生成

➜  G4M_3.1.2_OVF_demo  packer build template.json
virtualbox-ovf output will be in this color.

==> virtualbox-ovf: Downloading or copying Guest additions
    virtualbox-ovf: Downloading or copying: file:///Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
==> virtualbox-ovf: Importing VM: /Users/seoyoochan/Desktop/work/G4M_3.1.2_OVF_demo/G4M_centos6_demo.ovf
==> virtualbox-ovf: Creating forwarded port mapping for SSH (host port 3249)
==> virtualbox-ovf: Starting the virtual machine...
==> virtualbox-ovf: Waiting 10s for boot...
==> virtualbox-ovf: Typing the boot command...
==> virtualbox-ovf: Waiting for SSH to become available...
==> virtualbox-ovf: Timeout waiting for SSH.
==> virtualbox-ovf: Unregistering and deleting imported VM...
==> virtualbox-ovf: Error deleting VM: VBoxManage error: VBoxManage: error: Cannot unregister the machine 'packer-virtualbox-ovf-1451547904' while it is locked
==> virtualbox-ovf: VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
==> virtualbox-ovf: VBoxManage: error: Context: "Unregister(CleanupMode_DetachAllReturnHardDisksOnly, ComSafeArrayAsOutParam(aMedia))" at line 155 of file VBoxManageMisc.cpp
==> virtualbox-ovf: Deleting output directory...
Build 'virtualbox-ovf' errored: Timeout waiting for SSH.

==> Some builds didn't complete successfully and had errors:
--> virtualbox-ovf: Timeout waiting for SSH.

==> Builds finished but no artifacts were created.

当我在调试模式下运行时

==> virtualbox-ovf: Waiting for SSH to become available...
2015/12/31 17:43:48 packer-builder-virtualbox-ovf: 2015/12/31 17:43:48 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 127.0.0.1:3581: getsockopt: connection refused
2015/12/31 17:43:53 packer-builder-virtualbox-ovf: 2015/12/31 17:43:53 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 127.0.0.1:3581: getsockopt: connection refused
2015/12/31 17:43:58 packer-builder-virtualbox-ovf: 2015/12/31 17:43:58 [DEBUG] TCP connection to SSH ip/port failed: dial tcp 127.0.0.1:3581: getsockopt: connection refused

发生此错误的原因是因为eth0设备不存在,这是因为新的MAC地址没有被覆盖。

有两种解决方案:
1)删除/etc/udev/rules.d/70-persistent-net.rules以获取新的MAC地址或
2)像eth1eth2eth3一样将eth0名称更改为eth1

按照上述两种方法中的任意一种之后,通过键入rebootreboot来宾系统。

检查ifconfig -a
您将看到eth0或您选择的其他以太网名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM