Update Home Assistant Core

Da es bei einigen Updates meiner Home Assistant Core Version immer wieder mal zu Problemen kam, fasse ich hier die Update-Prozedur zusammen, die für mich am besten funktioniert:

# 1. Login as root and stop Home Assistant service
systemctl stop home-assistant@hass.service
  
# 2. Backup Home assitant directories
tar cfvz homeassistant_backup_$(date +%Y%m%d-%H%M).tgz /home/hass/.homeassistant /srv/homeassistant
mv /srv/homeassistant /srv/homeassitant_$(date +%Y%m%d-%H%M)
  
# 3. Neues Verzeichnis für das  Python VENV erstellen
mkdir /srv/homeassistant
chown hass:hass /srv/homeassistant

# 4. in den Kontext des Home Assistant Service Users wechseln
sudo -u hass -H -s

# 5. Python venv anlegen
cd /srv/homeassistant
python3.8 -m venv .
source bin/activate

# 6. Install required Python Package wheel
python3 -m pip install wheel
  
# 7. fresh install most recent Home Assistant and some further requirements
pip3 install homeassistant
pip3 install aiohttp
pip3 install websockets

# 8. Update SSL/TLS certificate store (see note below)
/home/hass/update_python_ca.sh

# 9. home Assistant zur PRobe von der Kommandozeile starten
hass
  
# 10. Wenn keine relevanten Fehler auftreten Home Assistant mit 
#     Strg+C beenden und venv verlassen
deactivate 
exit

# 11. Home Assistant Dienst wieder starten
systemctl start home-assistant@hass.service
 

In Schritt 8 wird sichergestellt, dass die Zertifikate meiner CA, die ich für meine internen Systeme verwende von Python als vertrauenswürdig angesehen werden und die Verbindungen zu meinen internen Systemen entsprechend aufgebaut werden kann. Da der Zertifikatsspeicher des Python Venv nach jedem Update aktualisiert werden muss, habe ich mir ein Script geschrieben mit dem die Aktualisierung etwas vereinfacht wird:

#!/bin/bash

echo "

# hlpme.de - Root CA
-----BEGIN CERTIFICATE-----
MIIGk[...]
-----END CERTIFICATE-----

# hlpme.de - MQTT CA
-----BEGIN CERTIFICATE-----
MIIGk[...]
-----END CERTIFICATE-----

# hlpme.de - HTTPS CA
-----BEGIN CERTIFICATE-----
MIIGk[...]
-----END CERTIFICATE-----

# klein-gedruckt.de - Root CA
-----BEGIN CERTIFICATE-----
MIIGk[...]
-----END CERTIFICATE-----

# klein-gedruckt.de - HTTPS CA
-----BEGIN CERTIFICATE-----
MIIGk[...]
-----END CERTIFICATE-----
" >> $(ls -d /srv/homeassistant/lib/python*)/site-packages/certifi/cacert.pem

In dem Script müssen  zwischen den Abschnitten -----BEGIN CERTIFICATE----- und -----END CERTIFICATE-----  jeweils die öffentlichen Schlüssel der eigenen CA-Zertifikate im PEM-Format eingefügt werden.

Kommentare

PostadresseE-MailadresseFestnetzMobiltelefonSMS/SignalThreemaTwitter DirektnachrichtFAXWeb Page