Zum Hauptinhalt springen

Konfigurationsdatei

Konfigurationsdatei erstellen

Semaphore verwendet für seine Kernkonfiguration eine Datei config.json. Sie können diese Datei interaktiv mit den integrierten Werkzeugen oder über einen webbasierten Konfigurator erzeugen.

Per CLI erzeugen

Verwenden Sie die folgenden Befehle, um die Konfigurationsdatei interaktiv zu erzeugen:

  • Für den Semaphore-Server:

    semaphore setup
  • Für den Semaphore-Runner:

    semaphore runner setup
    tipp

    Weitere Details zur Runner-Konfiguration finden Sie im Abschnitt Runner.

Auf der Website erzeugen

Alternativ können Sie den webbasierten interaktiven Konfigurator verwenden:

Beispiel einer Konfigurationsdatei

Semaphore verwendet eine Konfigurationsdatei config.json mit folgendem Inhalt:

{
"mysql_test": {
"host": "127.0.0.1:3306",
"user": "root",
"pass": "***",
"name": "semaphore"
},

"dialect": "mysql",

"git_client": "go_git",
"git_attempts": 4,

"auth": {
"totp": {
"enabled": false,
"allow_recovery": true
}
},

"use_remote_runner": true,
"runner_registration_token": "73fs***",

"tmp_path": "/tmp/semaphore",
"cookie_hash": "96Nt***",
"cookie_encryption": "x0bs***",
"access_key_encryption": "j1ia***",

"max_tasks_per_template": 3,

"schedule": {
"timezone": "UTC"
},

"log": {
"events": {
"enabled": true,
"path": "./events.log"
}
},

"process": {
"chroot": "/opt/semaphore/sandbox"
}
}

Verwendung der Konfigurationsdatei

  • Für den Semaphore-Server:
semaphore server --config ./config.json
  • Für den Semaphore-Runner:
semaphore runner start --config ./config.json

Verzeichnis für Geheimnisse

Semaphore speichert kurzlebige Geheimnisdateien (zum Beispiel von der Festplatte gelesene HashiCorp-Vault- oder OpenBao-Tokens) in einem konfigurierbaren Verzeichnis.

OptionUmgebungsvariableBeschreibung
dirs.secretsSEMAPHORE_SECRETS_PATHVerzeichnis für Geheimnisdateien. Standard: /tmp/semaphore.
secrets_path (Legacy)SEMAPHORE_SECRETS_PATHEinstellung auf oberster Ebene, die aus Gründen der Abwärtskompatibilität beibehalten wird. Wird nur verwendet, wenn dirs.secrets nicht gesetzt ist oder noch auf dem Standardpfad steht.

Vorrang: Ein vom Standard abweichendes dirs.secrets hat Vorrang vor dem veralteten secrets_path. Wenn Sie SEMAPHORE_SECRETS_PATH setzen, wendet Semaphore den Wert auf beide Felder an.

Beispiel mit dem aktuellen Layout:

{
"dirs": {
"secrets": "/var/lib/semaphore/secrets"
}
}

Ältere Installationen verwenden möglicherweise noch:

{
"secrets_path": "/var/lib/semaphore/secrets"
}

Token-Dateien, auf die externe Secret-Storages verweisen, müssen sich innerhalb dieses Verzeichnisses befinden.

Git-Operationen

Semaphore klont und aktualisiert die Aufgaben-Repositories vor jedem Lauf. Zwei Optionen steuern dieses Verhalten:

OptionUmgebungsvariableBeschreibung
git_clientSEMAPHORE_GIT_CLIENTImplementierung des Git-Clients: cmd_git (Standard, verwendet die git-Binärdatei des Systems) oder go_git (reiner Go-Client).
git_attemptsSEMAPHORE_GIT_ATTEMPTSAnzahl der Versuche für Clone- und Pull-Operationen, bevor die Aufgabe fehlschlägt. Standard: 4. Setzen Sie den Wert auf 1, um nur einen Versuch ohne Wiederholungen durchzuführen.

Wenn ein Clone oder Pull fehlschlägt und noch Versuche übrig sind, wartet Semaphore mit exponentiellem Backoff (beginnend bei 1 Sekunde, mit jedem Versuch verdoppelt, maximal 60 Sekunden) und protokolliert eine Meldung wie Git pull failed (...), retrying in 2s. Wiederholungen gelten nur für Netzwerkoperationen; ein fehlgeschlagener Checkout oder ein Authentifizierungsfehler lässt die Aufgabe nach Ausschöpfung aller Versuche weiterhin fehlschlagen.

Wenn Ihr Git-Server zeitweise nicht erreichbar ist, erhöhen Sie git_attempts. Wenn die Fehler sofort auftreten und dauerhaft sind (falsche Zugangsdaten, fehlendes Repository), beheben Sie die eigentliche Ursache — Wiederholungen helfen dann nicht.