Closed RedlineTriad closed 1 year ago
Also, please save me, I am yak shaving so damn hard. All of this is to host Grocy so I can have an inventory of all my groceries. And I intend to create a bot that automatically orderes them when they get low.
Am starving until then, please send food or therapist, just no more yaks.
Following Vagrantfile
works on my mac (with plugin version 0.3.2). Please try it.
Vagrant.configure("2") do |config|
config.vm.box = "debian/buster64"
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.provider "qemu" do |qe|
qe.qemu_dir = "/usr/bin/"
qe.arch="x86_64"
# need for x86_64
qe.machine = "q35"
qe.cpu = "max"
qe.net_device = "virtio-net-pci"
# it seems this box need a VGA device (the debug serial port doesn't work... I don't know why)
qe.extra_qemu_args = %w(-vga std)
end
end
I never got the "All arguments must be String" error, did you alter the source code?
Also I think there should be a better way to change the default QEMU args, and a better debug method, I will work on it later.
No I didn't alter the source code, I installed the plugin with vagrant plugin install vagrant-qemu
and am running it with vagrant up --provider qemu
.
I am still getting the same error even with your Vagrantfile. Versions: Vagrant: 2.3.0 vagrant-qemu: 0.3.2
I feel like it should be reproducible since the list of argument just has a non string value in it: ..., "-daemonize", "-vga", "std", {:detach=>false}]
Sorry, I found this is a compatibility issue about ruby 3.x, I try to fix it in version 0.3.3, please try it.
There may still have other compatibility issue in it, feel free to add them here. Thanks a lot.
Thank you a lot, this seems to have fixed the issue. It's funny working on my private server and just finding tons of bugs along the way, but somehow there is always a person that can help and fix it.
Terraform cloud had email verification issues. Molecule testing action had a docker image that broke but was fixed after a day. QEMU vagrant plugin is broken for new Ruby versions.
I just want to thank you for helping, and I hope we can just always make things a bit easier for the next person who wants to do a cool thing.
Background
I want to use Ansible to provision my server. To test Ansible I use Molecule. For a more realistic testing environment with init system I want to use Vagrant as the Provisioner instead of Docker. I run my tests in GitHub Actions, which doesn't support nested virtualization. This means I want to run Vagrant with QEMU in emulation mode instead of a KVM backend.
My setup:
OS: Arch Linux mostly Vagrantfile:
Actual Problem
When testing this plugin locally I get the following Error:
The problem here appears to be this argument to the process
{:detach=>false}
which isn't a string. This seems to come from this line of code: https://github.com/ppggff/vagrant-qemu/blob/2d12cfc4b34e7523028a3720bede398be9369c83/lib/vagrant-qemu/driver.rb#L114I don't really have experience with Ruby and Vagrant but if you want I could try to get a fix together.
If there is some kind of workaround that would be nice too, I tried to toggle the
no_daemonize
flag but that didn't fix it either.