Table des matières


Fonctionnalités

Écrire des journaux d’activité et de tâches dans un fichier (PRO)

Semaphore Pro prend désormais en charge l’écriture des journaux d’activité et de tâches dans un fichier. Pour activer cela, ajoutez la configuration suivante à votre config.json :

{
  "log": {
    "events": {
      "enabled": true,
      "logger": {
        "filename": "./events.log"
      }
    },
    "task": {
      "enabled": true,
      "logger": {
        "filename": "./tasks.log"
      }
    }
  }
}

Ou vous pouvez le faire en utilisant les variables d’environnement suivantes :

export SEMAPHORE_EVENT_LOG_ENABLED=True
export SEMAPHORE_EVENT_LOG_PATH=./tasks.log
export SEMAPHORE_TASK_LOG_ENABLED=True
export SEMAPHORE_TASK_LOG_PATH=./tasks.log

Chaque ligne dans le fichier suit ce format :

2024-01-03 12:00:34 user=234234 object=template action=delete ...

La journalisation des fichiers prend également en charge la rotation. Plus de détails sont disponibles dans la documentation.

Page des jetons API

Voir les journaux de tâches bruts

Vous pouvez maintenant ouvrir le journal brut d’une tâche en cliquant sur le bouton JOURNAL BRUT dans le coin inférieur droit de la fenêtre des journaux de tâches.

Effacer le cache des projets et des exécuteurs

Semaphore vous donne désormais plus de contrôle sur la gestion du cache.

Auparavant, le cache inutilisé était automatiquement effacé lorsque vous supprimiez des modèles ou des projets. Cependant, dans certains cas, un cache résiduel pouvait rester et être stocké indéfiniment.

Avec la nouvelle fonctionnalité Effacer le cache, vous pouvez nettoyer manuellement :

Cela aide à libérer de l’espace disque, à améliorer les performances et à garder votre environnement propre.

Remplacer la branche dans les modèles et les tâches

Vous pouvez maintenant remplacer la branche par défaut du dépôt source dans les paramètres du modèle.

Alternativement, activez l’option Demander la branche lors de l’exécution pour choisir la branche chaque fois que vous exécutez une tâche.

Nouvelle variable d’environnement pour la configuration du fournisseur OIDC

Nous avons introduit une nouvelle variable d’environnement : SEMAPHORE_OIDC_PROVIDERS pour configurer les fournisseurs OpenID Connect (OIDC).

Ceci est particulièrement utile lors de l’exécution de Semaphore à l’intérieur d’un conteneur Docker.

La variable doit contenir un JSON valide dans le format suivant :

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // champs supplémentaires...
  }
}'

Nouvelle structure de répertoire temporaire

Nous avons amélioré la structure des répertoires temporaires en introduisant des répertoires par projet. Maintenant, chaque projet a son propre dossier dédié sous le répertoire tmp_path.

Ce changement facilite la gestion et le nettoyage du cache lorsqu’un projet est supprimé.

De plus, le répertoire d’inventaire pour les modèles suit désormais un format de nommage clair, tel que : tmp_path/project_0/repository_1_template_2_inventory_3 Cette structure aide à éviter de cloner le dépôt d’inventaire à chaque exécution de tâche, améliorant ainsi les performances et réduisant la redondance.

Possibilité d’ajouter manuellement des utilisateurs externes (LDAP et OIDC)

Vous pouvez maintenant ajouter des utilisateurs LDAP et OIDC à Semaphore avant qu’ils ne se connectent pour la première fois.

Cela vous permet de configurer leurs autorisations et de les assigner à des projets à l’avance.

Vous avez besoin de droits d’administrateur pour ajouter un utilisateur via l’interface web (case à cocher Externe), ou vous pouvez utiliser la CLI avec le drapeau --external :

semaphore user add \
  --external \
  --login john \
  --name John \
  --email [email protected] \
  --password=changeme

Valeurs par défaut pour les variables d’enquête

Vous pouvez maintenant définir des valeurs par défaut pour les variables d’enquête, facilitant ainsi le pré-remplissage des entrées courantes lors des exécutions de tâches.

Support TLS pour les connexions au serveur SMTP

Semaphore prend désormais en charge les connexions sécurisées TLS lors de l’envoi d’e-mails via un serveur SMTP. Exemple de configuration :

{
  "email_alert": true,
  "email_sender": "[email protected]",
  "email_host": "smtp.example.com",
  "email_username": "user123",
  "email_password": "changeme",
  "email_tls": true,
  "email_port": "587",
  "email_tls_min_version": "1.1" // optionnel (par défaut 1.2)
}

Niveaux de verbosité configurables pour les playbooks Ansible

Vous pouvez maintenant sélectionner le niveau de verbosité souhaité lors de l’exécution des tâches de playbook Ansible, ce qui aide au débogage et à la résolution des problèmes.

Chroot support et exécution de tâches en tant qu’utilisateur différent

Semaphore peut désormais exécuter des tâches dans un environnement chroot et sous un utilisateur spécifié, améliorant ainsi la sécurité et l’isolation. Exemple de configuration :

{
  "process": {
    "chroot": "/opt/semaphore/chroot",
    "user": "semrun"
  }
}

Exemple de variables d’environnement :

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Support de l’authentification des webhooks Bitbucket

Les intégrations peuvent désormais être configurées en utilisant l’authentification des webhooks Bitbucket.

Paramètres de fuseau horaire des horaires

Semaphore n’utilise plus le fuseau horaire du système. Au lieu de cela, vous pouvez maintenant définir explicitement un fuseau horaire pour les horaires en utilisant l’option de configuration suivante :

{
  "schedule": {
    "timezone": "Asia/Calcutta"
  }
}

Ou en utilisant la variable d’environnement suivante :

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Corrections de bogues