Actualizar contenedor Home Assistant

Introducción

¡ Asegúrate de hacer una copia de seguridad de la instalación de Home Assistant primero!

Además, es una buena idea (obligatorio, diría yo) consultar las Notas de la versión antes de actualizar. De esa manera, podrá prepararse para cualquier cambio futuro, especialmente el tipo de ruptura.

Por cierto, este proceso es el mismo para actualizar otros contenedores Docker, como nuestros complementos.

Asistente de hogar 2022.8.7
HA 2022.8.7: antes de la actualización

Consigue la versión más reciente

Actualizar un contenedor Docker usando Docker-compose implica extraer la última versión de la imagen del contenedor y volver a ejecutarla docker-composepara reconstruir el contenedor usando esa imagen.

cd ~/docker/ 
docker-compose pull homeassistant
docker-compose up -d

Intento

salida acoplable
Extrayendo imagen de actualización a través de Docker

También se reconstruirán los contenedores que dependen del contenedor actualizado.

Asistente de hogar 2022.9.1
HA 2022.9.1 – después de la actualización

Sensor de versión

¿No te apetece realizar un seguimiento manual de cuándo hay una actualización disponible? No se preocupe, ya que Home Assistant proporciona una útil integración de versiones .

Instale la integración de la versión a través de Configuración > Dispositivos y servicios > Agregar integración. Cuando se le solicite, elija realizar un seguimiento del tipo de instalación de Docker Hub .
Luego instale nuevamente el mismo sensor de versión, pero esta vez seleccione Instalación local .

Integración de la versión Home Assistant
Seguimiento de actualizaciones de la imagen de Docker

Una vez instalado, puede verificar las entidades creadas por esta integración. 2 son creados por la versión de Docker Hub: un sensor que muestra la última versión en Docker Hub y un binario_sensor que indica si hay una actualización disponible. Y otro muestra la versión que tenemos instalada actualmente (Instalación local).

Panel de integración de la versión Home Assistant
Estamos completamente actualizados 🙂

Agregar al panel

Si lo desea, puede agregarlos a su Panel de control.

Haga clic en los 3 puntos apilados verticalmente en la parte superior derecha de su Panel de control. Luego haga clic en Editar Dasbhoard y Agregar tarjeta . Elija por tipo de tarjeta y elija Entidades . Finalmente agregue las entidades Docker Hub y Docker Hub Update Available y, opcionalmente, elija un título para la tarjeta.

Sensor de versión en el panel de Home Assistant
Sensor de versión en el tablero

Cuando haya una actualización disponible, se le informará a través del Panel.

El sensor en el tablero muestra actualización disponible
Hay disponible una actualización

Notificación de actualización a través de Docker-notify

¿Quiere recibir una notificación cuando alguno de nuestros contenedores tenga una actualización disponible?

Docker notify es un servicio web gratuito que le permite suscribirse a notificaciones de actualización de imágenes de Docker. Ingrese su dirección de correo electrónico y configure para qué imágenes de Docker desea recibir notificaciones de actualización.

Actualizaciones automáticas

Combinar con script de respaldo

Si prefiere tener actualizaciones automáticas, puede agregar los comandos para actualizar el contenedor a nuestro script de respaldo . De esa manera, siempre tendrás una copia de seguridad lista, en caso de que la actualización rompa tu configuración.

Edite /opt/homeassistant/backup.shy edite el script al final o reemplácelo con el siguiente script:

#!/bin/bash
readonly SOURCE_DIR="/opt/homeassistant/config"
readonly BACKUP_DIR="/mnt/backup/homeassistant"
readonly BACKUP_PATH="${BACKUP_DIR}/$(date '+%F')"
readonly LATEST_LINK="${BACKUP_DIR}/latest"

mkdir -p "${BACKUP_DIR}"

docker stop homeassistant

rsync -a --delete \
  "${SOURCE_DIR}/" \
  --link-dest "${LATEST_LINK}" \
  "${BACKUP_PATH}"

rm -rf "${LATEST_LINK}"
ln -s "${BACKUP_PATH}" "${LATEST_LINK}"

#docker start homeassistant
docker-compose pull homeassistant
docker-compose up -d

Intento

Alternativamente, si no le gusta ir desde cero, puede mantener separados los scripts de copia de seguridad y actualización. A través de nuestro trabajo cron anterior, la copia de seguridad se ejecutará todos los sábados. Agregue un trabajo cron para ejecutar el script de actualización justo antes de nuestra red de seguridad.

# sudo nano /opt/homeassistant/upgrade.sh

#!/bin/bash
docker-compose pull homeassistant
docker-compose up -d

# sudo chmod u+x /opt/homeassistant/upgrade.sh

Intento

# sudo crontab -e
30 23 * * 6 /opt/homeassistant/backup.sh > /dev/null
45 23 * * 6 /opt/homeassistant/upgrade.sh > /dev/null
55 23 * * 6 docker start homeassistant > /dev/null

Intento

Torre de vigilancia

Una solución popular para las actualizaciones automáticas de contenedores Docker es utilizar Watchtower .

Watchtower también se ejecuta como un contenedor Docker. Realizará un seguimiento de todos sus contenedores y extraerá automáticamente la imagen más reciente de su contenedor y lo reiniciará suavemente con la misma configuración.

Tenga en cuenta que esto significa que un contenedor se actualizará tan pronto como aparezca una nueva imagen. Esto significa que podrá ejecutar una configuración permanente, pero cualquier error en una actualización afectará inmediatamente su entorno.

Para configurar Watchtower, agrega su configuración a su docker-compose.yamly ejecuta docker-compose up -d.

version: "3"
services:
  [...]
  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

YAML

Logotipo de la atalaya
Torre de vigilancia

¿No desea actualizar automáticamente ciertos contenedores sino recibir notificaciones sobre las actualizaciones disponibles? Agregue la etiqueta com.centurylinklabs.watchtower.monitor-only=truea esos contenedores.
Por ejemplo:

services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    labels:
      - "com.centurylinklabs.watchtower.monitor-only=true"
    [...]

YAML

Asegúrate de configurar notificaciones si lo haces; de lo contrario, te perderás las actualizaciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *