← Wszystkie artykuły

Cloud-init w Proxmox — maszyny gotowe w minutę z obrazu chmurowego

· 1 min czytania · Paweł Burzyński
Proxmoxcloud-initAutomatyzacja

Ręczna instalacja systemu z ISO przy każdej nowej maszynie to strata czasu. Dystrybucje udostępniają obrazy chmurowe (cloud image) — gotowe dyski, które przy pierwszym starcie same konfigurują się przez cloud-init. W Proxmox robisz z tego szablon i stawiasz maszynę w kilkadziesiąt sekund.

Krok 1: pobierz obraz chmurowy

Dla Debiana:

cd /var/lib/vz/template/iso
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2

Obraz genericcloud jest lekki (kilkaset MB) i zawiera pakiet cloud-init.

Krok 2: utwórz maszynę i podepnij dysk

qm create 9000 --name debian12-tpl --memory 2048 --cores 2 --cpu host \
  --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-single --ostype l26 --agent 1
qm importdisk 9000 debian-12-genericcloud-amd64.qcow2 local --format qcow2
qm set 9000 --scsi0 local:9000/vm-9000-disk-0.qcow2
qm set 9000 --ide2 local:cloudinit
qm set 9000 --boot order=scsi0 --serial0 socket --vga serial0

Serwisowa konsola szeregowa (serial0) jest wymagana przez obrazy chmurowe — bez niej nie zobaczysz konsoli.

Krok 3: zamień w szablon

qm template 9000

Od teraz z 9000 klonujesz maszyny błyskawicznie.

Krok 4: sklonuj i skonfiguruj przez cloud-init

qm clone 9000 101 --name web01 --full
qm disk resize 101 scsi0 40G
qm set 101 --ciuser root --sshkeys ~/.ssh/id_ed25519.pub
qm set 101 --ipconfig0 ip=192.168.10.101/24,gw=192.168.10.1 --nameserver 1.1.1.1
qm start 101

Przy pierwszym starcie cloud-init sam: ustawi hostname, wgra klucz SSH, ustawi adres IP i powiększy partycję do rozmiaru dysku. Po kilkudziesięciu sekundach logujesz się kluczem — bez dotykania instalatora.

Wgrywanie wielu kluczy naraz

Jeśli dostęp ma mieć kilka osób lub kont automatyzacji, wskaż plik z wieloma kluczami:

cat ~/.ssh/id_ed25519.pub /root/klucze/admin.pub > /root/vm-keys.pub
qm set 101 --sshkeys /root/vm-keys.pub

Wszystkie klucze wylądują w authorized_keys roota od pierwszego bootu.

Dwie pułapki, które warto znać

Cloud-init to podstawa powtarzalnej infrastruktury. Gdy maszyny stawiasz z jednego szablonu i konfigurujesz parametrami, cała flota jest spójna, a odtworzenie środowiska to kwestia kilku komend.