Instrukcja pobrania szablonu LXC oraz jego wykorzystania do utworzenia kontenera w projekcie iac-proxmox przy użyciu modułu proxmox-container.
1. Cel i kontekst
Szablony LXC (templates) w środowisku Proxmox VE są wykorzystywane do szybkiego i powtarzalnego tworzenia kontenerów systemowych.
W projekcie iac-proxmox za pobieranie oraz utrzymanie tych szablonów odpowiada dedykowany katalog:
./containers_templates/
Zasoby zdefiniowane w tym katalogu:
- automatycznie pobierają obrazy kontenerów,
- zapisują je w magazynie danych Proxmoxa,
- udostępniają je do dalszego użycia przez moduł
proxmox-container.
2. Pobranie szablonu LXC
Poniższy zasób odpowiada za pobranie oficjalnego szablonu Ubuntu 24.04 LTS bezpośrednio z repozytorium Proxmoxa:
resource "proxmox_virtual_environment_download_file" "ubuntu24-10" {
content_type = "vztmpl"
datastore_id = local.storage_name
node_name = local.default_node
file_name = "ubuntu-24.04.tar.zst"
url = "http://download.proxmox.com/images/system/ubuntu-24.04-standard_24.04-2_amd64.tar.zst"
checksum = "4030982618eeae70854e8f9711adbd09"
checksum_algorithm = "md5"
}
3. Omówienie parametrów zasobu
| Parametr | Opis |
|---|---|
content_type |
Typ pobieranego pliku — vztmpl oznacza szablon LXC |
datastore_id |
Magazyn danych w Proxmoxie (np. local, local-lvm, ceph) |
node_name |
Nazwa noda Proxmoxa, na którym ma zostać zapisany template |
file_name |
Nazwa pliku po zapisaniu w repozytorium template |
url |
Bezpośredni adres oficjalnego szablonu |
checksum |
Suma kontrolna pliku |
checksum_algorithm |
Algorytm weryfikacji integralności (md5, sha256) |
✅ Dzięki zastosowaniu checksum OpenTofu weryfikuje, czy pobrany plik nie został uszkodzony.
4. Zmienne lokalne wykorzystywane w zasobie
Zmienna local.storage_name oraz local.default_node są zwykle zdefiniowane w pliku:
locals.tf
Przykładowa definicja:
locals {
storage_name = "local"
default_node = "proxmox-1"
}
✅ Takie podejście zapewnia:
- centralne zarządzanie konfiguracją,
- łatwą migrację między środowiskami,
- brak twardo zakodowanych nazw w zasobach.
5. Zależność od modułu proxmox-container
Po pobraniu szablonu, może on zostać wykorzystany w module:
modules/proxmox-container
Przykład użycia template w definicji kontenera:
template = "local:vztmpl/ubuntu-24.04.tar.zst"
Moduł proxmox-container wykorzystuje ten template do:
- utworzenia systemu plików kontenera,
- konfiguracji sieci,
- ustawienia użytkowników,
- przypisania zasobów CPU i RAM.