Cartoon gears and neon rolling marbles rolling through a track

ランナー グループを GitHub Actions にプロビジョニングする

Bekah Whittle
Bekah Whittle // Director, Field Services // GitHub

GitHub Actions の基礎を学んだら、個々のタスクの自動化だけでなく、開発者がよりセキュアかつ効率的に作業するために役立つ paved path の作成も開始できます。これを実行する方法の 1 つがランナー グループです。ランナー グループでは、特定のランナーにどのリポジトリとワークフローがアクセスできるかを指定できます。ランナー グループを使用して GitHub Actions の管理、標準化、およびスケーラビリティを向上させる方法を探るにあたり、Stack Overflow がランナー グループを使用して「set it and forget it (設定したら後はおまかせ)」する方法を説明します。


このガイドの学習内容

  • GitHub Actions でのランナーグループの機能

  • ランナーグループの利点

  • ランナーグループを使用して整備されたパスを開発者のために作成する方法


ランナーグループとは

Enterprise や Organization のオーナーは、ランナーグループを使用して、セルフホステッド ランナーより大規模な GitHub ホステッド ランナーへのアクセスを Organization レベルや Enterprise レベルで制御できます。ランナーグループはランナーのセットを集め、その周りにセキュリティ境界を作成して、それらのマシンのセットでジョブを実行できる Organization やリポジトリをユーザーが決定できるようにします。次に、ポリシーが Organization のどのリポジトリがどのランナーグループにアクセスできるかを制御します。

ランナーグループにアクセス権を付与すると、Organization のランナー設定にランナーグループが表示されます。任意で、リポジトリやワークフローのより詳細なアクセス ポリシーをランナーグループに追加で割り当てることもできます。新しく作成されたランナーは、特に指定がない場合は、自動的にデフォルト グループに割り当てられます。ランナーは 1 度に 1 つのグループにしか属せませんが、簡単に別のグループに移動させることができます

ランナーグループのアクセス権限の詳細度

GitHub Enterprise では、ランナーグループは Enterprise または Organization レベルで作成できます。どちらのレベルを選択するかによって、Organizationリポジトリワークフローに応じてアクセス権をさらに詳細に指定できます。追加で設定を行えば、ブランチ、タグ、SHA に基づく制限も可能になり、効率的かつガバナンス戦略に適合するインフラストラクチャを実現できます。

ランナーグループの利点

GitHub Actions のランナーグループは、ランナーを管理、整理するうえで次のような利点があります。

  • 整理と管理: ランナーグループは、リポジトリ、Organization、Enterprise でセルフホステッド ランナーGitHub ホステッド ランナーの両方を整理する手段として使用されます。これは、異なるプロジェクト要件やアクセス レベルに応じてランナーを管理し、細分化するのに役立ちます。

  • ワークフローのターゲティング: ワークフロー ファイルの特定のランナーグループを指定することによって、ワークフローが実行される場所をより適切に管理できます。アクセス制御: ランナーグループを使用して、アクセス制御を管理できます。どのリポジトリがランナーグループを使用できるかを指定することで、セキュリティや制御に追加のレイヤーを提供できます。

  • 並列処理と負荷分散: ランナーをグループ化すると、複数のマシンに負荷を分散できるため、プロジェクトの構築プロセスやテスト プロセスを高速化できる可能性があります。

  • 環境の分離: ワークフローに異なる環境が必要な場合、それらの環境を提供するランナーをグループ化すると、ワークフローのセットアップを簡素化できます。

Actions ランナー グループを使用すると「set it and forget it (設定したら後はおまかせ)」することができ、チームが他の優先度の高いタスクに集中できるようになります。 ランナー グループはランナーへのアクセスを管理する際の複雑さを大幅に緩和し、プロジェクトのニーズの変化に応じたリソースの柔軟な再配置を可能にします。ランナー グループがあれば、さまざまな Azure テナントのような特殊なネットワーク コンテキストで、ランナーがアクセスできるユーザー、リポジトリ、プロジェクトを定義できます。

Jason Schwanz
Jason Schwanz // Staff Site Reliability Engineer // Stack Overflow

ランナーグループを使用して整備されたパスを作成する

ランナーグループを使用すると、GitHub Actions の操作性や信頼性が高まり、開発者はよりスムーズに GitHub Actions を使用できるようになります。GitHub Actions のランナーグループは、さまざまな方法で、開発者に「整備されたパス」を提供できます。

  • 標準化: (言語別やプラットフォーム別など) 異なるタイプのワークフローに対して特定のランナーグループを設定することで、特定のタイプのワークフロー全てが同一の環境を使用するようにできます。その結果、ワークフローがマシンによって機能したり、しなかったりする問題が起こりにくくなります。

  • セキュリティ: ランナーグループを特定のリポジトリに制限して、セルフホステッド ランナーへの許可されていないアクセスを防止できます。これは、ランナーが機密性の高いリソースにアクセスできる場合、特に重要です。

  • 効率性: 特定のリソースを必要とするワークロードがある場合、必要なハードウェアやソフトウェアを含むランナーグループを作成すると、必要なリソースにワークフローがいつでもアクセスできるようにできます。

  • 分かりやすさ: 開発者がワークフロー ファイルでランナーグループを指定するだけで、適切なランナーが使用されます。開発者はランナーの設定内容を気にかける必要がありません。

  • スケーラビリティ: ランナーグループは、ランナーをグループに追加することでスケール アップできます。ユーザーは、ワークフロー ファイルを変更することなくワークロードの増加に対応できます。

ランナーグループは GitHub の自動化ツールの要です。リソースの割り当てを最適化できるため、リポジトリをまたいでスムーズかつ安全にスケーリングを行えます。この後に学ぶ再利用可能なワークフローと組み合わせることで、セキュリティ、リソース管理、開発者の効率を向上するための整備されたパスがさらに完成に近づきます。

次のガイド: GitHub Actions で再利用可能なワークフローを作成する

次のガイドでは、再利用可能なワークフローについて掘り下げ、プロセスを標準化し、冗長性を排除し、プロジェクト全体で最大限の効率を達成する方法を説明します。