Variabili d'ambiente
Tramite le variabili d'ambiente è possibile sovrascrivere qualsiasi opzione di configurazione disponibile.
È disponibile un generatore interattivo di variabili d'ambiente (per Docker):
Ambiente applicativo per le app (Ansible, Terraform, ecc.)
Semaphore può passare variabili d'ambiente ai processi delle applicazioni (Ansible, Terraform/OpenTofu, Python, PowerShell, ecc.). Esistono due opzioni correlate:
env_vars/SEMAPHORE_ENV_VARS: coppie chiave-valore statiche che verranno impostate per i processi delle app.forwarded_env_vars/SEMAPHORE_FORWARDED_ENV_VARS: un elenco di nomi di variabili che il server inoltrerà dal proprio ambiente di processo.
Esempio di file di configurazione:
{
"env_vars": {
"HTTP_PROXY": "http://proxy.internal:3128",
"ANSIBLE_STDOUT_CALLBACK": "yaml"
},
"forwarded_env_vars": [
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
"GOOGLE_APPLICATION_CREDENTIALS"
]
}
Equivalente con variabili d'ambiente:
export SEMAPHORE_ENV_VARS='{"HTTP_PROXY":"http://proxy.internal:3128","ANSIBLE_STDOUT_CALLBACK":"yaml"}'
export SEMAPHORE_FORWARDED_ENV_VARS='["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","GOOGLE_APPLICATION_CREDENTIALS"]'
Note:
- L'inoltro è esplicito: solo le variabili elencate in
forwarded_env_varsvengono ereditate dai processi delle app. - I segreti dovrebbero essere forniti in modo sicuro (ad esempio tramite i secret di Docker/Kubernetes) e poi inoltrati con
forwarded_env_vars.
Configurazione dell'executor del runner
Nelle installazioni con runner, l'intero blocco executor può essere impostato con una singola variabile d'ambiente JSON invece che con le singole chiavi:
export SEMAPHORE_RUNNER_EXECUTOR='{"type":"docker","docker":{"image":"semaphoreui/job:latest"}}'
Equivale a impostare runner.executor.type e i campi annidati runner.executor.docker.* nel file di configurazione. Consultare Opzioni di configurazione per tutte le impostazioni dell'executor del runner.
Variabili d'ambiente segrete nei Gruppi di variabili
Oltre alle variabili d'ambiente globali, è possibile definire segreti per progetto nei Gruppi di variabili. Le chiavi segrete vengono mascherate nell'interfaccia e nei log. Consultare User Guide → Variable Groups per l'uso e per l'integrazione con Terraform tramite le variabili TF_VAR_*.