Skip to content

Variables de entorno YAML

Índice de contenido

    ¿Qué son las variables de entorno en YAML?

    Las variables de entorno en YAML son una forma de acceder y utilizar valores almacenados en el sistema operativo subyacente dentro de tus archivos YAML. Esto es útil cuando se trabaja con información confidencial, como contraseñas o tokens de acceso, que no deben almacenarse directamente en tus archivos de configuración.

    En el caso de Home Assistant, las variables de entorno pueden utilizarse para almacenar cualquier tipo de información, incluyendo contraseñas, claves API, direcciones IP y puertos.

    Ventajas de utilizar variables de entorno

    Hay varias ventajas de utilizar variables de entorno en Home Assistant. Estas ventajas incluyen:

    • Mejor seguridad: Las contraseñas y otros datos confidenciales no se almacenan directamente en los archivos de configuración. Esto hace que sea más difícil que un atacante acceda a esta información.
    • Facilidad de mantenimiento: Los valores que pueden cambiar con frecuencia, como claves API, se pueden actualizar fácilmente modificando la variable de entorno.
    • Separación de la configuración: Al utilizar variables de entorno, puedes mantener la configuración específica del entorno separada del código o configuración general.

    Ejemplos de uso

    En este ejemplo, vamos a almacenar los detalles de conexión para una base de datos MySQL en variables de entorno. Las variables de entorno que vamos a utilizar son las siguientes:

    • DB_HOST: La dirección IP o el nombre de dominio del servidor de la base de datos.
    • DB_PORT: El puerto de la base de datos.
    • DB_USERNAME: El nombre de usuario de la base de datos.
    • DB_PASSWORD: La contraseña de la base de datos.
    • DB_DATABASE: El nombre de la base de datos.

    Configuración de las variables de entorno

    Para configurar las variables de entorno en tu sistema, puedes seguir los siguientes pasos:

    1. En sistemas basados en Linux y macOS, puedes añadir las siguientes líneas a tu archivo ~/.bashrc o ~/.bash_profile:
    export DB_HOST="192.168.1.10"
    export DB_PORT="3306"
    export DB_USERNAME="my_username"
    export DB_PASSWORD="my_password"
    export DB_DATABASE="my_database"
    
    1. En Windows, puedes configurar las variables de entorno a través del Panel de control o utilizando PowerShell:
    Set-EnvironmentVariable -Name DB_HOST -Value "192.168.1.10"
    Set-EnvironmentVariable -Name DB_PORT -Value "3306"
    Set-EnvironmentVariable -Name DB_USERNAME -Value "my_username"
    Set-EnvironmentVariable -Name DB_PASSWORD -Value "my_password"
    Set-EnvironmentVariable -Name DB_DATABASE -Value "my_database"
    

    Acceso a las variables de entorno en YAML

    Una vez configuradas las variables de entorno, puedes acceder a ellas en tu archivo de configuración de Home Assistant utilizando la función !env_var_list:

    # configuration.yaml
    database:
      host: !env_var DB_HOST
      port: !env_var DB_PORT
      username: !env_var DB_USERNAME
      password: !env_var DB_PASSWORD
      database: !env_var DB_DATABASE
    

    En este ejemplo, estamos utilizando la función !env_var_list para acceder a las variables de entorno como una lista. Esto nos permite acceder a cada valor de la variable de entorno de forma individual.

    Resultado

    Una vez que reinicies Home Assistant, la configuración de la base de datos se leerá de las variables de entorno.

    Otros ejemplos

    Este es solo un ejemplo de cómo utilizar variables de entorno para almacenar más de un valor. Puedes utilizar variables de entorno para almacenar cualquier tipo de datos que necesites compartir entre diferentes sistemas o aplicaciones.

    Aquí hay algunos otros ejemplos:

    • Almacenar los detalles de conexión para un servidor FTP.
    • Almacenar las credenciales de inicio de sesión para una API.
    • Almacenar la configuración de un dispositivo IoT.

    Sintaxis de definición de variables de entorno en YAML

    La sintaxis para acceder a las variables de entorno en YAML varía según el lenguaje o el sistema que estés utilizando. En el caso de Home Assistant, puedes utilizar la función !env_var para acceder a las variables de entorno.

    Ejemplo:

    # configuration.yaml
    api_key: !env_var API_KEY
    

    En este ejemplo, API_KEY es el nombre de la variable de entorno que almacena la clave API.

    Ejemplos de uso de variables de entorno en YAML y Home Assistant

    Aquí hay un ejemplo de cómo utilizar las variables de entorno en Home Assistant para almacenar una contraseña de MQTT de forma segura:

    Configurar la variable de entorno en tu sistema

    Primero, debes configurar la variable de entorno en tu sistema operativo. En sistemas basados en Linux y macOS, puedes hacer esto añadiendo la siguiente línea a tu archivo ~/.bashrc o ~/.bash_profile:

    export MQTT_PASSWORD="tu_contraseña_mqtt"
    

    En Windows, puedes configurar la variable de entorno a través del Panel de control o utilizando PowerShell:

    [System.Environment]::SetEnvironmentVariable("MQTT_PASSWORD", "tu_contraseña_mqtt", "User")
    

    Acceder a la variable de entorno en Home Assistant

    Una vez configurada la variable de entorno, puedes acceder a ella en tu archivo de configuración de Home Assistant utilizando la función !env_var:

    # configuration.yaml
    mqtt:
      broker: mqtt.example.com
      username: mi_usuario
      password: !env_var MQTT_PASSWORD
    

    De esta manera, la contraseña de MQTT se mantiene segura y no se almacena directamente en el archivo de configuración.

    Beneficios de utilizar variables de entorno YAML en Home Assistant

    Utilizar variables de entorno en YAML y Home Assistant tiene varios beneficios, como:

    1. Mejorar la seguridad: Las contraseñas y otros datos confidenciales no se almacenan directamente en los archivos de configuración.
    2. Facilitar el mantenimiento: Los valores que pueden cambiar con frecuencia, como claves API, se pueden actualizar fácilmente modificando la variable de entorno.
    3. Separar la configuración del código: Al utilizar variables de entorno, puedes mantener la configuración específica del entorno separada del código o configuración general.

    Al adoptar el uso de variables de entorno en YAML y Home Assistant, puedes mantener tus configuraciones más organizadas, seguras y fáciles de mantener.

    Índice del capítulo 4 | Capítulo anterior | Siguiente capítulo

    Sígueme a YouTube

    Sígueme en YouTube - variables de entorno YAML
    Ajustes