terra-farm / terraform-provider-virtualbox

VirtualBox provider for Terraform
https://terra-farm.github.io/provider-virtualbox/
MIT License
323 stars 134 forks source link

Example should be updated for xenial LTS #27

Closed mjbright closed 5 years ago

mjbright commented 6 years ago

The real issue here is that I've tried reproducing the example using a Xenial image, e.g. https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20180306.0.0/providers/virtualbox.box

but these consistently fail to apply.

I'm seeing the following in the trace output:

2018-04-04T22:52:58.571+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-11790-image.go:51: exit status 2 2018-04-04T22:52:58.571+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-11790-resource_vm.go:212: [ERROR] Unpack image ./virtualbox-xenial-16.04.box: exit status 2

Any idea what's happening?

pyToshka commented 6 years ago

@mjbright Can you please attach debug log?

MaxCCC commented 6 years ago

The example worked for me (after that I cleaned everything and tried with box 18.04 official)

resource "virtualbox_vm" "node" {
    count = 2
    name = "${format("node-%02d", count.index+1)}"
    url = "https://app.vagrantup.com/ubuntu/boxes/bionic64/versions/20180806.0.0/providers/virtualbox.box"
    image = "./virtualbox-ubuntu.box"
    cpus = 2
    memory = "512 mib",

    network_adapter {
        type = "bridged",
        host_interface = "en0",

    }

}
output "IPAddr" {
    value = "${element(virtualbox_vm.node.*.network_adapter.0.ipv4_address, 1)}"
}
output "IPAddr_2" {
    value = "${element(virtualbox_vm.node.*.network_adapter.0.ipv4_address, 2)}"
}

error:

2018/08/07 21:03:28 [TRACE] dag/walk: vertex "output.IPAddr_2", waiting for: "virtualbox_vm.node[0]"
2018/08/07 21:03:28 [TRACE] dag/walk: vertex "meta.count-boundary (count boundary fixup)", waiting for: "output.IPAddr_2"
2018-08-07T21:03:30.343+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-vbm.go:60: executing: VBoxManage list vms
2018-08-07T21:03:30.384+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-vbm.go:75: executing: VBoxManage showvminfo node-02 --machinereadable
2018-08-07T21:03:30.453+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-vbm.go:45: executing: VBoxManage createvm --name node-01 --register --basefolder /Users/name/.terraform/virtualbox/machine
2018-08-07T21:03:30.499+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-vbm.go:75: executing: VBoxManage showvminfo node-01 --machinereadable
2018-08-07T21:03:30.570+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-vbm.go:45: executing: VBoxManage clonehd /Users/name/.terraform/virtualbox/gold/virtualbox-ubuntu/ubuntu-bionic-18.04-cloudimg-configdrive.vmdk /Users/name/.terraform/virtualbox/machine/node-01/ubuntu-bionic-18.04-cloudimg-configdrive.vmdk
2018-08-07T21:03:30.618+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-vbm.go:45: executing: VBoxManage clonehd /Users/name/.terraform/virtualbox/gold/virtualbox-ubuntu/ubuntu-bionic-18.04-cloudimg.vmdk /Users/name/.terraform/virtualbox/machine/node-01/ubuntu-bionic-18.04-cloudimg.vmdk
2018-08-07T21:03:30.659+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-38697-resource_vm.go:247: [ERROR] Clone *.vdi and *.vmdk to VM folder: exit status 1

2018/08/07 21:03:30 [TRACE] root: eval: *terraform.EvalWriteState
2018/08/07 21:03:30 [TRACE] root: eval: *terraform.EvalApplyProvisioners
2018/08/07 21:03:30 [TRACE] root: eval: *terraform.EvalIf
2018/08/07 21:03:30 [TRACE] root: eval: *terraform.EvalWriteState
2018/08/07 21:03:30 [TRACE] root: eval: *terraform.EvalWriteDiff
2018/08/07 21:03:30 [TRACE] root: eval: *terraform.EvalApplyPost
2018/08/07 21:03:30 [ERROR] root: eval: *terraform.EvalApplyPost, err: 1 error(s) occurred:

* virtualbox_vm.node.0: exit status 1
2018/08/07 21:03:30 [ERROR] root: eval: *terraform.EvalSequence, err: 1 error(s) occurred:

* virtualbox_vm.node.0: exit status 1
2018/08/07 21:03:30 [TRACE] [walkApply] Exiting eval tree: virtualbox_vm.node[0]
2018/08/07 21:03:30 [TRACE] dag/walk: upstream errored, not walking "provider.virtualbox (close)"
2018/08/07 21:03:30 [TRACE] dag/walk: upstream errored, not walking "output.IPAddr_2"
2018/08/07 21:03:30 [TRACE] dag/walk: upstream errored, not walking "output.IPAddr"
2018/08/07 21:03:30 [TRACE] dag/walk: upstream errored, not walking "meta.count-boundary (count boundary fixup)"
2018/08/07 21:03:30 [TRACE] dag/walk: upstream errored, not walking "root"
2018/08/07 21:03:30 [TRACE] Preserving existing state lineage "5560e0af-8ac8-f706-11ab-45b60ba2eaf9"
2018/08/07 21:03:30 [TRACE] Preserving existing state lineage "5560e0af-8ac8-f706-11ab-45b60ba2eaf9"
2018/08/07 21:03:30 [TRACE] Preserving existing state lineage "5560e0af-8ac8-f706-11ab-45b60ba2eaf9"
2018/08/07 21:03:30 [TRACE] Preserving existing state lineage "5560e0af-8ac8-f706-11ab-45b60ba2eaf9"
2018/08/07 21:03:30 [DEBUG] plugin: waiting for all plugin processes to complete...
MaxCCC commented 6 years ago

Example was working for me, but just updating the url to 18.04 or 16.04 or centos7 breaks always.. After a few failures I tried the example again (to verify I cleaned it well), that worked again..

MaxCCC commented 6 years ago

I'm really not able to make this work. Downloaded manually vbox 18.04. Made a .tar.xz of it. Now the VM's can finally start, but I'm not able to assign an IP. It always results in a timeout

2018/08/09 20:37:37 [TRACE] dag/walk: vertex "provider.virtualbox (close)", waiting for: "virtualbox_vm.node[0]"
2018-08-09T20:37:37.492+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-vbm.go:75: executing: VBoxManage showvminfo 0fd2b10a-4f00-403c-ad6f-32a993104fc4 --machinereadable
2018-08-09T20:37:37.598+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-vbm.go:60: executing: VBoxManage getextradata node-01 user_data
2018-08-09T20:37:37.639+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-vbm.go:60: executing: VBoxManage guestproperty get node-01 /VirtualBox/GuestInfo/Net/0/MAC
2018-08-09T20:37:37.690+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-state.go:193: [TRACE] Waiting 10s before next try
2018-08-09T20:37:41.001+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-vbm.go:75: executing: VBoxManage showvminfo c9398b13-89ea-48f6-ad3a-a2a27b2c3b4f --machinereadable
2018-08-09T20:37:41.097+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-vbm.go:60: executing: VBoxManage getextradata node-02 user_data
2018-08-09T20:37:41.141+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-vbm.go:60: executing: VBoxManage guestproperty get node-02 /VirtualBox/GuestInfo/Net/0/MAC
2018-08-09T20:37:41.185+0200 [DEBUG] plugin.terraform-provider-virtualbox: pid-10997-state.go:193: [TRACE] Waiting 10s before next try
2018/08/09 20:37:42 [TRACE] dag/walk: vertex "root", waiting for: "provider.virtualbox (close)"
2018/08/09 20:37:42 [TRACE] dag/walk: vertex "meta.count-boundary (count boundary fixup)", waiting for: "virtualbox_vm.node[0]"
2018/08/09 20:37:42 [TRACE] dag/walk: vertex "provider.virtualbox (close)", waiting for: "virtualbox_vm.node[0]"
virtualbox_vm.node.1: Still creating... (4m50s elapsed)
virtualbox_vm.node.0: Still creating... (4m50s elapsed)
2018/08/09 20:37:47 [TRACE] dag/walk: vertex "provider.virtualbox (close)", waiting for: "virtualbox_vm.node[0]"
2018/08/09 20:37:47 [TRACE] dag/walk: vertex "root", waiting for: "provider.virtualbox (close)"
mjbright commented 5 years ago

I hit this same problem again today, did a google search and came across my own issue ... surprise !

I tried again using the latest official xenial64 box and it worked like a charm. So closing this issue.

Here's the exact box which worked for me: https://app.vagrantup.com/ubuntu/boxes/xenial64/versions/20190507.0.0/providers/virtualbox.box

Thanks