Changes for page proxmox
Last modified by Kevin Wiki on 2026/05/18 15:44
From version
10.2
edited by Kevin Wiki
on 2026/05/18 08:18
on 2026/05/18 08:18
Change comment:
There is no comment for this version
To version
2.2
edited by Kevin Wiki
on 2025/07/05 20:13
on 2025/07/05 20:13
Change comment:
There is no comment for this version
Summary
Details
- Page properties
-
- Content
-
... ... @@ -4,260 +4,22 @@ 4 4 ((( 5 5 {{children/}} 6 6 7 += Getting started - vm & lxc templates = 7 7 8 - = Getting StartedwithProxmoxVE LXC and VM Templates=9 +List and import lxc templates: 9 9 10 -Proxmox VE (PVE) allows users to create and manage both LXC containers and KVM virtual machines (VMs). This guide walks you through the process of downloading, importing, and creating templates for both. 11 - 12 -== LXC Templates == 13 - 14 -LXC containers are lightweight and ideal for running Linux services with minimal overhead. 15 - 16 -=== List Available Templates === 17 - 18 -To view the available LXC templates: 19 - 20 -{{code language="bash"}} 11 +``` 21 21 pveam list 22 -{{/code}} 23 - 24 -=== Download Templates === 25 - 26 -Use the pveam download command to import templates to the local storage: 27 - 28 -{{code language="bash"}} 29 -pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.gz 30 -pveam download local ubuntu-24.04-standard_24.04-1_amd64.tar.zst 31 -pveam download local debian-12-standard_11.7-1_amd64.tar.zst 32 -{{/code}} 33 - 34 -Once downloaded, these templates can be used to create new LXC containers from the Proxmox web interface or via CLI. 35 - 36 -== VM Template from Ubuntu Cloud Image == 37 - 38 -KVM VMs are ideal when you need full virtualization, for instance, to run Windows or more complex Linux systems. 39 - 40 -=== Download Ubuntu Cloud Image === 41 - 42 -Download the official Ubuntu 24.04 cloud [[image:]] 43 - 44 -{{code language="bash"}} 45 -wget http://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img 46 -{{/code}} 47 - 48 -=== Create the Virtual Machine === 49 - 50 -Create a new VM with ID 910 (you can pick any unused ID): 51 - 52 -{{code language="bash"}} 53 -qm create 910 -name template-ubuntu-jammy -memory 2048 -net0 virtio,bridge=vmbr0 -cores 2 -sockets 1 54 -{{/code}} 55 - 56 -=== Import and Attach the Disk === 57 - 58 -Choose the correct storage (replace nvme if you use a different storage name): 59 - 60 -{{code language="bash"}} 61 -qm importdisk 910 ubuntu-24.04-server-cloudimg-amd64.img nvme 62 -qm set 910 -scsihw virtio-scsi-pci -virtio0 nvme:vm-910-disk-0 63 -{{/code}} 64 - 65 -=== Configure the VM === 66 - 67 -{{code language="bash"}} 68 -qm set 910 -serial0 socket 69 -qm set 910 -boot c -bootdisk virtio0 70 -qm set 910 -agent 1 71 -qm set 910 -hotplug disk,network,usb 72 -qm set 910 -vcpus 1 73 -qm set 910 -vga qxl 74 -qm set 910 -ide2 nvme:cloudinit 75 -qm resize 910 virtio0 +8G 76 -{{/code}} 77 - 78 - 79 -If your disk is using SCSI instead of virtio, resize like this: 80 - 81 -{{code language="bash"}} 82 -qm resize 910 scsi0 +8G 83 -{{/code}} 84 - 85 -=== Convert the VM into a Template === 86 - 87 -{{code language="bash"}} 88 -qm template 910 89 -{{/code}} 90 - 91 -Now you can use this template to clone new VMs instantly. 92 - 93 -== Bash Script to Automate Setup == 94 - 95 -Install the above using bash script below 96 - 97 -=== setup_proxmox_templates.sh === 98 - 99 -{{code language="bash"}} 100 -#!/bin/bash 101 - 102 -# Exit on errors 103 -set -e 104 - 105 -echo "Downloading LXC templates..." 106 -pveam download nvme ubuntu-22.04-standard_22.04-1_amd64.tar.zst 107 -pveam download nvme ubuntu-24.04-standard_24.04-2_amd64.tar.zst 108 -pveam download nvme alpine-3.21-default_20241217_amd64.tar.xz 109 -pveam download nvme debian-12-standard_12.7-1_amd64.tar.zst 110 - 111 -echo "Downloading Ubuntu cloud image..." 112 -wget -N http://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img 113 - 114 -echo "Creating VM Template..." 115 -qm create 910 -name template-ubuntu-jammy -memory 2048 -net0 virtio,bridge=vmbr0 -cores 2 -sockets 1 && 1 116 - 117 -# qm importdisk 910 ubuntu-24.04-server-cloudimg-amd64.img nvme 118 -# qm set 910 -scsihw virtio-scsi-pci -scsi0-virtio0 nvme:910/vm-910-disk-0 119 -qm set 910 -scsihw virtio-scsi-pci -scsi0 nvme:0,import-from=/mnt/nvmestorage/template/iso/ubuntu-24.04-server-cloudimg-amd64.img 120 - 121 -qm set 910 -serial0 socket 122 -qm set 910 -boot c -bootdisk virtio0 123 -qm set 910 -agent 1 124 -qm set 910 -hotplug disk,network,usb 125 -qm set 910 -vcpus 1 126 -qm set 910 -vga qxl 127 -qm set 910 -ide2 nvme:cloudinit 128 -# qm resize 910 scsi0 +8G 129 - 130 -read -p "Confirm converting to template by pressing Enter" 131 -qm template 910 132 - 133 -echo "Templates setup complete." 134 -{{/code}} 135 - 136 - 137 -= VM runtime setup = 138 - 139 -After creating the VM and before making it into a template there are some programs and settings we want to ensure exists always. 140 - 141 -**qemu-guest-agent** is for allowing proxmox to query information from the VM such as IP address, shutdown commands, etc 142 - 143 -{{code language="bash"}} 144 -sudo apt update 145 -sudo apt upgrade -y 146 -sudo apt install qemu-guest-agent -y 147 - 148 -sudo systemctl enable qemu-guest-agent.service 149 -sudo systemctl start qemu-guest-agent.service 150 -{{/code}} 151 - 152 -**reset machine-id** to not have overlapping ids from same templat 153 - 154 -{{code language="bash"}} 155 -cat /dev/null > /etc/machine-id 156 -cat /dev/null > /var/lib/dbus/machine-id 157 -{{/code}} 158 - 159 -**cloud-init** is a great hook for installing or configuring programs or receiving variables from cloudinit CDROM drive. Making it easier to change IP, hostname, DNS, username/password, etc between VMs. 160 - 161 - 162 -This is a debian example of what we are looking for: 163 - 164 -{{code language="yaml"}} 165 -# The top level settings are used as module 166 -# and system configuration. 167 -# A set of users which may be applied and/or used by various modules 168 -# when a 'default' entry is found it will reference the 'default_user' 169 -# from the distro configuration specified below 170 -users: 171 - - default 172 - 173 -# If this is set, 'root' will not be able to ssh in and they 174 -# will get a message to login instead as the default $user 175 -disable_root: true 176 - 177 -# This will cause the set+update hostname module to not operate (if true) 178 -preserve_hostname: false 179 - 180 -apt: 181 - # This prevents cloud-init from rewriting apt's sources.list file, 182 - # which has been a source of surprise. 183 - preserve_sources_list: true 184 - 185 -# The modules that run in the 'init' stage 186 -cloud_init_modules: 187 - - seed_random 188 - - bootcmd 189 - - write-files 190 - - growpart 191 - - resizefs 192 - - disk_setup 193 - - mounts 194 - - set_hostname 195 - - update_hostname 196 - - update_etc_hosts 197 - - ca-certs 198 - - rsyslog 199 - - users-groups 200 - - ssh 201 - 202 -# The modules that run in the 'config' stage 203 -cloud_config_modules: 204 - - locale 205 - - set-passwords 206 - - grub-dpkg 207 - - apt-pipelining 208 - - apt-configure 209 - - ntp 210 - - timezone 211 - - disable-ec2-metadata 212 - - runcmd 213 - 214 -# The modules that run in the 'final' stage 215 -cloud_final_modules: 216 - - package-update-upgrade-install 217 - - write-files-deferred 218 - - scripts-vendor 219 - - scripts-per-once 220 - - scripts-per-boot 221 - - scripts-per-instance 222 - - scripts-user 223 - - ssh-authkey-fingerprints 224 -# - keys-to-console 225 - - install-hotplug 226 -# - phone-home 227 - - final-message 228 - - power-state-change 229 - 230 -# System and/or distro specific settings 231 -# (not accessible to handlers/transforms) 232 -system_info: 233 - # This will affect which distro class gets used 234 - distro: debian 235 - # Default user name + that default users groups (if added/used) 236 - default_user: 237 - name: debian 238 - lock_passwd: True 239 - gecos: Debian 240 - groups: [sudo] 241 - # Disables password-less sudo commands for default/debian user 242 - sudo: ["ALL=(ALL) ALL"] 243 - shell: /bin/bash 244 - # Other config here will be given to the distro class and/or path classes 245 - paths: 246 - cloud_dir: /var/lib/cloud/ 247 - templates_dir: /etc/cloud/templates/ 248 - package_mirrors: 249 - - arches: [default] 250 - failsafe: 251 - primary: https://deb.debian.org/debian 252 - security: https://deb.debian.org/debian-security 253 - ssh_svcname: ssh 254 -{{/code}} 255 - 256 - 257 - 258 - 259 - 13 + 78 pveam list nvm 14 + 79 pveam list nvme 15 + 80 pveam download nvme ubuntu-20.04-standard_20.04-1_amd64.tar.gz 16 + 81 pveam download nvme ubuntu-22.04-standard_22.04-1_amd64.tar.zs 17 + 82 pveam download nvme ubuntu-22.04-standard_22.04-1_amd64.tar.zst 18 + 83 pveam download nvme debian-11-standard_11.7-1_amd64.tar.zs 19 + 84 pveam download nvme debian-11-standard_11.7-1_amd64.tar.zst 260 260 21 + 22 +``` 261 261 ))) 262 262 263 263 (% class="col-xs-12 col-sm-4" %)
- image.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.kevin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +40.8 KB - Content