This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Pobieranie template LXC

Pobieranie template LXC

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.