Difference between revisions of "Creating Your Own ProxCP KVM Templates"
From ProxCP Documentation
Line 34: | Line 34: | ||
* If you created a user during installation, remove that user with <code>deluser [username] && rm -rf /home/[username]</code> | * If you created a user during installation, remove that user with <code>deluser [username] && rm -rf /home/[username]</code> | ||
* Complete updates <code>apt update && apt upgrade && apt install setserial</code> or <code>yum update && yum install setserial</code> | * Complete updates <code>apt update && apt upgrade && apt install setserial</code> or <code>yum update && yum install setserial</code> | ||
+ | |||
+ | == Serial Console Setup == | ||
+ | |||
+ | KVM templates have to be configured to use a serial console for noVNC access. | ||
+ | |||
+ | * Edit the <code>/etc/default/grub</code> file: | ||
+ | ** Add or replace | ||
+ | GRUB_CMDLINE_LINUX='quiet console=tty0 console=ttyS0,115200' | ||
+ | GRUB_TERMINAL=serial | ||
+ | GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" | ||
+ | ** Save the file | ||
+ | * Run <code>update-grub</code> (debian/ubuntu) or <code>grub2-mkconfig -o /boot/grub2/grub.cfg</code> (centos/rhel) | ||
+ | * Run <code>cat /etc/securetty | grep ttyS0</code> and ensure ttyS0 is in /etc/securetty. This file may not exist which is okay. | ||
+ | |||
+ | If you are creating a template for a newer operating system using "systemd": | ||
+ | * Run <code>systemctl enable serial-getty@ttyS0.service && systemctl start serial-getty@ttyS0.service</code> | ||
+ | |||
+ | * Shutdown the VM <code>shutdown -h now</code> |
Revision as of 00:25, 26 July 2020
This tutorial covers how to create a custom KVM template for use with ProxCP and Proxmox.
Required: at least 1 Proxmox node
Assumption: The desired operating system ISO is already downloaded onto your Proxmox node.
The commands covered here are relevant to Debian and RHEL-based operating systems however the process can be applied to any other operating system.
Create VM
- Create a new VM in Proxmox with the following settings:
- VMID: anything
- Name: operating system description (i.e. centos-8-amd64)
- OS: your chosen ISO image
- Hard Disk: use VirtIO SCSI (scsi0) with 10GB storage and no caching
- CPU & Memory: 1 kvm64 CPU core, 1GB memory
- Network: VirtIO (virtio0), vmbr0 bridge, no firewall
- After creation, go to the Hardware tab and delete the CDROM ISO. Add a cloud-init drive on ide2. Add the CDROM ISO back as ide0.
Base OS
- Boot the new VM and complete the base operating system installation. Generally, templates should use most default settings and minimal packages. There are a few things to keep in mind during installation:
- Partitions: create 1 ext4 root "/" partition (no LVM, no SWAP)
- Networking: use a generic hostname (i.e. localhost or centos-8-amd64)
- Packages: use minimal packages, however the OpenSSH server is required
OS Setup Stage 1
- Once the base OS installation is complete, shutdown the VM
- In Proxmox, go to Options and set the boot order to scsi0 only (1 option)
- Go to the Hardware tab and remove the ide0 CDROM. Verify the network device is net0 using vmbr0 bridge
- Power on the VM
- Login as root
- If you created a user during installation, remove that user with
deluser [username] && rm -rf /home/[username]
- Complete updates
apt update && apt upgrade && apt install setserial
oryum update && yum install setserial
Serial Console Setup
KVM templates have to be configured to use a serial console for noVNC access.
- Edit the
/etc/default/grub
file:- Add or replace
GRUB_CMDLINE_LINUX='quiet console=tty0 console=ttyS0,115200' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
- Save the file
- Run
update-grub
(debian/ubuntu) orgrub2-mkconfig -o /boot/grub2/grub.cfg
(centos/rhel) - Run
cat /etc/securetty | grep ttyS0
and ensure ttyS0 is in /etc/securetty. This file may not exist which is okay.
If you are creating a template for a newer operating system using "systemd":
- Run
systemctl enable serial-getty@ttyS0.service && systemctl start serial-getty@ttyS0.service
- Shutdown the VM
shutdown -h now