Punto systemctl para usar variables de un archivo

Punto systemctl para usar variables de un archivo

Estoy usando systemctlpara iniciar y mantener viva mi aplicación. A continuación se muestra mi .servicearchivo. Observe la Environment='METEOR_SETTINGS={"privateKey": "ohnoyouseemyprivatekey!"}'. Aquí es donde almacenaré las claves privadas y deseo que no sean visibles en esta ubicación.

Mi pregunta es, ¿cómo exactamente le pido a systemctl que lo lea desde un archivo en una ubicación específica en

[Service]
ExecStart=/usr/bin/node /home/wow-doge/experimental/wow_doge_builds/bundle/main.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=logdoge
#User=root
#Group=root
Environment=NODE_ENV=production
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1
Environment=MONGO_URL=mongodb://127.0.0.1:27017/wow-doge
Environment=ROOT_URL=https://localhost
Environment='METEOR_SETTINGS={"privateKey": "ohnoyouseemyprivatekey!"}'

[Install]
WantedBy=multi-user.target

Respuesta1

Tomado dehttps://coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html#environmentfile-directive

EnvironmentFile similar a la directiva Environment pero lee las variables de entorno de un archivo de texto. El archivo de texto debe contener asignaciones de variables separadas por nuevas líneas.

Ejemplo:

[Service]
EnvironmentFile=/etc/envfile

Contenido de /etc/envfile:

NODE_ENV=production
PORT=3000
HTTP_FORWARDED_COUNT=1
MONGO_URL=mongodb://127.0.0.1:27017/wow-doge
ROOT_URL=https://localhost
METEOR_SETTINGS={"privateKey": "ohnoyouseemyprivatekey!"}

información relacionada