すべての自動化ジョブを再利用可能に

Playbook とスクリプトを、適切な対象、認証情報、入力を関連付けた名前付きジョブにします。チームは、実行と結果確認の明確な手段を得られます。

タスクテンプレート

名前 実行 ステータス
保存済みジョブを操作できる例です。このプレビューの実行とツール別ログはシミュレーションです。

Playbook は Git に。実行設定はまだ誰かの頭の中

タスクテンプレートに設定を一度保存します。ホスト、認証情報、コマンドラインオプションの説明を繰り返すのではなく、すぐ実行できるジョブをチームに提供できます。

1 つの共有タスクテンプレート

共有と委任

同僚が設定を編集せずにジョブを実行できます。

クリックで実行

手動設定やコマンドの記憶を省略できます。

定常作業をスケジュール

パッチ適用や証明書更新を、手作業の予定表から外しましょう。

すべての実行を追跡

誰が、何を、いつ実行し、どのように終了したかを確認できます。

UI は分かりやすく、エンジニアでなくても何が起きているか理解できました。

Toon Van DoorenCTO · Savvii Hosting
Savvii の事例を読む

タスクテンプレートの仕組み

実行前に入力を収集

アンケート変数は、環境、リリースバージョン、変更参照など、変化する値を収集します。それ以外の設定はテンプレートに保存し、次回の実行に備えます。

アンケート変数とプロンプト
環境が Staging、リリースバージョンが v2.8.1、保守参照が CHG-1042 に設定された Deploy release 用の Semaphore 新規タスクフォーム
毎週のサーバーパッチ適用、TLS 証明書更新、データベースバックアップ、インベントリ同期、コンプライアンス確認、ログアーカイブ削除を表示した Semaphore スケジュール一覧
Semaphore のプラットフォーム保守用の週次 cron 設定と次回実行プレビュー

定期タスクをスケジュール

個人の crontab は管理が行き届かなくなりがちです。保存済みタスクテンプレートを使って、パッチ適用、証明書更新、定期確認をスケジュールしましょう。実行のたびに個別のタスクが作成され、チームはそのステータスと出力を確認できます。

Explore Schedules

再利用可能な 1 つのジョブから始める

Semaphore をインストールして、リポジトリにある既存の自動化を接続し、チーム共通の実行場所を用意しましょう。

既存の自動化を使用

Playbook、スクリプト、インフラコードはそのままに、共通の実行手段を追加します。

Git リポジトリを接続

GitHub、GitLab、Bitbucket、その他の Git ホストを HTTPS または SSH で使えます。ブランチとファイルを選択し、プライベートリポジトリには認証情報を追加します。

保存済みジョブを活用

ワークフローでタスクを接続

タスクテンプレート間に依存関係、承認、失敗時の経路を追加します。

ワークフロー

実行と編集を分離

チームメンバーが設定を変更せずにテンプレートを実行できます。

Access Control

タスク履歴を確認

誰が実行し、いつ開始し、どのように終了したかを確認します。

Task history

タスクの実行場所を選択

ランナータグでタスクを振り分け

Pro でランナータグを使い、プライベートネットワークとジョブに必要なツールへのアクセスを持つ、一致するプロジェクトランナーへタスクを送ります。

プロジェクトランナー

テンプレートごとにエグゼキューターのイメージを設定

Pro の Docker ランナーや Enterprise の Kubernetes ランナーで、既定のジョブイメージを上書きできます。このテンプレートに必要なツールチェーンを固定してください。ローカル実行では、この項目は無視されます。

エグゼキューターのイメージ設定
DockerKubernetes

Pro でプロジェクトランナーを使用

タグでジョブを振り分け、テンプレートごとに Docker イメージを選びます。Kubernetes での実行は Enterprise で利用できます。

チームが自動化を実行する方法を定義

Web UI と実行の委任

実行ボタンと必要な入力を備えた、名前付きのジョブをエンジニアに提供します。実行できる人と定義を編集できる人は、プロジェクトのロールと権限で決まります。各実行には個別のステータスと出力が残ります。

Git リポジトリとブランチ

GitHub、GitLab、Bitbucket、その他の互換 Git ホストの Playbook、構成、スクリプトを使います。HTTPS または SSH で接続し、ブランチと作業ディレクトリを設定して、コードレビューは既存の Git ワークフローで続けます。

Ansible インベントリとホスト制限

ホストとグループを定義したインベントリを関連付けます。認証情報は Key Store に保存し、実行時にエンジニアが対象の一部を選ぶ必要がある場合は、Ansible の limit プロンプトを有効にしてください。

共有の既定値と実行時の入力

変数グループは、実行間で再利用する設定を保持します。組み込みプロンプトは、ブランチ、タグ、ホスト制限などの選択肢を公開します。アンケート変数は独自の値を収集し、ジョブのほかの部分を作り直さずに、変更が必要な値をエンジニアが渡せるようにします。

ビルドとデプロイのテンプレート

