Struktura repozytorium¶
Struktura katalogów i plików w repozytorium¶
.
├── build.pkr.hcl # Definicja procesu budowy i hardeningu maszyny wirtualnej
├── file_source.pkr.hcl # Generowanie plików dla procesu instalacji
├── http # Katalog do przechowywania plików HTTP wykorzystywanych w instalacji
├── iso # Katalog na pliki ISO systemu
├── locals.pkr.hcl # Zmienne lokalne
├── pkrvars # Pliki zmiennych dla poszczególnych wersji Alpine Linux
│ ├── alpine-3.19-amd64.pkrvars.hcl
│ ├── alpine-3.20-amd64.pkrvars.hcl
│ └── alpine-3.21-amd64.pkrvars.hcl
├── provider.pkr.hcl # Konfiguracja dostawcy (provider) Proxmox
├── template.pkr.hcl # Definicja szablonu maszyny wirtualnej
├── templates # Szablony plików używane w procesie instalacji
│ ├── alpine-setup.sh.pkrtpl # Skrypt konfigurujący system
│ └── answers.pkrtpl # Plik odpowiedzi dla instalatora Alpine
├── variables_cloud_init.pkr.hcl # Definicja zmiennych Cloud-Init
├── variables_http.pkr.hcl # Zmienne dla serwera HTTP
├── variables_iso.pkr.hcl # Zmienne dotyczące ISO
├── variables.pkr.hcl # Ogólne zmienne Packer
├── variables_proxmox.pkr.hcl # Zmienne dotyczące konfiguracji Proxmox
├── variables_ssh.pkr.hcl # Zmienne SSH
└── variables_vm.pkr.hcl # Zmienne konfigurujące maszynę wirtualną
Opis kluczowych plików¶
build.pkr.hcl¶
Plik build.pkr.hcl
definiuje proces budowy obrazu Alpine Linux na Proxmox VE przy użyciu Packer. Główne funkcjonalności:
- Instalacja wymaganych pakietów systemowych (
apk add
). - Konfiguracja Cloud-Init (
setup-cloud-init
), umożliwiająca automatyczne zarządzanie instancjami. - Zabezpieczenie dostępu poprzez usunięcie kluczy SSH oraz dezaktywację konta
root
. - Czyszczenie zbędnych plików (historia poleceń, skrypty instalacyjne).
Obraz generowany na podstawie tego pliku jest gotowy do wdrożenia i spełnia wymagania bezpieczeństwa.
file_source.pkr.hcl¶
Plik file_source.pkr.hcl
definiuje proces generowania plików wykorzystywanych w instalacji systemu.
Plik answers
¶
Plik odpowiedzi (answers
) dla automatycznego instalatora Alpine Linux (setup-alpine
). Dzięki niemu instalacja odbywa się bez interakcji użytkownika, co jest kluczowe dla automatyzacji wdrożeń.
Skrypt alpine-setup.sh
¶
Plik alpine-setup.sh
odpowiada za:
- Instalację pakietów wymaganych po wdrożeniu maszyny.
- Konfigurację serwera SSH, umożliwiającą zdalne połączenie zaraz po uruchomieniu maszyny.
- Konfigurację kluczy SSH i uprawnień użytkownika.
template.pkr.hcl¶
Plik template.pkr.hcl
definiuje sposób tworzenia szablonu maszyny wirtualnej Alpine Linux na Proxmox VE.
Najważniejsze funkcjonalności:¶
- Łączenie się z API Proxmox w celu utworzenia nowej maszyny w puli
templates
. - Konfiguracja sprzętowa maszyny wirtualnej, obejmująca:
- Liczbę rdzeni procesora i ilość pamięci RAM.
- Konfigurację interfejsu sieciowego z VLAN (
10
dla testów,20
dla produkcji). - Typ dysku (
scsi
) i alokację przestrzeni dyskowej (storage.rachuna-net.pl
). - Automatyczna instalacja Alpine Linux z wykorzystaniem pliku
answers
oraz wykonanie skryptualpine-setup.sh
. - Integracja z Cloud-Init, umożliwiająca dynamiczną konfigurację systemu po wdrożeniu.
- Konfiguracja dostępu SSH, umożliwiająca uwierzytelnianie za pomocą klucza prywatnego lub hasła oraz wielokrotne próby połączenia.
Podsumowanie¶
Struktura repozytorium została zaprojektowana w sposób modularny, co ułatwia dostosowanie konfiguracji do różnych wersji Alpine Linux oraz pozwala na elastyczne zarządzanie parametrami maszyn wirtualnych. Dzięki automatyzacji wdrożenie systemu jest szybkie, bezpieczne i w pełni zgodne z wymaganiami Proxmox VE.
Repozytorium zapewnia:
✅ Pełną automatyzację instalacji – brak interakcji użytkownika.
✅ Obsługę wielu wersji Alpine Linux – zmienne w pkrvars/
.
✅ Integrację z Cloud-Init – dynamiczna konfiguracja VM.
✅ Bezpieczne ustawienia dostępu – brak domyślnych kont, usunięcie kluczy SSH.
DevOps
Dzięki takiej architekturze wdrażanie nowych instancji Alpine Linux w Proxmox VE jest wydajne, powtarzalne i zgodne z najlepszymi praktykami DevOps. 🚀