Changes for page proxmox

Last modified by Kevin Wiki on 2026/05/18 15:44

From version 11.2
edited by Kevin Wiki
on 2026/05/18 15:38
Change comment: There is no comment for this version
To version 4.1
edited by Kevin Wiki
on 2025/07/05 20:20
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -90,178 +90,6 @@
90 90  
91 91  Now you can use this template to clone new VMs instantly.
92 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 -(% 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 -**qemu-guest-agent** is for allowing proxmox to query information from the VM such as IP address, shutdown commands, etc
144 -
145 -{{code language="bash"}}
146 -sudo apt update
147 -sudo apt upgrade -y
148 -sudo apt install qemu-guest-agent -y
149 -
150 -sudo systemctl enable qemu-guest-agent.service
151 -sudo systemctl start qemu-guest-agent.service
152 -{{/code}}
153 -
154 -**reset machine-id** to not have overlapping ids from same template
155 -
156 -{{code language="bash"}}
157 -cat /dev/null > /etc/machine-id
158 -cat /dev/null > /var/lib/dbus/machine-id
159 -{{/code}}
160 -
161 -**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
162 -
163 -{{code language="bash"}}
164 -cloud-init clean
165 -{{/code}}
166 -
167 -This is a debian example of what we are looking for:
168 -
169 -{{code language="yaml"}}
170 -# The top level settings are used as module
171 -# and system configuration.
172 -# A set of users which may be applied and/or used by various modules
173 -# when a 'default' entry is found it will reference the 'default_user'
174 -# from the distro configuration specified below
175 -
176 -# If this is set, 'root' will not be able to ssh in and they
177 -# will get a message to login instead as the default $user
178 -disable_root: true
179 -
180 -# This will cause the set+update hostname module to not operate (if true)
181 -preserve_hostname: false
182 -
183 -apt:
184 - # This prevents cloud-init from rewriting apt's sources.list file,
185 - # which has been a source of surprise.
186 - preserve_sources_list: true
187 -
188 -# manually managed resolv
189 -manage_resolv_conf: false
190 -
191 -package_update: true
192 -packages:
193 - - qemu-guest-agent
194 -
195 -# The modules that run in the 'init' stage
196 -cloud_init_modules:
197 - - seed_random
198 - - bootcmd
199 - - write-files
200 - - growpart
201 - - resizefs
202 - - disk_setup
203 - - mounts
204 - - set_hostname
205 - - update_hostname
206 - - update_etc_hosts
207 - - ca-certs
208 - - rsyslog
209 - - users-groups
210 - - ssh
211 -
212 -# The modules that run in the 'config' stage
213 -cloud_config_modules:
214 - - keyboard
215 - - locale
216 - - set-passwords
217 - - grub-dpkg
218 - - apt-pipelining
219 - - apt-configure
220 - - ntp
221 - - timezone
222 - - disable-ec2-metadata
223 - - runcmd
224 -
225 -# The modules that run in the 'final' stage
226 -cloud_final_modules:
227 - - package-update-upgrade-install
228 - - write-files-deferred
229 - - scripts-vendor
230 - - scripts-per-once
231 - - scripts-per-boot
232 - - scripts-per-instance
233 - - scripts-user
234 - - ssh-authkey-fingerprints
235 -# - keys-to-console
236 - - install-hotplug
237 -# - phone-home
238 - - final-message
239 - - power-state-change
240 -
241 -runcmd:
242 - - systemctl enable qemu-guest-agent.service
243 -
244 -# System and/or distro specific settings
245 -# (not accessible to handlers/transforms)
246 -system_info:
247 - # This will affect which distro class gets used
248 - distro: debian
249 - # Other config here will be given to the distro class and/or path classes
250 - paths:
251 - cloud_dir: /var/lib/cloud/
252 - templates_dir: /etc/cloud/templates/
253 - package_mirrors:
254 - - arches: [default]
255 - failsafe:
256 - primary: https://deb.debian.org/debian
257 - security: https://deb.debian.org/debian-security
258 - ssh_svcname: ssh
259 -{{/code}}
260 -
261 -
262 -
263 -
264 -
265 265  
266 266  )))
267 267  
image.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.kevin
Size
... ... @@ -1,0 +1,1 @@
1 +40.8 KB
Content