Przejdź do treści

Skrypt uruchamiający packer

Info

Skrypt Bash automatyzuje proces budowy i wdrażania szablonów maszyn wirtualnych Alpine Linux na Proxmox VE przy użyciu narzędzia Packer. Dzięki temu można zdefiniować wiele konfiguracji maszyn w katalogu pkrvars/, a skrypt kolejno je przetwarza.

Skrypt podzielony jest na trzy główne sekcje:

  • Definicja zmiennych środowiskowych dla Proxmox i maszyny wirtualnej.
  • Wyszukiwanie plików .hcl w katalogu pkrvars/, które zawierają konfiguracje różnych maszyn wirtualnych.
  • Automatyczna walidacja i budowa maszyn wirtualnych dla każdego pliku .hcl.

Przykład skryptu uruchamiającego projekt

#!/bin/bash

#### PROXMOX CLUSTER VARIABLES ####
export PKR_VAR_proxmox_node_name="pve"
export PKR_VAR_proxmox_api_username="root@pam"
export PKR_VAR_proxmox_api_password="<< twoje tajne hasło >>"
export PKR_VAR_proxmox_api_tls_verify="false"

### ISO VARIABLES ###
export PKR_VAR_iso_storage_pool="local"

### VM VARIABLES ###
# Możesz ustawić konkretny vm_id. Puste oznacza następny id liczony od 100
# export PKR_VAR_vm_id=

export PKR_VAR_ssh_public_key="<< Klucz publiczny SSH dla połączenia się do maszyny >>"
export PKR_VAR_ssh_private_key_file="<< Ścieżka gdzie znajduje się klucz prywatny do połączenia się z maszyną vm za pomocą SSH >>"
export PKR_VAR_root_password="<< tajne hasło roota >>"

# Wyszkujemy w katalogu pkrvars wszystkie definicje maszyn wirtualnych i je uruchamiamy
for file in $(find pkrvars -type f -name "*.hcl"); do
    packer fmt -check -var-file=$file .   # walidacja pod kątem formatowania
    packer validate -var-file=$file .     # walidacja pod kątem semantyki
    packer build -var-file=$file .        # Odpalamy proces
done