我的环境是这样的:
WSL2 (Debian 12) 中带有 Vagrant 2.4.1 的分子。 带有 Vagrant 2.4.1 和 VirtualBox 7.0.1 的 Windows 10
下面molecule.yml
---
dependency:
name: galaxy
enabled: false
prerun: false
driver:
name: vagrant
provider:
name: virtualbox
lint: |
yamllint .
ansible-lint .
platforms:
- name: peertube-host
box: debian/buster64
memory: 2048
cpu: 2
interfaces:
- auto_config: true
network_name: private_network
type: static
ip: "192.168.56.4"
provisioner:
name: ansible
log: True
env:
ALLOW_WORLD_READABLE_TMPFILES: True
ANSIBLE_FORCE_COLOR: true
ANSIBLE_ROLES_PATH: ../../roles:../../roles-dependencies/
ANSIBLE_COLLECTIONS_PATH: $PWD/collections-dependencies/
ANSIBLE_VERBOSITY: 3
playbooks:
converge: ../../site.yml
inventory:
links:
group_vars: ../../inventories/molecule/group_vars/
verifier:
name: testinfra
options:
junit-xml: default-report.xml
o: "junit_family=legacy"
当我执行
molecule create
时,我的虚拟机已正确创建,但由于无头模式错误而无法启动。
"There was an error while executing `VBoxManage`, a CLI used by Vagrant",
"for controlling VirtualBox. The command and stderr is shown below.",
"",
"Command: [\"startvm\", \"2fa5ff42-1aec-47ba-a7cb-2b161bff3cf6\", \"--type\", \"headless\"]",
"",
"Stderr: VBoxManage.exe: error: The virtual machine 'default_peertube-host_1710842684897_81290' has terminated unexpectedly during startup with exit code -1073741819 (0xc0000005)",
"VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine"
在 Windows 应用程序日志查看器中,我可以阅读:
Faulting application name VBoxHeadless.exe, version: 7.0.14.11095, timestamp: 0x65a53a70
Failing module name: VBoxHeadless.exe, version: 7.0.14.11095, timestamp: 0x65a53a70
Exception code: 0xc0000005
Error offset: 0x000000000001b21b
Failing process ID: 0x245c
Start time of the failing application: 0x01da79e4e25c2618
Path of the faulting application: C:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe
Path of the faulting module: C:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe
Report ID: 6771c359-7ee3-494a-806a-6be9772f8535
Full name of the failing package:
Application ID relating to the failing package:
我在 WSL 中尝试直接使用 Vagrant,我使用此设置设置了一个新的 vagrantfile,以 GUI 模式启动 VM 并且它可以工作:
config.vm.provider "virtualbox" do |v|
v.gui = true
end
那么,如何解决无头问题?或者如何在我的
molecule.yml
中设置 GUI 模式
我在寻找一种方法来从 molecular.yml 文件启用虚拟盒虚拟机的 GUI 启动时发现了你的问题。
需要明确的是:
这个答案只是关于 GUI 启动而不是关于无头错误,因为到目前为止我从未遇到过。
这里是我用来在“GUI”或“正常”启动模式下自动启动虚拟机的 molecular.yml 的一部分。
dependency:
name: galaxy
driver:
name: vagrant
parallel: true
provider:
name: virtualbox
type: virtualbox
lint: |
set -e
yamllint
ansible-lint
platforms:
- name: Alma9
box: almalinux/9
memory: 4096
cpus: 2
provider_options:
gui: true
linked_clone: true
interfaces:
- auto_config: true
network_name: private_network
type: "static"
ip: "192.168.56.10"
provider_raw_config_args:
- "customize ['modifyvm', :id, '--uartmode1', 'disconnected']"
- "customize ['modifyvm', :id, '--graphicscontroller', 'vmsvga']"
- "customize ['modifyvm', :id, '--vram', '256']"
- "customize ['modifyvm', :id, '--accelerate-3d', 'off']"
- "customize ['modifyvm', :id, '--accelerate-2d-video', 'on']"
- "customize ['modifyvm', :id, '--clipboard-mode', 'bidirectional']"
- "customize ['modifyvm', :id, '--draganddrop', 'bidirectional']"
groups:
- client
我在检查了实际模板后尝试了分子流浪者插件用于构建 Vagrantfile 的方法。 我找不到任何关于此的文档。
从技术上讲,已弃用的 molecular vagrant 插件的自述文件中有一些文档here。但我不会依赖它。
希望这对某人有帮助。