Aller au contenu principal

Fichier de configuration

Création du fichier de configuration

Semaphore utilise un fichier config.json pour sa configuration principale. Vous pouvez générer ce fichier de manière interactive à l'aide des outils intégrés ou via un configurateur web.

Générer via la CLI

Utilisez les commandes suivantes pour générer le fichier de configuration de manière interactive :

  • Pour le serveur Semaphore :

    semaphore setup
  • Pour le runner Semaphore :

    semaphore runner setup
    astuce

    Pour plus de détails sur la configuration du runner, consultez la section Runners.

Générer sur le site web

Vous pouvez également utiliser le configurateur interactif en ligne :

Exemple de fichier de configuration

Semaphore utilise un fichier de configuration config.json avec le contenu suivant :

{
"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"
}
}

Utilisation du fichier de configuration

  • Pour le serveur Semaphore :
semaphore server --config ./config.json
  • Pour le runner Semaphore :
semaphore runner start --config ./config.json

Répertoire des secrets

Semaphore stocke les fichiers de secrets à courte durée de vie (par exemple les tokens HashiCorp Vault ou OpenBao lus depuis le disque) dans un répertoire configurable.

OptionVariable d'environnementDescription
dirs.secretsSEMAPHORE_SECRETS_PATHRépertoire des fichiers de secrets. Par défaut : /tmp/semaphore.
secrets_path (hérité)SEMAPHORE_SECRETS_PATHParamètre de premier niveau conservé pour la rétrocompatibilité. Utilisé uniquement lorsque dirs.secrets n'est pas défini ou conserve encore le chemin par défaut.

Priorité : une valeur de dirs.secrets autre que la valeur par défaut l'emporte sur l'ancien secrets_path. Lorsque vous définissez SEMAPHORE_SECRETS_PATH, Semaphore l'applique aux deux champs.

Exemple avec la structure actuelle :

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

Les installations héritées peuvent encore utiliser :

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

Les fichiers de token référencés par les stockages de secrets externes doivent se trouver dans ce répertoire.

Opérations Git

Semaphore clone et met à jour les dépôts des tâches avant chaque exécution. Deux options contrôlent ce comportement :

OptionVariable d'environnementDescription
git_clientSEMAPHORE_GIT_CLIENTImplémentation du client Git : cmd_git (par défaut, utilise le binaire git du système) ou go_git (client en pur Go).
git_attemptsSEMAPHORE_GIT_ATTEMPTSNombre de tentatives des opérations de clone et de pull avant que la tâche n'échoue. Par défaut : 4. Définissez 1 pour une seule tentative sans nouvel essai.

Lorsqu'un clone ou un pull échoue et qu'il reste des tentatives, Semaphore attend avec un délai exponentiel (à partir de 1 seconde, doublé à chaque tentative, plafonné à 60 secondes) et journalise un message tel que Git pull failed (...), retrying in 2s. Les nouvelles tentatives ne s'appliquent qu'aux opérations réseau ; un checkout échoué ou une erreur d'authentification fait toujours échouer la tâche une fois toutes les tentatives épuisées.

Si votre serveur Git est indisponible par intermittence, augmentez git_attempts. Si les échecs sont immédiats et persistants (identifiants incorrects, dépôt manquant), corrigez le problème sous-jacent — les nouvelles tentatives n'y changeront rien.