Build テンプレートでバージョンを割り当て、Deploy テンプレートで成功したビルドを選びます。成果物の作成、保存、取得は自動化が担い、Semaphore は 2 つのジョブ間のバージョン付きの引き渡しを保持します。

適切な実行環境

対象システムへアクセスできる Semaphore サーバーまたは設定済みプロジェクトランナーで実行します。そこに必要な Ansible コレクション、Python パッケージ、その他の依存関係を準備してください。Docker と Kubernetes のエグゼキューターは、イメージを通じてジョブのツールチェーンを提供できます。

コードの変更時に実行

自動実行を有効にすると、設定したポーリング間隔でリポジトリの新しいコミットを確認し、変更が見つかるとテンプレートを開始します。コードのレビューと承認は、引き続き Git のワークフローで行ってください。

同時実行と通知を制御

テンプレートでタスクの同時実行を許可するか選びます。チーム向けの結果通知を設定し、失敗時だけ対応が必要な定期ジョブでは成功通知を抑制します。

ドキュメントと関連機能

FAQ

既存の Ansible Playbook を書き換えずに実行できますか?

はい。Git リポジトリを接続し、Ansible Playbook を選び、インベントリと認証情報をタスクテンプレートに関連付けます。以降の実行はその設定を再利用します。既存のロールとコレクションは維持し、サーバーまたはランナーに必要な Ansible の依存関係を準備してください。Ansible 自動化を見る。

Terraform、OpenTofu、スクリプトでも使えますか?

タスクテンプレートは、Ansible、Terraform、OpenTofu、Terragrunt、Bash、PowerShell、Python に対応しています。各テンプレートは、そのツール用の項目と実行モデルを使います。コードは Git に保存したまま、チーム共通の開始場所を提供できます。必要なツール、パッケージ、ネットワークアクセスは、実行環境に引き続き準備する必要があります。

同僚は設定を変更せずにジョブを実行できますか?

はい。プロジェクトのロールと権限で、プロジェクト内の自動化の実行と定義の編集を分離できます。同僚は公開された入力で準備済みジョブを開始でき、リポジトリ、インベントリ、認証情報への参照はテンプレートに設定されたままです。アクセス制御の仕組みを見る。

実行前に環境やリリースバージョンを入力してもらえますか?

はい。アンケート変数で、環境、リリースバージョン、保守参照などの独自の値を収集できます。組み込みプロンプトは、Ansible のホスト制限やブランチ上書きなど、ツールのオプションを公開します。エンジニアは保存済みテンプレートを編集せず、その実行で許可された入力を記入します。アンケートフォームを見る。

パッチ適用、バックアップ、証明書更新の Playbook をスケジュールできますか?

はい。動作するタスクテンプレートを用意し、cron 式または定義済み間隔でスケジュールを追加します。パッチ適用、バックアップ、証明書更新は Playbook またはスクリプトが行い、Semaphore が設定時刻に開始します。各実行には独自のステータスと出力があります。スケジュールを見る。

誰がジョブを実行し、成功したかをどこで確認できますか?

テンプレートのタスク履歴を開き、個々の実行の開始者、開始時刻、ステータス、エラーメッセージを含む出力を確認できます。誰かが実行をクリックしたというメッセージだけに頼らず、失敗の調査では実行を開いてください。定期実行もタスクとして表示されます。実行履歴を見る。

API 呼び出しと Webhook から同じジョブを開始できますか?

はい。REST API はタスクテンプレートを開始でき、設定済みの Webhook 連携は受信イベントから起動できます。各呼び出し元サービスに複製せず、保存済みの実行設定を再利用します。対応する実行時の上書きには、適切なプロンプトを有効にしてください。API と Webhook を見る。

複数のジョブを承認や失敗時の経路で接続できますか?

はい。ワークフローは既存のタスクテンプレートを、成功時と失敗時の経路、承認、待機を含む、より大きな操作に接続します。各タスクは独自の実行設定と出力を保持します。複数ジョブの連携やジョブ間での人の判断が必要な手順に、ワークフローを使ってください。ワークフローを見る。

特定のランナーや Docker イメージでジョブを実行できますか?

Pro では、ランナータグでタスクを、管理対象システムの近くにある一致するプロジェクトランナーへ振り分けます。テンプレートは、Pro の Docker 実行または Enterprise の Kubernetes 実行で既定のジョブイメージを上書きできます。イメージの項目はローカル実行には適用されません。ランナーを見る。

AWX や AAP で実行している Ansible 自動化を再利用できますか?

Git に保存済みの Playbook とロールは維持できます。リポジトリ、インベントリ、認証情報、変数グループ、タスクテンプレートという実行コンテキストを Semaphore で再構築します。これは設定の移行であり、AWX の自動インポートではありません。チームにジョブを渡す前に、Ansible バージョン、コレクション、プロンプト、ランナーのアクセスを確認してください。Semaphore UI と AWX を比較。