Packer: パッカーを使用して仮想ボックスビルダーを使用して複数のディスクを作成する

作成日 2015年08月17日  ·  3コメント  ·  ソース: hashicorp/packer

vboxcreatemediumコマンドを使用して2番目のディスクを作成できます。 しかし、問題は、2番目のディスクが別のフォルダーに作成され、プライマリディスクがoutput-virtualbox-isoフォルダーに作成されることです。

ログファイルを読み取った後、すでにパラメータを変更しようとしました。 これは私が2番目のディスクを作成するために言及したことです。

 "vboxmanage": [
        [ "modifyvm", "{{.Name}}", "--memory", "2048" ],
        [ "modifyvm", "{{.Name}}", "--cpus" , "2" ],
        ["storageattach", "{{.Name}}", "--storagectl", "SCSI Controller", "--port", "1", "--device", "2", "--type", "hdd", "--medium", "output-virtualbox-iso/sdb.vdi"]
        ]

デバッグログ出力

2015/08/17 09:43:53 ui: ==> virtualbox-iso: Creating virtual machine...
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"createvm", "--name", "shashank", "--ostype", "RedHat_64", "--register"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout: Virtual machine 'shashank' is created and registered.
2015/08/17 09:43:53 packer-builder-virtualbox-iso: UUID: 6e98a276-bf26-4b67-acfb-176c30240a5d
2015/08/17 09:43:53 packer-builder-virtualbox-iso: Settings file: '/apps_data_01/Virtualbox/shashank/shashank.vbox'
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--boot1", "disk", "--boot2", "dvd", "--boot3", "none", "--boot4", "none"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--cpus", "1"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--memory", "512"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Creating hard drive...
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"createhd", "--filename", "output-virtualbox-iso/shashank.vdi", "--size", "81040", "--format", "VDI", "--variant", "Standard"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout: Medium created. UUID: 97572aa8-dd9a-42c3-947c-72795db83167
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storagectl", "shashank", "--name", "IDE Controller", "--add", "ide"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storagectl", "shashank", "--name", "SCSI Controller", "--add", "scsi", "--controller", "LSILogic"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "SCSI Controller", "--port", "0", "--device", "0", "--type", "hdd", "--medium", "output-virtualbox-iso/shashank.vdi"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--type", "dvddrive", "--medium", "/apps_data_01/packer-templates/packer_cache/c50dbd33d853ece2fd2d7b1a524ae5868134427a2fef9d98ea5b34fa19c67e82.iso"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Not attaching guest additions since we're uploading.
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 No floppy disk, not attaching.
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Looking for available SSH port between 2222 and 4444
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Trying port: 4157
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Creating forwarded port mapping for SSH (host port 4157)
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--natpf1", "packerssh,tcp,127.0.0.1,4157,,22"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Executing custom VBoxManage commands...
2015/08/17 09:43:53 ui:     virtualbox-iso: Executing: modifyvm shashank --memory 2048
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--memory", "2048"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui:     virtualbox-iso: Executing: modifyvm shashank --cpus 2
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--cpus", "2"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui:     virtualbox-iso: Executing: storageattach shashank --storagectl SCSI Controller --port 1 --device 2 --type hdd --medium output-virtualbox-iso/sdb.vdi
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "SCSI Controller", "--port", "1", "--device", "2", "--type", "hdd", "--medium", "output-virtualbox-iso/sdb.vdi"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
2015/08/17 09:43:53 packer-builder-virtualbox-iso: VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
2015/08/17 09:43:53 packer-builder-virtualbox-iso: VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
2015/08/17 09:43:53 packer-builder-virtualbox-iso: VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 ui error: ==> virtualbox-iso: Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
==> virtualbox-iso: VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
==> virtualbox-iso: VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
==> virtualbox-iso: VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--medium", "none"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Unregistering and deleting virtual machine...
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"unregistervm", "shashank", "--delete"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Deleting output directory...
2015/08/17 09:43:53 ui error: Build 'virtualbox-iso' errored: Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 Builds completed. Waiting on interrupt barrier...
2015/08/17 09:43:53 machine readable: error-count []string{"1"}
2015/08/17 09:43:53 ui error:
==> Some builds didn't complete successfully and had errors:
2015/08/17 09:43:53 machine readable: virtualbox-iso,error []string{"Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)\nVBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports\nVBoxManage: error: Context: \"OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())\" at line 177 of file VBoxManageDisk.cpp\nVBoxManage: error: Invalid UUID or filename \"output-virtualbox-iso/sdb.vdi\""}
2015/08/17 09:43:53 ui error: --> virtualbox-iso: Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 ui:
==> Builds finished but no artifacts were created.
2015/08/17 09:43:53 waiting for all plugin processes to complete...
2015/08/17 09:43:53 /vol_01/apps_data_01/packer/packer-provisioner-shell: plugin process exited
2015/08/17 09:43:53 /vol_01/apps_data_01/packer/packer-builder-virtualbox-iso: plugin process exited
bug buildevirtualbox

最も参考になるコメント

複数のハードドライブを正常に作成して、Packer-VBビルドに接続することができます。

方法は次のとおりです。

  • packer (つまり、別のスクリプトで)実行さ、出力ディレクトリのれるコマンドを使用してディスクを作成します。

VBoxManage createhd --filename io1.vdi --size 10000

  • パッカーマニフェストで上記のディスクを参照してください。
"vboxmanage": [
        ["storageattach", "{{.Name}}", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--type", "hdd", "--medium", "io1.vdi"]
    ]
  • ビルドを実行します。 それはうまくいくでしょう。 io1.vdiが消え、右側の出力フォルダーに追加のvdiファイルが表示されます。

これが私の4ディスクセットアップのスクリーンショットです。

image

このようにすべてが正しいです-私はPackerのビルド時にドライブをフォーマットすることができ、作成後もそこにあります。

これが誰かを助けてくれることを願っています。

また、この問題を解決するのもよいかもしれません。

全てのコメント3件

面白いバグ! レポートをありがとう。

複数のハードドライブを正常に作成して、Packer-VBビルドに接続することができます。

方法は次のとおりです。

  • packer (つまり、別のスクリプトで)実行さ、出力ディレクトリのれるコマンドを使用してディスクを作成します。

VBoxManage createhd --filename io1.vdi --size 10000

  • パッカーマニフェストで上記のディスクを参照してください。
"vboxmanage": [
        ["storageattach", "{{.Name}}", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--type", "hdd", "--medium", "io1.vdi"]
    ]
  • ビルドを実行します。 それはうまくいくでしょう。 io1.vdiが消え、右側の出力フォルダーに追加のvdiファイルが表示されます。

これが私の4ディスクセットアップのスクリーンショットです。

image

このようにすべてが正しいです-私はPackerのビルド時にドライブをフォーマットすることができ、作成後もそこにあります。

これが誰かを助けてくれることを願っています。

また、この問題を解決するのもよいかもしれません。

究極の問題はvirtualboxにあると思います。 良い回避策があるようです、ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価