定期ジョブを手作業の予定表から外す
Ansible Playbook、インフラコード、スクリプトをスケジュールします。パッチ適用、証明書更新、バックアップを共通のスケジュールにまとめ、各実行の結果を保持できます。
cron の設定はあります。定常作業は今も実行されていますか?
パッチ適用の時間枠や証明書更新は忘れがちです。認証情報の変更や到達不能なホストによって、以前は動いていたジョブが失敗することもあります。タイマーだけでは、何が実行され、何に対応が必要かはチームに伝わりません。
スケジュールと結果をまとめて保持. 保存済みタスクテンプレートをスケジュールし、次回の実行を確認して、履歴から個々の実行を開けます。実行時刻は、それが開始する作業と並べて確認できます。
ジョブをスケジュールし、すべての実行を追跡
タスクテンプレートを選択し、定期的な実行間隔または cron 式を設定して、保存前に次回の実行を確認します。
スケジュールされた作業を確認し、時刻を変更したり、再利用可能なテンプレートを削除せずにジョブを無効にしたりできます。
個々の cron ホストから出力を集めることなく、各回の実行、開始時刻、結果を確認できます。
タスクログと実行の詳細を開き、失敗した回を調査します。
定期作業をチームの日常業務に
定常的な自動化を予測可能に
テスト済みのジョブをスケジュール
スケジュールは既存のタスクテンプレートに実行時刻だけを追加します。リポジトリ、Playbook またはスクリプト、対象設定、認証情報への参照、受け付ける入力はテンプレートに残ります。実際にはこの順序が重要です。まず手動で操作を実行して出力を確認し、その後で同じ定義に実行間隔を設定してください。後からテンプレートを編集すると今後のすべての実行が変わるため、テンプレートの変更も実行コードと同様にレビューします。
パッチ適用、証明書更新、バックアップ確認
こうしたジョブは、気づかないうちに動かなくなりがちです。テスト済みの Ansible パッチ適用 Playbook、TLS 更新スクリプト、バックアップ検証にスケジュールを設定すれば、実行間隔は 1 人の crontab ではなくプロジェクトの一部になります。Semaphore が操作を開始して結果を記録しますが、変更の検証と、動かなかった場合に 0 以外で終了する責任は Playbook やスクリプトに残ります。チームが確認するチャネルに失敗を送信し、証明書が失効する前に更新漏れを把握できるようにしてください。
cron 式、プリセット、サーバーのタイムゾーン
定義済みの実行間隔を選ぶか、標準の 5 フィールドの cron 式を記述します。エディターでは、式の横に設定済みのスケジュールタイムゾーンを表示し、そのタイムゾーンとブラウザーのローカル時刻の両方で次回の実行をプレビューします。式が意図と違うことを素早く見つけられます。スケジュールのタイムゾーンは管理者がサーバー単位で設定し、既定は UTC です。スケジュールごとの選択はできません。設定したタイムゾーンに夏時間がある場合、保守時間帯として頼る前に、時刻変更前後の実行予定を確認してください。
定期実行に必要な値を渡す
スケジュールは、ブランチ、Ansible のホスト制限、アンケート項目など、テンプレートが公開するプロンプトを通じて値を渡せます。定期実行を有効にする前に変更を許す値を決め、その組み合わせを手動でテストしてからスケジュールに保存してください。公開する入力は限定します。小さな対象範囲でレビューした操作の範囲を、スケジュールによって拡大できるようにしてはいけません。
失敗した回を見つけて調査
各回の実行は、個別のステータス、開始時刻、発生元のコンテキスト、出力を持つ通常のタスクになります。そのため調査は現在のテンプレートではなく、実際に起きた実行から始められます。遅延を調べる際は、予定開始時刻と実際の開始時刻を比較してください。実行予定を逃した場合の自動再試行や追いつき実行はありません。復旧は意識して判断する必要があります。元の出力を確認してから、新しい実行を開始します。その際にはホスト制限を狭めることもよくあります。
無人実行のアラートを選択
スケジュールはテンプレートに設定されたアラートを継承することも、別のプロジェクトアラートを使うこともできます。無人実行の失敗は定常業務を監視するチームへ通知し、手動実行では別のアラートを選択できます。
1 回限りの保守実行を計画
保守確認や一時環境のクリーンアップなど、選んだ時刻に 1 回だけ実行する操作には、単発スケジュールを使います。定常作業には繰り返しの cron スケジュールを使ってください。どちらも保存済みタスクテンプレートを開始し、確認できる通常の実行記録を残します。
ドキュメントと関連機能
FAQ
Semaphore で Ansible、Terraform、OpenTofu、スクリプトをスケジュールできますか?
はい。Semaphore のスケジュールは、アプリケーションが Ansible Playbook、Terraform や OpenTofu の構成、Bash、Python、PowerShell スクリプトのいずれを実行する場合も、既存のタスクテンプレートを開始します。まずテンプレートでリポジトリ、認証情報、対象、実行環境を設定します。その後、スケジュールに時刻と対応する入力を追加します。各回は通常のタスク記録を保持し、別の定期スクリプト実行モデルになるわけではありません。
cron 式や定義済みの実行間隔を使えますか?
はい。Semaphore は一般的なスケジュールのプリセットを提供し、より細かい指定には標準の 5 フィールドの cron 式を受け付けます。保存前に次回実行のプレビューで、式が意図した意味になっていることを確認してください。スケジュールは既存のタスクテンプレートを開始するもので、Git リポジトリの Playbook、Terraform 構成、スクリプトを置き換えません。繰り返し実行が同じインフラに触れる場合は、必要に応じてジョブを冪等にしてください。
サーバーへのパッチ適用と TLS 証明書更新をスケジュールできますか?
はい。その操作用にテスト済みのタスクテンプレートがあれば可能です。たとえば、週次の Ansible パッチ適用 Playbook や証明書更新スクリプトをスケジュールから起動できます。Semaphore は開始時刻を設定して実行記録を保持しますが、更新、結果の検証、正確な失敗報告は引き続き Playbook やスクリプトが行う必要があります。次のパッチ適用時間や証明書の失効前に対応すべき失敗には、通知を追加してください。
スケジュールはどのタイムゾーンを使いますか?
スケジュールは、Semaphore サーバーに設定されたタイムゾーンを使い、既定は UTC です。表示されるタイムゾーンと次回実行のプレビューは式の理解を助けるもので、スケジュールごとの独立したタイムゾーン設定ではありません。特に複数リージョンのエンジニアが関わる場合、実行間隔とともにサーバーのタイムゾーンを文書化してください。夏時間のあるタイムゾーンを使う場合は、保守時間帯として頼る前に時刻変更前後の実行予定を確認します。
スケジュールで別のブランチ、インベントリ、ホスト制限を指定できますか?
スケジュールは、テンプレートで有効にしたプロンプトを通じて、対応するタスクパラメーターを指定できます。まず変更を許す値を決め、それらの入力だけを有効にしてください。意図する組み合わせを手動でテストしてから、スケジュールの上書き値を保存します。再利用する実行設定は引き続きテンプレートが保持します。スケジュールによって操作の入力設計を迂回したり、対象範囲を気づかないうちに広げたりできるようにしてはいけません。
スケジュール操作に実行間隔より長い時間がかかると、どうなりますか?
定期実行は、通常のタスク実行モデルと、その同時実行および能力の設定を使います。頻繁なタイマーが、同じ対象に対する重複した変更を安全にするわけではありません。想定タスク時間と実行間隔を比較し、自動化自体にロックや冪等な動作を検討してください。負荷の高い操作や破壊的な操作を短い間隔で実行する前に、その構成で待機と重複の動作をテストします。
失敗した定期実行はどこで見つけられますか?
プロジェクトのタスク履歴を開き、調査する回の実行を見つけます。再実行を判断する前に、ステータス、実行時刻、発生元のコンテキスト、ツール出力を確認してください。遅延を調べる際は、予定開始時刻と実際の開始時刻を比較します。通知は重要な結果を設定したチャネルへ届けますが、詳細な実行記録はタスクに残ります。
スケジュールには自動再試行や未実行分の補完が含まれますか?
インストール済みリリースで文書化されていない再試行、追いつき実行、営業日カレンダーの動作を前提にしないでください。スケジュールは操作の開始時刻を定義しますが、停止後の復旧は別途設計しテストする要件です。実行できなかったバックアップや保守確認を遅れて実行するか、スキップするか、エンジニアの判断を求めるかを決めてください。その選択は、操作の内容と対象環境への影響によって異なります。
ワークフローをスケジュール実行できますか?
現在のスケジュールフォームで選ぶのは、ワークフローではなくタスクテンプレートです。タイマーでワークフロー全体を開始するには、外部スケジューラーから Pro のワークフロー API を呼び出すか、Semaphore でスケジュールしたスクリプトのタスクテンプレートから呼び出します。ワークフローは設定済みの依存関係、承認、成功時と失敗時の経路に従い、進行状況は別のワークフロー実行として記録されます。ワークフローとワークフロー API ドキュメントをご覧ください。
