【发布时间】:2018-09-25 06:17:54
【问题描述】:
我想在 golang 库 libvirt-go 上创建一个带有 kickstart 选项的新 centos 7 虚拟机。
要创建新的 vm,我需要一个 XML-Config,它是通过 libvirt-go-xml 包生成的。
这是我生成域结构的函数,稍后我将其解析为 XML-Dom。
func defineDomain(domainName string, vcpu *libvirtxml.DomainVCPU, disks []libvirtxml.DomainDisk, interfaces []libvirtxml.DomainInterface, memory *libvirtxml.DomainMemory) *libvirtxml.Domain {
domainId := 10
domain := &libvirtxml.Domain{
XMLName: xml.Name{
Space: "Hello",
Local: "World",
},
Type: "kvm",
ID: &domainId,
Name: domainName,
UUID: uuid.Must(uuid.NewV4()).String(),
Title: domainName,
Description: domainName,
Metadata: &libvirtxml.DomainMetadata{
XML: "",
},
Memory: memory,
VCPU: vcpu,
OS: &libvirtxml.DomainOS{
BootDevices: []libvirtxml.DomainBootDevice{
libvirtxml.DomainBootDevice{
Dev: "hd",
},
},
Kernel: "",
Initrd: "/home/markus/workspace/worker-management/centos/kvm-centos.ks",
Cmdline: "ks=file:/home/markus/workspace/worker-management/centos/kvm-centos.ks method=http://repo02.agfa.be/CentOS/7/os/x86_64/",
Type: &libvirtxml.DomainOSType{
Arch: "x86_64",
Type: "hvm",
},
},
OnCrash: "restart",
OnPoweroff: "destroy",
OnReboot: "restart",
Devices: &libvirtxml.DomainDeviceList{
Emulator: "/usr/bin/kvm-spice",
Disks: disks,
Interfaces: interfaces,
Graphics: []libvirtxml.DomainGraphic{
libvirtxml.DomainGraphic{
VNC: &libvirtxml.DomainGraphicVNC{
AutoPort: "yes",
Listen: "127.0.0.1",
Keymap: "de",
Listeners: []libvirtxml.DomainGraphicListener{
libvirtxml.DomainGraphicListener{
Address: &libvirtxml.DomainGraphicListenerAddress{
Address: "127.0.0.1",
},
},
},
},
},
},
},
}
return domain
}
当我想用我的 XML-Dom 创建新的虚拟机时,我收到以下错误。
2018/09/25 08:12:45 virError(Code=1, Domain=10, Message='internal error: process exited while connecting to monitor: 2018-09-25T06:12:45.683418Z qemu-system-x86_64: -append only allowed with -kernel option')
我定义了一个空字符串作为内核选项,因为我不知道该炫耀什么。
- 我需要在内核选项下具体指定什么才能让我的 VM 正确启动和
- 在哪里可以找到有关设置内核选项的优秀文档?
【问题讨论】: