Home Assistant Test/Prod Infrastructure as Code

Wojciech Konieczny authored 22 days ago
current-config Solcast: API Key otrzymany, instrukcja instalacji manulanej 23 days ago
docs Fix: Naprawa błędu YAML w automatyzacji (pusta sekcja data) 22 days ago
ha-config-export 📚 Dodano kompletny przewodnik sterowania baterią Deye 23 days ago
ha-configs Fix: Automatyzacje z czasem 00:00 (zamiast 22:00) - Deye bug 22 days ago
scripts 📚 Dodano kompletny przewodnik sterowania baterią Deye 23 days ago
.gitignore Initial commit: Home Assistant Test/Prod infrastructure 24 days ago
README.md Initial commit: Home Assistant Test/Prod infrastructure 24 days ago
README.md

Home Assistant - Test/Prod Infrastructure

Automatyczne zarządzanie środowiskami Home Assistant na Proxmox z wykorzystaniem Infrastructure as Code.

📋 Architektura

Proxmox 192.168.50.200
├── VM 210: homeassistant-test (192.168.50.210)
│   └── Home Assistant OS 13.2
└── VM 211: homeassistant-prod (192.168.50.211)
    └── Home Assistant OS 13.2

🚀 Szybki start

1. Utworzenie środowiska TEST

cd ~/homeassistant-infra
chmod +x scripts/*.sh
./scripts/create-ha-vm.sh test

Pierwsze uruchomienie zajmie ~10-15 minut. Sprawdź status:

watch -n 5 'curl -s http://192.168.50.210:8123 && echo " - HA Ready!" || echo " - Czekam..."'

2. Konfiguracja początkowa Home Assistant

  1. Otwórz: http://192.168.50.210:8123
  2. Przejdź przez wizard (użytkownik, lokalizacja, integracje)
  3. Ważne: Włącz SSH access
    • Supervisor → System → Join → "Advanced Mode"
    • Settings → Add-ons → Terminal & SSH
    • Zainstaluj i uruchom
    • Configuration → Ustaw hasło: QWer!@34

3. Testowanie i developement

Pracuj na środowisku TEST:

  • Dodawaj integracje
  • Twórz automatyzacje
  • Testuj scenariusze
  • Modyfikuj konfigurację

4. Utworzenie środowiska PROD

./scripts/create-ha-vm.sh prod

Powtórz konfigurację początkową jak dla TEST.

5. Synchronizacja TEST → PROD

Gdy zmiany w TEST są gotowe:

./scripts/sync-test-to-prod.sh

Skrypt:

  • Utworzy backup PROD
  • Skopiuje konfigurację z TEST do PROD
  • Zrestartuje PROD

🔧 Zarządzanie

Backup

Backup wszystkich środowisk:

./scripts/backup-ha.sh all

Backup pojedynczego środowiska:

./scripts/backup-ha.sh test
./scripts/backup-ha.sh prod

Backupy są zapisywane w ./backups/

Restore

./scripts/restore-backup.sh ./backups/prod_config_20260203_220000.tar.gz prod

Zarządzanie VM

Status VM

ssh root@192.168.50.200 "qm status 210"  # TEST
ssh root@192.168.50.200 "qm status 211"  # PROD

Stop/Start VM

ssh root@192.168.50.200 "qm stop 210"
ssh root@192.168.50.200 "qm start 210"

Restart

ssh root@192.168.50.200 "qm reboot 210"

Logi konsoli

ssh root@192.168.50.200 "qm terminal 210"

📂 Struktura projektu

homeassistant-infra/
├── scripts/
│   ├── create-ha-vm.sh       # Tworzenie VM
│   ├── sync-test-to-prod.sh  # Synchronizacja środowisk
│   ├── backup-ha.sh           # Backup
│   └── restore-backup.sh      # Restore
├── backups/                   # Backupy konfiguracji
├── docs/                      # Dokumentacja
└── README.md                  # Ten plik

🔄 Workflow codziennej pracy

graph LR
    A[Zmiana w TEST] --> B[Testowanie]
    B --> C{Działa?}
    C -->|Nie| A
    C -->|Tak| D[git commit]
    D --> E[git push]
    E --> F[sync-test-to-prod.sh]
    F --> G[Produkcja gotowa]
  1. Edycja w TEST - pracuj na http://192.168.50.210:8123
  2. Testowanie - upewnij się że wszystko działa
  3. Commit do Git (opcjonalnie):
    git add .
    git commit -m "Dodano automatyzację X"
    git push origin master
  4. Deploy na PROD:
    ./scripts/sync-test-to-prod.sh

🔐 Dane dostępowe

Środowisko IP URL SSH
Proxmox 192.168.50.200 https://192.168.50.200:8006 root / QWer!@34
HA Test 192.168.50.210 http://192.168.50.210:8123 root / QWer!@34
HA Prod 192.168.50.211 http://192.168.50.211:8123 root / QWer!@34
GitBucket 192.168.50.101 http://192.168.50.101:8080 root / root

📦 Zasoby VM

Środowisko CPU RAM Dysk
TEST 2 cores 4 GB 32 GB
PROD 4 cores 6 GB 64 GB

🔗 Integracja z Git

Dodanie repozytorium do GitBucket

cd ~/homeassistant-infra
git remote add origin http://192.168.50.101:8080/git/root/homeassistant-infra.git
git push -u origin master

Codzienne użycie

# Przed zmianami
git pull

# Po zmianach
git add .
git commit -m "Opis zmian"
git push

🆘 Troubleshooting

VM nie startuje

ssh root@192.168.50.200 "qm list"
ssh root@192.168.50.200 "tail -100 /var/log/syslog | grep qm"

Home Assistant nie odpowiada

# Sprawdź logi VM
ssh root@192.168.50.210 "ha core logs"

# Restart HA
ssh root@192.168.50.210 "ha core restart"

# Restart całej VM
ssh root@192.168.50.200 "qm reboot 210"

Synchronizacja się nie powiodła

# Przywróć backup
./scripts/restore-backup.sh ./backups/prod_backup_XXX.tar.gz prod

Brak dostępu SSH do HA

  • Zaloguj się przez webUI
  • Supervisor → Terminal & SSH
  • Sprawdź czy addon jest uruchomiony
  • Sprawdź konfigurację hasła

📚 Kolejne kroki

  1. Automatyzacja backupów - cron job:

    0 2 * * * cd ~/homeassistant-infra && ./scripts/backup-ha.sh all
  2. Monitoring - dodaj sprawdzanie dostępności HA

  3. CI/CD - GitBucket webhooks → auto-deploy

  4. Rozbudowa - dodaj staging environment

📖 Dokumentacja Home Assistant

🤝 Wsparcie

W razie problemów:

  1. Sprawdź logi
  2. Przywróć backup
  3. Skontaktuj się z administratorem

Autor: Generated by GitHub Copilot CLI
Data: 2026-02-03
Wersja: 1.0