¿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:
- 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"
- 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:
- Mejorar la seguridad: Las contraseñas y otros datos confidenciales no se almacenan directamente en los archivos de configuración.
- Facilitar el mantenimiento: Los valores que pueden cambiar con frecuencia, como claves API, se pueden actualizar fácilmente modificando la variable de entorno.
- 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