Packer
Categories:
less than a minute
Packer to narzędzie do automatycznego budowania, instalacji systemu operacyjnego, konfiguracji jego według zdefiniowanych reguł i zapisania wyniku jako gotowy obraz do użycia.
Zamiast instalować system ręcznie, Packer wykonuje cały proces automatycznie: uruchamia maszynę, instaluje system operacyjny, konfiguruje go według zdefiniowanych reguł i zapisuje wynik jako gotowy obraz. Dzięki temu każdy wygenerowany template jest identyczny i możliwy do odtworzenia w dowolnym momencie.
Projekty Packer
| projekt | version | description |
|---|---|---|
| alma | Template Alma dla Proxmox generowany przez Packer | |
| alpine | Template Alpine dla Proxmox generowany przez Packer | |
| ubuntu | Template Ubuntu dla Proxmox generowany przez Packer |
Instalacja szablonów
Konfiguracja w Vault
pl.rachuna-net/infrastructure/packer
{
"SSH_PASSWORD": "techuser",
"SSH_PUBLIC_KEY": "ssh-...",
"SSH_USERNAME": "techuser"
}
pl.rachuna-net/auth/proxmox
{
"DEFAULT_NODE": "pve-s1",
"PASSWORD": "...",
"USERNAME": "root@pam"
}
Skrypt instalacyjny
#!/usr/bin/env bash
### VAULT CONNECTION ###
export VAULT_TOKEN="hvs....."
export VAULT_ADDR="https://vault.rachuna-net.pl"
direnv allow
packer init .
for file in $(find pkrvars -type f -name "*.hcl"); do
# Create a new vm template
packer fmt -var-file=$file .
packer validate -var-file=$file .
packer build -var-file=$file .
done