OpenTofu の実行をチームのワークフローに組み込む

保存済みのワークスペースと入力を使い、Semaphore で OpenTofu 構成を実行します。plan 出力を共有し、変更を意識して適用して、すべての実行履歴を保持できます。

設定は Git にあります。実行コンテキストはどこにありますか?

設定を共有しても、チームメンバーが使うには適切なディレクトリ、ワークスペース、認証情報、tofu ランタイムが必要です。

設定をチーム全体で再利用可能に

  • テンプレートのアプリケーションに OpenTofu を選択
  • ワークスペースと再利用可能な環境入力を保存
  • プランと実行出力を各タスクとともに保持

インフラのライフサイクル全体で OpenTofu を使用

繰り返し作成できる環境を構築

モジュールディレクトリとワークスペースをテンプレートに保存します。対象環境に応じた入力で構成を再利用できます。

準備済みジョブを共有

適用前に変更を確認

Plan のみのタスクを実行し、提案されたリソースを確認します。Apply は、個別の実行記録を持つ別の操作として扱ってください。

準備済みジョブを共有

一時環境を削除

環境のクリーンアップ操作には、範囲を明確にした専用テンプレートを用意します。意図するワークスペースを選び、環境が不要になったときは Destroy を明示的に選択します。

クリーンアップジョブへのアクセスを制御

OpenTofu を設定し、Plan のみの実行を開始

インフラ変更を設定と確認処理へ接続

成功した OpenTofu の出力を Ansible の設定タスクに渡し、Python で生成されたサービスを検証します。ワークフローがジョブを調整し、構造化された出力を次のタスクの入力に割り当てます。

サービス環境のロールアウトワークフロー
環境をプロビジョニング
成功時出力 → 入力
ホストを設定
成功時出力 → 入力
準備状況を確認
失敗時
診断情報を収集

共有実行で使う、自分たちの OpenTofu ツールチェーン

独立したアプリケーションとして OpenTofu を使用

タスクテンプレートで OpenTofu を選び、実行環境に tofu バイナリ、プロバイダーへのアクセス、モジュールの認証情報を準備します。

環境入力をジョブとともに保存

構成ディレクトリとワークスペースを選択します。TF_VAR_ の入力は変数グループから渡します。環境ごとに異なる設定が必要な場合は、テンプレートまたはグループを分けます。

状態の保存先を選択

コードに設定済みのバックエンドを使うか、Pro で Semaphore の HTTP バックエンドを選択します。状態のロックと復旧は、選択したバックエンドに従います。

別途 Apply する前に plan を確認

Plan のみのタスクは、変更を適用せずに変更案を表示します。後からの Apply は新しい実行であり、先の plan 出力を自動昇格させるものではありません。

FAQ

既存の OpenTofu 構成を実行できますか?

はい。タスクテンプレートのアプリケーションに OpenTofu を選び、リポジトリと構成ディレクトリを指定します。ワークスペースと変数グループを設定し、実行するサーバーまたはランナーに tofu バイナリ、プロバイダー、モジュールへのアクセスを準備してください。

現在の OpenTofu のリモート状態バックエンドを使い続けられますか?

はい。OpenTofu はコードに設定済みのバックエンドをそのまま使えます。Semaphore の HTTP バックエンドは、状態のロック、バージョン、UI 管理を備えた Pro の追加オプションです。選んだバックエンドに合った状態の認証情報と復旧手順を維持してください。

OpenTofu のステージングと本番の実行はどう分けるべきですか?

意図するディレクトリ、ワークスペース、変数グループを持つ、分かりやすい名前のテンプレートを使います。ワークスペースを選ぶだけでは、環境入力や認証情報は切り替わりません。チームにジョブを公開する前や定期スケジュールを追加する前に、実行設定全体を確認してください。

OpenTofu タスクの実行前に、何をインストールする必要がありますか?

tofu バイナリと、構成で必要なプロバイダーおよびモジュールへのアクセスを準備します。実行環境には、対象のインフラ API と状態バックエンドへの接続も必要です。Pro では、プロジェクトランナーを使って専用環境に実行を配置できます。

OpenTofu plan をスケジュールできますか?

はい。OpenTofu の構成、ワークスペース、入力をタスクテンプレートに保存し、Plan のみの実行を選択してスケジュールを追加します。各 plan の出力で変更案を確認してください。Apply は別の操作であり、Plan のみのタスクは適用を行いません。

OpenTofu を Ansible や Python と組み合わせられますか?

はい。ワークフローで OpenTofu のプロビジョニングテンプレートを Ansible の設定と Python の検証ジョブに接続します。各タスクは独自のコードと実行設定を保持します。次のジョブが適切な時点で開始するよう、依存関係と結果の条件を設定してください。

設定を編集せずに入力を渡すにはどうすればよいですか?

テンプレートに関連付けた変数グループを使います。TF_VAR_ 名の値は、構成の入力変数になります。機密値はシークレットとして保存してください。環境ごとに異なる入力が必要な場合は、ワークスペース名だけに頼らず、テンプレートまたはグループを分けます。

チームメンバーはテンプレートを変更せずに OpenTofu を実行できますか?

はい。プロジェクトロールで、タスクの実行と保存済み設定の編集を分けます。意図するディレクトリ、ワークスペース、認証情報をテンプレートに準備してください。Enterprise のカスタムロールでは、対象をより限定した委任のために、選択したテンプレートへのアクセスを付与できます。