目次


機能

アクティビティとタスクログをファイルに書き込む (PRO)

Semaphore Proは、アクティビティとタスクログをファイルに書き込むことをサポートしています。これを有効にするには、config.jsonに次の設定を追加します:

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

または、次の環境変数を使用してこれを行うことができます:

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

ファイル内の各行は次の形式に従います:

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

ファイルロギングはローテーションもサポートしています。 詳細はドキュメントで確認できます。

APIトークンページ

生のタスクログを表示

タスクログウィンドウの右下隅にある生ログボタンをクリックすることで、タスクの生ログを開くことができるようになりました。

プロジェクトとランナーのキャッシュをクリア

Semaphoreは、キャッシュ管理に対するより多くの制御を提供します。

以前は、未使用のキャッシュはテンプレートやプロジェクトを削除したときに自動的にクリアされていました。しかし、場合によっては、残りのキャッシュが残り、無期限に保存されることがありました。

新しいキャッシュクリア機能を使用すると、手動でクリーンアップできます:

これにより、ディスクスペースを解放し、パフォーマンスを向上させ、環境を整頓できます。

テンプレートとタスクでのブランチのオーバーライド

テンプレート設定でソースリポジトリのデフォルトブランチをオーバーライドできるようになりました。

または、実行時にブランチを選択するオプションを有効にして、タスクを実行するたびにブランチを選択できます。

OIDCプロバイダー設定用の新しい環境変数

OpenID Connect (OIDC) プロバイダーを設定するための新しい環境変数 SEMAPHORE_OIDC_PROVIDERS が導入されました。

これは、SemaphoreをDockerコンテナ内で実行する際に特に便利です。

変数には、次の形式の有効なJSONを含める必要があります:

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // 追加のフィールド...
  }
}'

新しい一時ディレクトリ構造

プロジェクトごとのディレクトリを導入することで、一時ディレクトリ構造を改善しました。これにより、各プロジェクトはtmp_pathディレクトリの下に専用のフォルダーを持つようになります。

この変更により、プロジェクトが削除されたときにキャッシュを管理しやすくなります。

さらに、テンプレートのインベントリディレクトリは、次のような明確な命名形式に従います: tmp_path/project_0/repository_1_template_2_inventory_3 この構造により、タスク実行ごとにインベントリリポジトリをクローンする必要がなくなり、パフォーマンスが向上し、冗長性が減少します。

外部 (LDAPおよびOIDC) ユーザーを手動で追加する機能

ユーザーが初めてログインする前に、SemaphoreにLDAPおよびOIDCユーザーを追加できるようになりました。

これにより、事前に権限を設定し、プロジェクトに割り当てることができます。

Webインターフェースを通じてユーザーを追加するには管理者権限が必要です(外部チェックボックス)、またはCLIを使用して--externalフラグを使用することもできます:

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

サーベイ変数のデフォルト値

サーベイ変数のデフォルト値を設定できるようになり、タスク実行中に一般的な入力を事前に入力しやすくなりました。

SMTPサーバー接続のTLSサポート

Semaphoreは、SMTPサーバーを介してメールを送信する際に安全なTLS接続をサポートするようになりました。設定例:

{
  "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" // オプション (デフォルト1.2)
}

Ansibleプレイブックの冗長性レベルの設定

Ansibleプレイブックタスクを実行する際に、希望する冗長性レベルを選択できるようになり、デバッグやトラブルシューティングに役立ちます。

Chrootサポートと異なるユーザーとしてのタスク実行

Semaphoreは、chroot環境内でタスクを実行し、指定されたユーザーの下で実行できるようになり、セキュリティと分離が向上しました。設定例:

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

環境変数の例:

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Bitbucket Webhook認証サポート

統合は、Bitbucket webhook認証を使用して構成できるようになりました。

スケジュールのタイムゾーン設定

Semaphoreはもはやシステムのタイムゾーンを使用しません。代わりに、次の設定オプションを使用してスケジュールのために明示的にタイムゾーンを設定できるようになりました:

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

または、次の環境変数を使用して設定できます:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

バグ修正