Skip to content

Pobieranie template LXC

Instrukcja pobrania szablonu LXC oraz jego wykorzystania do utworzenia kontenera w projekcie iac-proxmox przy użyciu modułu proxmox-container.


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.

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"
}

ParametrOpis
content_typeTyp pobieranego pliku — vztmpl oznacza szablon LXC
datastore_idMagazyn danych w Proxmoxie (np. local, local-lvm, ceph)
node_nameNazwa noda Proxmoxa, na którym ma zostać zapisany template
file_nameNazwa pliku po zapisaniu w repozytorium template
urlBezpośredni adres oficjalnego szablonu
checksumSuma kontrolna pliku
checksum_algorithmAlgorytm weryfikacji integralności (md5, sha256)

✅ Dzięki zastosowaniu checksum OpenTofu weryfikuje, czy pobrany plik nie został uszkodzony.


4. Zmienne lokalne wykorzystywane w zasobie

Section titled “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

Section titled “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.