Przejdź do treści

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 skryptu alpine-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. 🚀