antony@notes:~/virtualization$ cat "Create-Ubuntu-Template-on-Proxmox.md"
Create Ubuntu Template on Proxmox
Create Ubuntu Template on Proxmox
Ubuntu Server 24.04
# 1. SSH login Proxmox node
$ ssh root@192.168.61.11
# 2. 下載 Ubuntu Server 24.04 image
$ wget https://cloud-images.ubuntu.com/noble/20240702/noble-server-cloudimg-amd64.img
# 3. Customize the image
$ apt install -y libguestfs-tools
$ virt-customize --install net-tools,sudo -a noble-server-cloudimg-amd64.img
# 4. 建立虛擬主機, 並設定網路
$ vmid="9003"
$ qm create "$vmid" --name us2404 --memory 8192 --net0 virtio,bridge=vmbr0
# 5. 匯入虛擬主機硬碟檔, 設定使用 SCSI 介面連接 虛擬硬碟檔
$ qm importdisk "$vmid" noble-server-cloudimg-amd64.img local-lvm
$ qm set "$vmid" --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-"$vmid"-disk-0
# 6. 加入 Cloud Init 功能
$ qm set "$vmid" --ide2 local-lvm:cloudinit
# 7. 撰寫 cloud-init User data 設定檔
$ mkdir -p /var/lib/vz/snippets/
$ nano /var/lib/vz/snippets/user"$vmid".yml
#cloud-config
hostname: alpine
package_update: true
packages:
- nano
write_files:
- path: /etc/resolv.conf
permissions: "0644"
owner: root
content: |
nameserver 8.8.8.8
users:
- name: bigred
no_user_group: true
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: 'bigred'
homedir: /home/bigred
shell: /bin/bash
ssh_pwauth: True
# 8. 撰寫 cloud-init Network data 設定檔
$ nano /var/lib/vz/snippets/network"$vmid".yml
version: 1
config:
- type: physical
name: ens18
subnets:
- type: static
address: '192.168.61.31'
netmask: '255.255.255.0'
gateway: '192.168.61.2'
# 9. 設定 VM 套用設定檔
$ qm set "$vmid" --cicustom "user=local:snippets/user"$vmid".yml,network=local:snippets/network"$vmid".yml"
# 10. 改變硬碟大小
$ qm resize "$vmid" scsi0 100G
# 11. 設定開機硬碟
$ qm set "$vmid"--boot c --bootdisk scsi0
# 12. 設定成 Template
# qm template "$vmid"Ubuntu Server 22.04
# 1. SSH login Proxmox node
$ ssh root@192.168.61.11
# 2. 下載 Ubuntu Server 22.04 image
$ wget https://cloud-images.ubuntu.com/jammy/20240705/jammy-server-cloudimg-amd64.img
# 3. Customize the image
$ apt install -y libguestfs-tools
$ virt-customize --install net-tools,sudo -a jammy-server-cloudimg-amd64.img
# 4. 建立虛擬主機, 並設定網路
$ vmid="9003"
$ qm create "$vmid" --name us2204 --memory 8192 --net0 virtio,bridge=vmbr0
# 5. 匯入虛擬主機硬碟檔, 設定使用 SCSI 介面連接 虛擬硬碟檔
$ qm importdisk "$vmid" jammy-server-cloudimg-amd64.img local-lvm
$ qm set "$vmid" --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-"$vmid"-disk-0
# 6. 加入 Cloud Init 功能
$ qm set "$vmid" --ide2 local-lvm:cloudinit
# 7. 撰寫 cloud-init User data 設定檔
$ mkdir -p /var/lib/vz/snippets/
$ nano /var/lib/vz/snippets/user"$vmid".yml
#cloud-config
hostname: alpine
package_update: true
packages:
- nano
write_files:
- path: /etc/resolv.conf
permissions: "0644"
owner: root
content: |
nameserver 8.8.8.8
users:
- name: bigred
no_user_group: true
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: 'bigred'
homedir: /home/bigred
shell: /bin/bash
ssh_pwauth: True
# 8. 撰寫 cloud-init Network data 設定檔
$ nano /var/lib/vz/snippets/network"$vmid".yml
version: 1
config:
- type: physical
name: ens18
subnets:
- type: static
address: '192.168.61.31'
netmask: '255.255.255.0'
gateway: '192.168.61.2'
# 9. 設定 VM 套用設定檔
$ qm set "$vmid" --cicustom "user=local:snippets/user"$vmid".yml,network=local:snippets/network"$vmid".yml"
# 10. 改變硬碟大小
$ qm resize "$vmid" scsi0 100G
# 11. 設定開機硬碟
$ qm set "$vmid"--boot c --bootdisk scsi0
# 12. 設定成 Template
# qm template "$vmid"