add luks and virsh notes from truenas migration
This commit is contained in:
@@ -16,10 +16,12 @@ Virtual Machine Management
|
||||
- [Set a Static IP](#set-a-static-ip)
|
||||
- [Creating VMs](#creating-vms)
|
||||
- [Create VM with No Graphics and use an Existing QCOW2 Disk](#create-vm-with-no-graphics-and-use-an-existing-qcow2-disk)
|
||||
- [Create a Cloud Init Compatible VM](#create-a-cloud-init-compatible-vm)
|
||||
- [Create a Cloud Init Compatible VM](#create-a-cloud-init-compatible-vm)
|
||||
- [Create VM with Graphics using an ISO Installation Disk](#create-vm-with-graphics-using-an-iso-installation-disk)
|
||||
- [Create VM using Host Device as Disk](#create-vm-using-host-device-as-disk)
|
||||
- [Create a Home Assistant VM](#create-a-home-assistant-vm)
|
||||
- [Snapshots](#snapshots)
|
||||
- [Creating and Attaching Disks](#creating-and-attaching-disks)
|
||||
- [Virt Builder](#virt-builder)
|
||||
|
||||
## Before you Begin
|
||||
@@ -55,6 +57,12 @@ Virtual Machine Management
|
||||
export LIBVIRT_DEFAULT_URI='qemu+ssh://user@server/system'
|
||||
```
|
||||
|
||||
Or for Truenas
|
||||
|
||||
```bash
|
||||
export LIBVIRT_DEFAULT_URI='qemu+ssh://root@truenas/system?socket=/run/truenas_libvirt/libvirt-sock'
|
||||
```
|
||||
|
||||
## Useful Virsh Commands
|
||||
|
||||
```bash
|
||||
@@ -234,7 +242,7 @@ virt-install \
|
||||
--import --disk "path=${VM_DISK_PATH},bus=virtio"
|
||||
```
|
||||
|
||||
#### Create a Cloud Init Compatible VM
|
||||
### Create a Cloud Init Compatible VM
|
||||
|
||||
<https://cloudinit.readthedocs.io/en/latest/reference/examples.html>
|
||||
|
||||
@@ -318,10 +326,93 @@ virt-install \
|
||||
--disk none
|
||||
```
|
||||
|
||||
### Create a Home Assistant VM
|
||||
|
||||
```bash
|
||||
virt-install \
|
||||
--name haos \
|
||||
--description "Home Assistant OS" \
|
||||
--os-variant=generic \
|
||||
--ram=4096 \
|
||||
--vcpus=2 \
|
||||
--disk /var/lib/libvirt/images/haos_ova-16.3.qcow2,bus=scsi \
|
||||
--controller type=scsi,model=virtio-scsi \
|
||||
--import \
|
||||
--graphics none \
|
||||
--boot uefi
|
||||
```
|
||||
|
||||
## Snapshots
|
||||
|
||||
See [qemu qcow2 snapshots](/active/software_qemu/qemu.md#qcow2-snapshots)
|
||||
|
||||
## Creating and Attaching Disks
|
||||
|
||||
To create and attach one disk:
|
||||
|
||||
```bash
|
||||
export VM_NAME="cloud-init-test-fedora"
|
||||
export VM_DISK_NAME="test1"
|
||||
qemu-img create -f qcow2 /var/lib/libvirt/images/${VM_DISK_NAME}.qcow2 1G
|
||||
|
||||
virsh attach-disk ${VM_NAME} \
|
||||
--source /var/lib/libvirt/images/${VM_DISK_NAME} \
|
||||
--target vdb \
|
||||
--persistent
|
||||
--live
|
||||
```
|
||||
|
||||
To create and attach multiple disks (for raid testing)
|
||||
|
||||
```bash
|
||||
export VM_NAME="cloud-init-test-fedora"
|
||||
# Max supported for this script is 25
|
||||
export VM_NUM_DISKS=8
|
||||
export VM_DISK_SIZE=4G
|
||||
|
||||
##### Attach #####
|
||||
# Create the disks and target mounts from our array
|
||||
letters=($(echo {a..z}))
|
||||
for disk_num in $(seq 1 $VM_NUM_DISKS); do
|
||||
VM_DISK_NAME="test-${disk_num}"
|
||||
VM_DISK_TARGET=vd${letters[$disk_num]}
|
||||
|
||||
echo "Creating /var/lib/libvirt/images/${VM_DISK_NAME}.qcow2"
|
||||
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/${VM_DISK_NAME}.qcow2 ${VM_DISK_SIZE}
|
||||
|
||||
echo "Attaching vd${letters[$disk_num]} to ${VM_NAME}"
|
||||
virsh attach-disk ${VM_NAME} \
|
||||
--source /var/lib/libvirt/images/${VM_DISK_NAME}.qcow2 \
|
||||
--target vd${letters[$disk_num]} \
|
||||
--persistent \
|
||||
--subdriver qcow2 \
|
||||
--live
|
||||
done;
|
||||
|
||||
##### Cleanup #####
|
||||
# Detach the disks from our VMs
|
||||
letters=($(echo {a..z}))
|
||||
for disk_num in $(seq 1 $VM_NUM_DISKS); do
|
||||
VM_DISK_NAME="test-${disk_num}"
|
||||
VM_DISK_TARGET=vd${letters[$disk_num]}
|
||||
|
||||
echo "Detaching vd${letters[$disk_num]} from ${VM_NAME}"
|
||||
virsh detach-disk ${VM_NAME} \
|
||||
--target vd${letters[$disk_num]} \
|
||||
--persistent
|
||||
done;
|
||||
|
||||
# Optionally delete images
|
||||
letters=($(echo {a..z}))
|
||||
for disk_num in $(seq 1 $VM_NUM_DISKS); do
|
||||
VM_DISK_NAME="test-${disk_num}"
|
||||
VM_DISK_TARGET=vd${letters[$disk_num]}
|
||||
|
||||
echo "Removing /var/lib/libvirt/images/${VM_DISK_NAME}.qcow2"
|
||||
sudo rm /var/lib/libvirt/images/${VM_DISK_NAME}.qcow2
|
||||
done;
|
||||
```
|
||||
|
||||
## Virt Builder
|
||||
|
||||
<https://docs.fedoraproject.org/en-US/fedora-server/virtualization/vm-install-diskimg-virtbuilder/#_minimal_effort_customization>
|
||||
|
||||
Reference in New Issue
Block a user