ランナー グループについて
ランナー グループは、Organization レベルと Enterprise レベルのランナーへのアクセスを制御するために使用されます。 Enterprise の所有者はアクセス ポリシーを設定して、Enterprise 内のどの Organization とワークフローがランナー グループにアクセスできるかを制御できます。 Organization の所有者はアクセス ポリシーを設定して、Organization 内のどのリポジトリとワークフローがランナー グループにアクセスできるかを制御できます。
Enterprise の所有者がランナー グループにアクセス権を付与する場合、Organization の所有者には、Organization のランナー設定に一覧表示されているランナー グループが表示されます。 その後、Organization の所有者は、リポジトリとワークフローの詳細な追加アクセス ポリシーを、Enterprise ランナー グループに割り当てることができます。
新しいランナーが作成されると、それらは自動的にデフォルトグループに割り当てられます。 ランナーは一度に1つのグループにのみ参加できます。 ランナーはデフォルトグループから別のグループに移動できます。 詳しくは、「ランナーをグループに移動する」をご覧ください。
より大きなランナーの既定のグループ
より大きなランナーにアクセスできる Organization と Enterprise は、サイズが異なる 4 つのランナーを含む "既定のより大きなランナー" という名前の既定のランナー グループを自動的に受け取ります。 このグループのランナーはあらかじめ構成されており、すぐに使用できます。 このグループのランナーを使うには、選んだランナーに対応するラベルをワークフロー ファイルに追加する必要があります。 ラベルについては、下の表をご覧ください。 ラベルの使い方について詳しくは、「より大きなランナーの使用」をご覧ください。
既定のランナー
説明 | Label | Image |
---|---|---|
4 コアの Ubuntu ランナー | ubuntu-latest-4-cores | Ubuntu - 最新 |
8 コアの Ubuntu ランナー | ubuntu-latest-8-cores | Ubuntu - 最新 |
16 コアの Ubuntu ランナー | ubuntu-latest-16-cores | Ubuntu - 最新 |
8 コアの Windows ランナー | windows-latest-8-cores | Windows Server - 最新 |
既定のより大きなランナー グループは、課金エンティティ レベルで作成されます。 組織が Enterprise アカウントの一部である場合、グループは Enterprise レベルで管理されます。 Organization が Enterprise の管理下にない場合、グループは Organization レベルで管理されます。
これらのランナーは、ワークフローで使うまで課金されません。 ランナーが使われると、通常と同じように課金処理が行われます。 課金について詳しくは、「より大きなランナーの使用」をご覧ください。
Enterprise レベルでのより大きなランナー グループの既定のアクセスは、Enterprise 内のすべての Organization と自動的に共有するように設定されますが、すべてのリポジトリとは設定されません。 Organization 管理者は、既定のより大きなランナー グループを各リポジトリと個別に共有する必要があります。 Organization レベルのより大きなランナー グループの場合は、すべてのリポジトリとグループを自動的に共有するように、既定のアクセス権が設定されます。 アクセス ポリシーを変更する方法と、既定のより大きなランナー グループが表示される場所について詳しくは、「ランナー グループのアクセス ポリシーを変更する」をご覧ください。
Organization のランナー グループを作成する
警告: 固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
すべての Organization には、単一の既定のランナー グループがあります。 Enterprise アカウント内の Organization を使うと、追加のグループを作成できます。 Organization の管理者は、個々のリポジトリにランナーグループへのアクセスを許可できます。 REST API を使ってランナー グループを作成する方法について詳しくは、「アクション」をご覧ください。
ランナーは、作成時に既定のグループに自動的に割り当てられます。一度に 1 つのグループでのみメンバーになることができます。 ランナーはデフォルトグループから作成した任意のグループに移動できます。
グループを作成するときは、ランナー グループにアクセスできるリポジトリとワークフローが定義されているポリシーを選ぶ必要があります。
-
GitHub.com で、Organization のメイン ページへ移動します。 1. Organization 名の下で、 [設定] をクリックします。
1. 左側のサイド バーで、 [アクション] 、 [ランナー グループ] の順にクリックします。 -
"ランナー グループ" セクションで、 [新しいランナー グループ] をクリックします。
-
ランナー グループの名前を入力します。
-
リポジトリ アクセスのポリシーを割り当てます。
リポジトリの特定のリストまたは組織内のすべてのリポジトリにアクセス可能なランナー グループを設定できます。既定では、プライベート リポジトリのみがランナー グループ内のランナーにアクセスできますが、これをオーバーライドできます。 エンタープライズによって共有された組織のランナー グループを構成する場合、この設定をオーバーライドすることはできません。
-
ワークフロー アクセス用のポリシーを割り当てます。
特定のワークフローの一覧またはすべてのワークフローからアクセスできるようにランナー グループを構成できます。 エンタープライズによって共有された組織のランナー グループを構成している場合、この設定をオーバーライドできません。 ランナー グループにアクセスできるワークフローを指定する場合は、リポジトリ名と所有者を含むワークフローへの完全なパスを使用し、ワークフローをブランチ、タグ、または完全 SHA にピン留めする必要があります。 (例:
octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main
)。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。 組織が所有するランナー グループは、エンタープライズ内の別の組織からのワークフローにはアクセスできません。代わりに、エンタープライズが所有するランナー グループを作成する必要があります。 1. [グループの作成] をクリックしてグループを作成し、ポリシーを適用します。
Enterprise のランナー グループを作成する
警告: 固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
Enterprise を使うと、ランナーがグループに追加されて、アクセス管理を行うことができます。 Enterprise は、Enterprises アカウント内の特定の Organization 、または特定のワークフローにアクセス可能なランナーのグループを作成できます。 その後、Organization の所有者は、Enterprise ランナー グループに対し、追加の詳細なリポジトリまたはワークフロー アクセス ポリシーを割り当てることができます。 REST API を使ってランナー グループを作成する方法については、GitHub Actions REST API の Enterprise エンドポイントをご覧ください。
ランナーは、作成時に既定のグループに自動的に割り当てられます。一度に 1 つのグループでのみメンバーになることができます。 登録処理中にランナーを特定のグループに割り当てることも、後でランナーをデフォルトグループからカスタムグループに移動することもできます。
グループを作成するときは、ランナーグループにアクセスできる Organization を定義するポリシーを選択する必要があります。
-
GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。
-
Enterpriseのリストで、表示したいEnterpriseをクリックしてください。
-
Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [ランナー グループ] タブをクリックします。
-
[New runner group](新しいランナー グループ) をクリックします。
-
[グループ名] に、ランナー グループの名前を入力します。
-
組織アクセスのポリシーを選択するには、 [組織のアクセス] ドロップダウンを選択し、[ポリシー] をクリックします。 組織の特定のリストまたはエンタープライズ内のすべての組織にアクセス可能なランナー グループを設定できます。
-
ワークフロー アクセス用のポリシーを割り当てます。
特定のワークフローの一覧またはすべてのワークフローからアクセスできるようにランナー グループを構成できます。 エンタープライズによって共有された組織のランナー グループを構成している場合、この設定をオーバーライドできません。 ランナー グループにアクセスできるワークフローを指定する場合は、リポジトリ名と所有者を含むワークフローへの完全なパスを使用し、ワークフローをブランチ、タグ、または完全 SHA にピン留めする必要があります。 (例:
octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main
)。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。
-
[グループの保存] をクリックしてグループを作成し、ポリシーを適用します。
ランナー グループに一意の名前を使用する
GitHub Actions では、ランナー グループ名が Organization レベルで一意である必要があります。 つまり、Organization は、Enterprise 内のランナー グループと同じ名前を持つものを作成できなくなります。 さらに、ユーザーには、Enterprise 内のグループと同じ名前を共有するすべてのランナー グループに、Organization グループの名前を変更することを提案する警告バナーが表示されます。
あいまいさを回避するために、Organization と Enterprise に重複するランナー グループがある場合、ワークフローは失敗します。 これに対処するには、Organization 内または Enterprise のいずれかのランナー グループの名前を変更するか、ワークフロー ファイルを更新してランナー グループ名にプレフィックスを追加します。
org/
またはorganization/
ent/
またはenterprise/
例: プレフィックスを使用してランナー グループを区別する
たとえば、Organization 内に my-group
という名前のランナー グループがあり、Enterprise 内に my-group
という名前のランナー グループがある場合は、ワークフロー ファイルを更新して、org/my-group
または ent/my-group
を使用して 2 つを区別できます。
org/
の使用
runs-on:
group: org/my-group
labels: [ self-hosted, label-1 ]
ent/
の使用
runs-on:
group: ent/my-group
labels: [ self-hosted, label-1 ]
ランナー グループのアクセス ポリシーを変更する
警告: 固定 IP 範囲を使っている場合、プライベート リポジトリには より大きなランナー のみを使うことをお勧めします。 ワークフロー内でコードを実行する pull request を作成することで、リポジトリのフォークによって、より大きなランナー 上で危険なコードが実行される可能性があります。
Enterprise のランナー グループの場合、Enterprise 内のどの Organization がランナー グループにアクセスできるかを変更したり、ランナー グループで実行できるワークフローを制限したりできます。 Organization のランナー グループの場合、Organization 内のどのリポジトリがランナー グループにアクセスできるかを変更したり、ランナー グループで実行できるワークフローを制限したりできます。
ランナー グループにアクセスできる組織またはリポジトリを変更する
-
ランナー グループが配置されている場所に移動します。
-
Organization 内: メイン ページに移動して、 [設定] をクリックします。
-
Enterprise レベルのグループを使用している場合:
-
GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。
-
Enterpriseのリストで、表示したいEnterpriseをクリックしてください。
-
-
-
[ランナー グループ] 設定に移動します:
-
Organization 内:
- 左側のサイド バーで、 [アクション] 、 [ランナー グループ] の順にクリックします。
-
Enterprise レベルのグループを使用している場合:
- Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [ランナー グループ] タブをクリックします。 1. グループのリストで、構成するランナー グループをクリックします。
-
-
エンタープライズ内のランナー グループの場合、 [組織のアクセス] で、ランナー グループにアクセスできる組織を変更します。 組織内のランナー グループの場合、 [リポジトリ アクセス] で、ランナー グループにアクセスできるリポジトリを変更します。
-
設定ページの [Runners](ランナー) セクションで、構成するランナー グループの横にある をクリックし、 [Edit name and [organization|repository] access](名前の編集と [組織|リポジトリ] アクセス) をクリックします。
-
ポリシー オプションを変更します。
警告
セルフホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー内でコードを実行する pull request を作成することで、パブリック リポジトリのフォークによって、セルフホステッド ランナー マシン上で危険なコードが実行される可能性があるからです。
詳しくは、「セルフホステッド ランナーの概要」を参照してください。
ランナー グループにアクセスできるワークフローの変更
選択したワークフローまたはすべてのワークフローを実行するようにランナー グループを構成できます。 たとえば、この設定を使って、ランナーに格納されているシークレットを保護したり、ランナー グループが特定の再利用可能なワークフローのみを実行するように制限してデプロイ ワークフローを標準化したりすることができます。 エンタープライズによって共有された組織のランナー グループを構成している場合、この設定をオーバーライドできません。
-
ランナー グループが配置されている場所に移動します。
-
Organization 内: メイン ページに移動して、 [設定] をクリックします。
-
Enterprise レベルのグループを使用している場合:
-
GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。
-
Enterpriseのリストで、表示したいEnterpriseをクリックしてください。
-
-
-
[ランナー グループ] 設定に移動します:
-
Organization 内:
- 左側のサイド バーで、 [アクション] 、 [ランナー グループ] の順にクリックします。
-
Enterprise レベルのグループを使用している場合:
- Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [ランナー グループ] タブをクリックします。 1. グループのリストで、構成するランナー グループをクリックします。
-
-
[ワークフロー アクセス] で、ドロップダウン メニューを選択し、 [選択したワークフロー] をクリックします。
-
をクリックします。
-
ランナー グループにアクセスできるワークフローのコンマ区切りの一覧を入力します。 リポジトリ名と所有者を含む完全なパスを使用します。 ワークフローをブランチ、タグ、または完全 SHA にピン留めします。 (例:
octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main
)。選択したワークフロー内で直接定義されたジョブのみがランナー グループにアクセスできます。
組織所有のランナー グループは、エンタープライズ内の別の組織からワークフローにアクセスできません。代わりに、エンタープライズ所有のランナー グループを作成する必要があります。
-
[保存] をクリックします。
ランナー グループの名前を変更する
-
ランナー グループが配置されている場所に移動します。
-
Organization 内: メイン ページに移動して、 [設定] をクリックします。
-
Enterprise レベルのグループを使用している場合:
-
GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。
-
Enterpriseのリストで、表示したいEnterpriseをクリックしてください。
-
-
-
[ランナー グループ] 設定に移動します:
-
Organization 内:
- 左側のサイド バーで、 [アクション] 、 [ランナー グループ] の順にクリックします。
-
Enterprise レベルのグループを使用している場合:
- Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [ランナー グループ] タブをクリックします。 1. グループのリストで、構成するランナー グループをクリックします。
-
-
ランナー グループ名を変更します。
-
設定ページの [Runners](ランナー) セクションで、構成するランナー グループの横にある をクリックし、 [Edit name and [organization|repository] access](名前の編集と [組織|リポジトリ] アクセス) をクリックします。
-
ランナー グループ名を変更します。
ランナーをグループに移動する
登録プロセス中にランナー グループを指定しない場合、新しいランナーは、自動的に既定のグループに割り当てられ、その後別のグループへの移動が可能となります。
-
ランナーが登録されている場所に移動します。
-
Organization 内: メイン ページに移動して、 [設定] をクリックします。
-
Enterprise レベルのランナーを使用している場合:
-
GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。
-
Enterpriseのリストで、表示したいEnterpriseをクリックしてください。
-
-
-
GitHub Actions設定にアクセスしてください:
-
Organization 内:
- 左側のサイドバーで、 [アクション] 、 [ランナー] の順にクリックします。
-
Enterprise レベルのランナーを使用している場合:
- Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [Runners](ランナー) タブをクリックします。
-
-
"ランナー" の一覧で、構成するランナーをクリックします。
-
[ランナー グループ] ドロップダウンを選択します。
-
"ランナーをグループに移動" で、ランナーの移動先グループを選択します。
ランナー グループを削除する
ランナーは、そのグループが削除されると自動的に既定のグループに戻ります。
-
ランナー グループが配置されている場所に移動します。
-
Organization 内: メイン ページに移動して、 [設定] をクリックします。
-
Enterprise レベルのグループを使用している場合:
-
GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。
-
Enterpriseのリストで、表示したいEnterpriseをクリックしてください。
-
-
-
[ランナー グループ] 設定に移動します:
-
Organization 内:
- 左側のサイド バーで、 [アクション] 、 [ランナー グループ] の順にクリックします。
-
Enterprise レベルのグループを使用している場合:
- Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [ランナー グループ] タブをクリックします。
-
-
グループの一覧で、削除するグループの右側にある をクリックします。
-
グループを削除するには、 [グループの削除] をクリックします。
-
確認プロンプトを確認し、 [Remove this runner group](このランナー グループの削除) をクリックします。 このグループのすべてのランナーは、既定のグループに自動的に移動します。ここでは、このグループに割り当てられたアクセス許可を継承します。