Como Utilizar Variables de Entorno en los Servicios de systemd

@Cristóbal Salazar Guerrero
10 ago. 2023
article_image

En el ámbito de la administración de sistemas Linux, Systemd se erige como una herramienta fundamental para gestionar servicios. En este artículo, les voy a explicar cómo es posible definir variables de entorno en los servicios de systemd para configurar tus programas.

Variables de Entorno

Los archivos de systemd se ubican en los siguientes directorios:

En lugar de /etc/systemd tambien pueden existir en /lib/systemd o en /run/systemd dependiendo de tu distribucion de linux.

En la sección [Service] del archivo (por ejemplo, mi-servicio.service), define las variables de entorno usando la directiva Environment=:

[Service]
Environment="FOO=BAR"
Environment="BAZ=QUX"

Otra manera efectiva de gestionar variables es a través de archivos env. Para realizar esto, primero pon la ruta a tu archivo en el servicio.

[Service]
EnvironmentFile=/ruta/a/mi-servicio.env

Luego en mi-servicio.env

FOO=BAR
BAZ=QUX

Asegúrate de reemplazar /ruta/a/mi-servicio.env con la ruta real del archivo de entorno.

Después de haber modificado el archivo de servicio, recarga systemd para aplicar los cambios:

sudo systemctl daemon-reload

Finalmente, inicia o reinicia el servicio para incorporar las variables de entorno:

sudo systemctl start mi-servicio

Dentro del servicio, las variables de entorno se pueden acceder como variables normales. Por ejemplo, en un script de inicio:

#!/bin/bash
echo "El valor de MI_VARIABLE es: $FOO"
echo "El valor de OTRA_VARIABLE es: $BAZ"

Esto va imprimir:

   El valor de MI_VARIABLE es: BAR
   El valor de OTRA_VARIABLE es: QUX

Conclusión

Las variables de entorno te ofrecen un mecanismo potente para ajustar configuraciones, mejorar la seguridad y mantener la coherencia en diversos entornos. También facilita mucho el CI/CD, ya que solo hay que construir la aplicación y en la fase de despliegue solo es necesario reiniciar el servicio.