Changes for page proxmox
Last modified by Kevin Wiki on 2026/05/18 15:44
From version
7.1
edited by Kevin Wiki
on 2025/07/05 20:23
on 2025/07/05 20:23
Change comment:
There is no comment for this version
To version
11.6
edited by Kevin Wiki
on 2026/05/18 15:40
on 2026/05/18 15:40
Change comment:
There is no comment for this version
Summary
Details
- Page properties
-
- Content
-
... ... @@ -103,17 +103,21 @@ 103 103 set -e 104 104 105 105 echo "Downloading LXC templates..." 106 -pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.gz 107 -pveam download local ubuntu-24.04-standard_24.04-1_amd64.tar.zst 108 -pveam download local debian-12-standard_11.7-1_amd64.tar.zst 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 109 109 110 110 echo "Downloading Ubuntu cloud image..." 111 111 wget -N http://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img 112 112 113 113 echo "Creating VM Template..." 114 -qm create 910 -name template-ubuntu-jammy -memory 2048 -net0 virtio,bridge=vmbr0 -cores 2 -sockets 1 115 -qm importdisk 910 ubuntu-24.04-server-cloudimg-amd64.img nvme 116 -qm set 910 -scsihw virtio-scsi-pci -virtio0 nvme:vm-910-disk-0 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 + 117 117 qm set 910 -serial0 socket 118 118 qm set 910 -boot c -bootdisk virtio0 119 119 qm set 910 -agent 1 ... ... @@ -121,12 +121,154 @@ 121 121 qm set 910 -vcpus 1 122 122 qm set 910 -vga qxl 123 123 qm set 910 -ide2 nvme:cloudinit 124 -qm resize 910 virtio0 +8G 128 +# qm resize 910 scsi0 +8G 129 + 130 +read -p "Confirm converting to template by pressing Enter" 125 125 qm template 910 126 126 127 127 echo "Templates setup complete." 128 128 {{/code}} 129 129 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 +(% id="cke_bm_721114S" style="display:none" %)** **(%%)**clear bash history** to not leave any configuration in history, clear and disable history file before proceeding: 142 + 143 +{{code language="bash"}} 144 +unset HISTFILE 145 +export HISTSIZE=0 146 +export HISTFILESIZE=0 147 + 148 +sudo rm /.bash_history 149 +rm ~/.bash_history 150 +{{/code}} 151 + 152 +**qemu-guest-agent** is for allowing proxmox to query information from the VM such as IP address, shutdown commands, etc 153 + 154 +{{code language="bash"}} 155 +sudo apt update 156 +sudo apt upgrade -y 157 +sudo apt install qemu-guest-agent -y 158 + 159 +sudo systemctl enable qemu-guest-agent.service 160 +sudo systemctl start qemu-guest-agent.service 161 +{{/code}} 162 + 163 +**reset machine-id** to not have overlapping ids from same template 164 + 165 +{{code language="bash"}} 166 +cat /dev/null > /etc/machine-id 167 +cat /dev/null > /var/lib/dbus/machine-id 168 +{{/code}} 169 + 170 +**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. 171 + 172 +If you used a cloud-init base image it will have run the default cloudinit which installs and configures a bunch of systems. 173 + 174 +{{code language="bash"}} 175 +cloud-init clean 176 +{{/code}} 177 + 178 +This is a debian example of what we are looking for: 179 + 180 +{{code language="yaml"}} 181 +# The top level settings are used as module 182 +# and system configuration. 183 +# A set of users which may be applied and/or used by various modules 184 +# when a 'default' entry is found it will reference the 'default_user' 185 +# from the distro configuration specified below 186 + 187 +# If this is set, 'root' will not be able to ssh in and they 188 +# will get a message to login instead as the default $user 189 +disable_root: true 190 + 191 +# This will cause the set+update hostname module to not operate (if true) 192 +preserve_hostname: false 193 + 194 +apt: 195 + # This prevents cloud-init from rewriting apt's sources.list file, 196 + # which has been a source of surprise. 197 + preserve_sources_list: true 198 + 199 +# manually managed resolv 200 +manage_resolv_conf: false 201 + 202 +package_update: true 203 +packages: 204 + - qemu-guest-agent 205 + 206 +# The modules that run in the 'init' stage 207 +cloud_init_modules: 208 + - seed_random 209 + - bootcmd 210 + - write-files 211 + - growpart 212 + - resizefs 213 + - disk_setup 214 + - mounts 215 + - set_hostname 216 + - update_hostname 217 + - update_etc_hosts 218 + - ca-certs 219 + - rsyslog 220 + - users-groups 221 + - ssh 222 + 223 +# The modules that run in the 'config' stage 224 +cloud_config_modules: 225 + - keyboard 226 + - locale 227 + - set-passwords 228 + - grub-dpkg 229 + - apt-pipelining 230 + - apt-configure 231 + - ntp 232 + - timezone 233 + - disable-ec2-metadata 234 + - runcmd 235 + 236 +# The modules that run in the 'final' stage 237 +cloud_final_modules: 238 + - package-update-upgrade-install 239 + - write-files-deferred 240 + - scripts-vendor 241 + - scripts-per-once 242 + - scripts-per-boot 243 + - scripts-per-instance 244 + - scripts-user 245 + - ssh-authkey-fingerprints 246 +# - keys-to-console 247 + - install-hotplug 248 +# - phone-home 249 + - final-message 250 + - power-state-change 251 + 252 +runcmd: 253 + - systemctl enable qemu-guest-agent.service 254 + 255 +# System and/or distro specific settings 256 +# (not accessible to handlers/transforms) 257 +system_info: 258 + # This will affect which distro class gets used 259 + distro: debian 260 + # Other config here will be given to the distro class and/or path classes 261 + paths: 262 + cloud_dir: /var/lib/cloud/ 263 + templates_dir: /etc/cloud/templates/ 264 + package_mirrors: 265 + - arches: [default] 266 + failsafe: 267 + primary: https://deb.debian.org/debian 268 + security: https://deb.debian.org/debian-security 269 + ssh_svcname: ssh 270 +{{/code}} 271 + 272 + 273 + 274 + 275 + 130 130 131 131 ))) 132 132
- image.jpg
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.kevin - Size
-
... ... @@ -1,1 +1,0 @@ 1 -40.8 KB - Content