環境変数
環境変数を使うと、利用可能な任意の設定オプションを上書きできます。
対話型の環境変数ジェネレーター (Docker 用) を使用できます:
アプリ (Ansible、Terraform など) 向けのアプリケーション環境
Semaphore は、アプリケーションプロセス (Ansible、Terraform/OpenTofu、Python、PowerShell など) に環境変数を渡すことができます。関連するオプションが 2 つあります:
env_vars/SEMAPHORE_ENV_VARS: アプリプロセスに設定される静的なキーと値のペア。forwarded_env_vars/SEMAPHORE_FORWARDED_ENV_VARS: サーバーが自身のプロセス環境から転送する変数名のリスト。
設定ファイルの例:
{
"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"
]
}
環境変数による同等の設定:
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"]'
注意:
- 転送は明示的です。
forwarded_env_varsに列挙された変数のみがアプリプロセスに引き継がれます。 - シークレットは安全な方法 (例えば Docker/Kubernetes のシークレット) で提供し、その上で
forwarded_env_varsを使って転送してください。
ランナーのエグゼキューター設定
ランナーのデプロイでは、個別のキーの代わりに、エグゼキューターブロック全体を単一の JSON 環境変数として設定できます:
export SEMAPHORE_RUNNER_EXECUTOR='{"type":"docker","docker":{"image":"semaphoreui/job:latest"}}'
これは、設定ファイルで runner.executor.type およびネストされた runner.executor.docker.* フィールドを設定するのと同等です。ランナーのエグゼキューター設定の全一覧は設定オプションを参照してください。
変数グループでのシークレット環境変数
グローバルな環境変数に加えて、変数グループでプロジェクトごとのシークレットを定義できます。シークレットキーは UI とログでマスクされます。使用方法と、TF_VAR_* 変数による Terraform 連携については User Guide → Variable Groups を参照してください。