Browse Docs

๐Ÿ˜‰ Deploy pfsense VM

install Pfsense VM

  • Download from Netgate website (account requested)

  • Make network config

Important note: no need to prepare NetworkManager config, KVM will handle creation of the bridge. Also note that dns enable is set to disables the use of libvirts DHCP server (pfsense is taking over).

 1cat > pfsense.xml << EOF
 2<network>
 3  <name>pfsense-router</name>
 4  <uuid></uuid>
 5  <forward mode='nat'>
 6  </forward>
 7  <bridge name='virbr1' stp='on' delay='0'/>
 8  <dns enable='no'/>
 9  <ip address='192.168.123.1' netmask='255.255.255.0'>
10  </ip>
11</network>
12EOF
13
14sudo virsh net-define pfsense.xml
15sudo virsh net-start pfsense-router
16sudo virsh net-autostart pfsense-router
17
18# Give qemu ACL
19echo "allow all" | sudo tee /etc/qemu-kvm/${USER}.conf
20echo "include /etc/qemu-kvm/${USER}.conf" | sudo tee --append /etc/qemu/bridge.conf
21sudo chown root:${USER} /etc/qemu-kvm/${USER}.conf
22sudo chmod 640 /etc/qemu-kvm/${USER}.conf
23
24# Check network
25nmcli con show --active
26sudo virsh net-list --all
27sudo virsh net-edit pfsense-router
28sudo virsh net-info pfsense-router
29sudo virsh net-dhcp-leases pfsense-router
  • Create and Run Pfsense VM
 1# Create pfsense vm
 2virt-install \
 3--name pfsense --ram 2048 --vcpus 2 \
 4--disk $HOME/pfsense/disk0.qcow2,size=12,format=qcow2 \
 5--cdrom $HOME/pfsense/netgate-installer-amd64.iso \
 6--network bridge=virbr0,model=e1000 \
 7--network bridge=virbr1,model=e1000 \
 8--graphics vnc,listen=0.0.0.0 --noautoconsole \
 9--osinfo freebsd14.0 \
10--autostart \
11--debug
12
13virsh start pfsense
  • Create OKD vm
 1virt-install \
 2--name okd --ram 2048 --vcpus 2 \
 3--disk $HOME/okd-latest/disk0.qcow2,size=50,format=qcow2 \
 4--autostart \
 5--cdrom $HOME/okd-latest/rhcos-live.iso \
 6--network bridge=virbr0,model=e1000 \
 7--network bridge=virbr1,model=e1000 \
 8--graphics vnc,listen=0.0.0.0 --noautoconsole \
 9--osinfo detect=on,require=off \
10--debug
 1sudo virt-install -n master01 \
 2  --description "Master01 OKD Cluster" \
 3  --ram=8192 \
 4  --cdrom "$HOME/okd-latest/rhcos-live.iso" \
 5  --vcpus=2 \
 6  --disk pool=default,bus=virtio,size=10 \
 7  --graphics none \
 8  --osinfo detect=on,require=off \
 9  --serial pty \
10  --console pty \
11  --network network=openshift4,mac=52:54:00:36:14:e5
 1sudo cp {{OKUB_INSTALL_PATH}}/rhcos-live.iso /var/lib/libvirt/images/rhcos-live-{{PRODUCT}}-{{RELEASE_VERSION}}.iso
 2export COREOS_INSTALLER="podman run --privileged --pull always --rm -v /dev:/dev -v /var/lib/libvirt/images:/data -w /data quay.io/coreos/coreos-installer:release"
 3sudo ${COREOS_INSTALLER} iso kargs modify -a "ip={{IP_MASTERS}}::{{GATEWAY}}:{{NETMASK}}:okub-sno:{{INTERFACE}}:none:{{DNS_SERVER}}" "rhcos-live-{{PRODUCT}}-{{RELEASE_VERSION}}.iso"
 4sudo virt-install --name="openshift-sno" \
 5 --vcpus=4 \
 6 --ram=8192 \
 7 --disk path=/var/lib/libvirt/images/sno-{{PRODUCT}}-{{RELEASE_VERSION}}.qcow2,bus=sata,size=120 \
 8 --network network=sno,model=virtio \
 9 --boot menu=on \
10 --graphics vnc --console pty,target_type=serial --noautoconsole \
11 --cpu host-passthrough \
12 --osinfo detect=on,require=off \
13 --cdrom /var/lib/libvirt/images/rhcos-live-{{PRODUCT}}-{{RELEASE_VERSION}}.iso

Checks Pfsense VM

1# Checks
2virsh list
3virsh domifaddr pfsense
4virsh domiflist pfsense
5
6# Connect to console
7virt-viewer --domain-name pfsense

Delete Pfsense VM

 1virsh destroy pfsense  
 2virsh undefine pfsense --remove-all-storage
 3
 4# disk can be deleted only manually
 5rm -f ~/pfsense/disk0.qcow2
 6
 7# delete network
 8sudo virsh net-destroy pfsense-router
 9sudo virsh net-undefine pfsense-router
10sudo nmcli con del virbr1
11sudo nmcli con del eno1

Create a worker

 1# Generate a MAC address
 2date +%s | md5sum | head -c 6 | sed -e 's/\([0-9A-Fa-f]\{2\}\)/\1:/g' -e 's/\(.*\):$/\1/' | sed -e 's/^/52:54:00:/';echo
 3
 4sudo virt-install -n worker03.ocp4.example.com \
 5  --description "Worker03 Machine for Openshift 4 Cluster" \
 6  --ram=8192 \
 7  --vcpus=4 \
 8  --os-type=Linux \
 9  --os-variant=rhel8.0 \
10  --noreboot \
11  --disk pool=default,bus=virtio,size=50 \
12  --graphics none \
13  --serial pty \
14  --console pty \
15  --pxe \
16  --network bridge=openshift4,mac=52:54:00:95:d4:ed
Friday, March 13, 2026 Tuesday, August 1, 2023