変更前に設定を検証
Git の設定に対してスキーマやポリシーの確認を実行します。検証に失敗した場合は、別のワークフローステップがインフラを変更する前に、失敗の終了コードでタスクを停止します。
ワークフローに検証ステップを追加ローカルのパッケージ、環境値、覚えておく必要があるコマンドがあると、便利な Python スクリプトでも引き継ぎや毎日の安定した実行が難しくなります。
Git の設定に対してスキーマやポリシーの確認を実行します。検証に失敗した場合は、別のワークフローステップがインフラを変更する前に、失敗の終了コードでタスクを停止します。
ワークフローに検証ステップを追加再利用できる環境入力で API 連携スクリプトを実行します。同期をスケジュールすれば、チームが手動で開始する必要がなくなります。
連携ジョブをスケジュールPython ライブラリを使って、Terraform や Ansible ジョブの後にエンドポイントとアプリケーションの準備状況を確認します。結果は操作全体とともに保持します。
デプロイと検証を接続テンプレートはリポジトリ内のスクリプトを参照するため、コードを 1 台のノート PC に置くのではなく、Git でレビューできます。
スクリプトを編集せずにタスク履歴で実行を見分けられるよう、開始時に短い実行メッセージを追加できます。
タスクは実行後もスクリプトの全出力と終了ステータスを保持し、再びスケジュールできる状態にします。
最初に Python の検証処理を実行します。検証が成功した場合だけ Terraform に進み、その後 Ansible で環境を設定します。各ステップはそれぞれの出力を保持します。
Python タスクは、実行環境の python3 を使います。そこにスクリプトの依存関係をインストールしてください。Docker でのインストールでは、/etc/semaphore/requirements.txt の requirements.txt に対応し、コンテナー起動時にインストールします。
変数グループは、スクリプトが os.environ から読み取れる環境変数を渡します。機密値はソースに埋め込まず、シークレットエントリーに保存してください。
Semaphore はタスクのステータスと出力を保持します。スクリプトは失敗時に 0 以外の終了コードを返すようにしてください。生成ファイルは、タスクログをファイルストアとして扱うのではなく、プロセス側で管理するストレージに保存します。
準備済みサーバーで実行するか、Pro のプロジェクトランナーで専用環境を使います。実行ごとに Python バージョン、パッケージ、外部 API へのアクセスが一貫するようにしてください。
Python タスクは、実行環境の python3 を使います。スクリプトがインポートする Python バージョンとパッケージを、そこに準備してください。タスクテンプレートがリポジトリと .py パスを選び、サーバーまたはランナーがランタイムとネットワークアクセスを提供します。
実行環境に必要なパッケージを準備します。Docker でのインストールでは、/etc/semaphore/requirements.txt にマウントした requirements.txt がコンテナー起動時にインストールされます。タスクごとに新しい仮想環境を作成したり、リポジトリの依存関係をインストールしたりするものではありません。
変数グループをタスクテンプレートに関連付けます。その値は環境変数になり、Python から os.environ を通じて読み取れます。機密値はソースではなくシークレットとして保存してください。実行時の入力は API リクエストやファイルパスに使う前に検証します。
オブジェクトストレージや共有の保存先など、プロセスで使う永続ストレージにスクリプトからレポートを書き込んでください。タスク出力には参照先を示します。Semaphore のタスク履歴はステータスとログを保持するもので、汎用のファイルリポジトリではありません。
はい。自分たちの検証スクリプトとライブラリで設定を確認し、失敗した場合は 0 以外の終了コードを返します。そのタスクテンプレートを、ワークフローの Terraform または Ansible の前に置きます。Semaphore は組み込みの検証機能を提供するのではなく、タスクを連携させます。
はい。スクリプト、環境入力、必要なパッケージを持つ Python タスクテンプレートを作成し、スケジュールを追加します。API 同期やレポート生成はコードが行います。Semaphore は各実行を記録し、設定したタスク結果のアラートを送信できます。
はい。ワークフローのプロビジョニングまたは設定ステップの後に、Python タスクテンプレートを追加します。アプリケーションの準備状況など、スクリプトで調べられる条件の検証に使えます。設定された成功経路と失敗経路のどちらへ進むかは、タスクの終了ステータスで決まります。
はい。Python とそのパッケージは Semaphore の実行環境で動きます。チームメンバーは UI または API で保存済みジョブを使い、出力を確認できます。必要なアクセスで操作を実行できるよう、プロジェクトロールとテンプレート入力を設定してください。