blob: 41671f7329c4573cb954593659c10eec139e59df (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
<domain type='kvm'>
<name>{{ inventory_hostname }}</name>
<memory>{{ ((install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</memory>
<currentMemory>{{ ((install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</currentMemory>
<vcpu>{{ install_cooked.vm.numcpus }}</vcpu>
<os>
<type arch='x86_64' machine='pc-0.12'>hvm</type>
{% if vm_define_installer %}
{% if install_distro == 'debian' or install_distro == 'ubuntu' %}
<kernel>{{ installer_tmpdir }}/linux</kernel>
<initrd>{{ installer_tmpdir }}/initrd.gz</initrd>
<cmdline>console=ttyS0,115200n8 auto</cmdline>
<boot dev='hd'/>
{% elif install_distro == 'openbsd' %}
<boot dev='cdrom'/>
{% endif %}
{% else %}
<boot dev='hd'/>
{% endif %}
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
{% if vm_define_installer %}
<on_reboot>destroy</on_reboot>
<on_crash>destroy</on_crash>
{% else %}
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
{% endif %}
<devices>
<emulator>/usr/bin/kvm</emulator>
<!-- Provide a virtualized RNG to the guest -->
<rng model='virtio'>
<!-- Allow consuming up to 10kb/s, measured over 2s -->
<rate period="2000" bytes="20480"/>
<backend model='random'>/dev/random</backend>
</rng>
{% if vm_define_installer and install_distro == 'openbsd' %}
<disk type='file' device='cdrom'>
<driver name='qemu'/>
<source file='{{ installer_tmpdir }}/{{ inventory_hostname }}.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
{% endif %}
{% if 'virtio' in install_cooked.disks %}
{% for device, src in install_cooked.disks.virtio.items() %}
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap'/>
{% if src.type == 'lvm' %}
<source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/>
{% elif src.type == 'zfs' %}
<source dev='/dev/zvol/{{ vm_host_cooked.zfs[src.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[src.backend | default('default')].name }}/{{ inventory_hostname }}/{{ src.name }}'/>
{% elif src.type == 'image' %}
<source dev='{{ src.path }}'/>
{% endif %}
<target dev='{{ device }}' bus='virtio'/>
</disk>
{% endfor %}
{% endif %}
{% if 'scsi' in install_cooked.disks %}
<controller type='scsi' index='0' model='virtio-scsi'/>
{% for device, src in install_cooked.disks.scsi.items() %}
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap'/>
{% if src.type == 'lvm' %}
<source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/>
{% elif src.type == 'zfs' %}
<source dev='/dev/zvol/{{ vm_host_cooked.zfs[src.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[src.backend | default('default')].name }}/{{ inventory_hostname }}/{{ src.name }}'/>
{% elif src.type == 'image' %}
<source dev='{{ src.path }}'/>
{% endif %}
<target dev='{{ device }}' bus='scsi'/>
</disk>
{% endfor %}
{% endif %}
{% if install_cooked.interfaces %}
{% for if in install_cooked.interfaces %}
<interface type='bridge'>
{% if 'mac' in if %}
<mac address='{{ if.mac }}'/>
{% endif %}
<source bridge='{{ if.bridge }}'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x0{{ loop.index }}' function='0x0'/>
</interface>
{% endfor %}
{% endif %}
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
</devices>
</domain>
|