GitHub Actions のセルフホスト ランナーについて
GitHub Actions を使うと、 を使うユーザーが、ソフトウェア開発ワークフローのすべてのフェーズを自動化して生産性を向上させることができます。詳細については、「企業向け GitHub Actions について」を参照してく� さい。
GitHub Actions を使用すると、開発者はアクションと呼ばれる個々のタスクを作成して組み合わせて、カスタ� ワークフローを作成できます。 GitHub Actions を your GitHub Enterprise Server instance で有効にするには、ジョブを実行するマシンを少なくとも 1 台ホストする必要があります。このマシンは、セルフホスト ランナーと呼ばれます。 セルフホステッド ランナーは、物理または仮想にでき、コンテナー内、オンプレミス、またはクラウドに配置できます。ランナーマシンは、GitHub Actionsのセルフホストランナーアプリケーションを使ってGitHub Enterprise Serverに接続します。セルフホスト ランナーで Linux、Windows、または macOS を実行できます。 詳細については、セルフホステッド ランナーに関する記述をご覧く� さい。
このガイドでは、Enterprise 内の GitHub Actions 用のセルフホスト ランナーに一元管理アプローチを適用する方法について説明します。 このガイドでは、次のタスクを行います。
- Enterprise 内で実行できるアクションを制約する制限付きポリシーを構成する
- Enterprise にセルフホスト ランナーをデプロイする
- Enterprise で使用できるランナーへのアクセスを管理するためのグループを作成する
- 必要に応じて、ランナーを使用できるリポジトリをさらに制限する
- 必要に応じて、カスタ� ツールをビルドしてセルフホスト ランナーを自動的にスケーリングする
また、セルフホスト ランナーを監視およびセキュリティで保護する方法、GitHub.com からアクションにアクセスする方法、ランナー マシン上のソフトウェアをカスタマイズする方法についても詳しく説明します。
このガイドを完了すると、your GitHub Enterprise Server instance のユーザーは、セルフホスト ランナー マシン上で GitHub Actions からワークフロー ジョブを実行できるようになります。
前提条件
-
GitHub Actions は、GitHub Enterprise Server に対して有効にする必要があります。 サイト管理者は、インスタンスの GitHub Actions を有効にして構成できます。 詳細については、「GitHub Enterprise Server の GitHub Actions の概要」を参照してく� さい。
-
環境内でセルフホステッド ランナーとして使用するマシンにアクセスできる必要があります。
-
セルフホステッド ランナーと GitHub Enterprise Server の接続は、HTTP (ポート 80) または HTTPS (ポート 443) を経由します。 HTTPS 経由で確実に接続を行うには、 に対して TLS を構成します。 詳細については、「TLS の構成」を参照してく� さい。 詳細については、「セルフホステッド ランナーについて」を参照してく� さい。
-
Enterprise は少なくとも 1 つの Organization を所有している必要があります。 詳細については、「Organization について」および「新しい Organization をゼロから作成」を参照してく� さい。
1. GitHub Actions 用のポリシーを構成する
まず、すべての Organization に対して GitHub Actions を有効にし、your GitHub Enterprise Server instance で実行できるアクションを制限するポリシーを構成します。 必要に応じて、Organization 所有者は、各 Organization に対してこれらのポリシーをさらに制限できます。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 1. Enterprise サイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。
-
[ポリシー] で、 [すべての Organization に対して有効にする] を選択します。
-
[Allow select actions](選択したアクションを許可する) および [GitHub によって作成されたアクションを許可] を選択して、ローカル アクションおよび GitHub で作成されたアクションを許可します。
-
[保存] をクリックします。
your GitHub Enterprise Server instance のユーザーが使用できるアクションを制限するために追� のポリシーを構成できます。 詳細については、「Enforcing policies for GitHub Actions in your enterprise (エンタープライズでフォーク pull request のポリシーを適用する)」を参照してく� さい。
2. Enterprise のセルフホスト ランナーをデプロイする
次に、セルフホスト ランナーを Enterprise に追� します。 GitHub Enterprise Server により、ランナー マシンに必要なソフトウェアをインストールする手� �が表示されます。 ランナーをデプロイした後、ランナー マシンと your GitHub Enterprise Server instance の間の接続を確認できます。
セルフホスト ランナーの追�
Enterprise にセルフホステッド ランナーを追� するには、Enterprise 所有者である必要があります。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 1. Enterprise サイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [Runners](ランナー) タブをクリックします。
-
[新規追� ] をクリックし、 [New runner](新しいランナー) をクリックします。
-
使用するセルフホスト ランナー マシンのオペレーティング システ� イメージとアーキテクチャを選択します。
-
ランナーアプリケーションをダウンロードして、使用するセルフホストランナーのマシンにインストールする方法が表示されます。
セルフホストランナーのマシンでシェルを開き、表示� �に従ってシェルコマンドを実行してく� さい。
注: Windows で、セルフホスト ランナー アプリケーションをサービスとしてインストールする� �合は、シェルを管理者権限でオープンしなければなりません。 また、
C:\actions-runner
をセルフホスト ランナー アプリケーション用のディレクトリとして使用し、Windows のシステ� アカウントでランナー ディレクトリにアクセスできるようにすることをお勧めします。この指示に従えば、以下のタスクが完了します。
- セルフホストランナーアプリケーションのダウンロードと展開。
config
スクリプトを実行してセルフホスト ランナー アプリケーションを設定し、GitHub Actions に登録します。config
スクリプトには、登録先の URL と、リクエストを認証してもらうための自動的に生成された時間制限付きのトークンが必要です。- Windows では、
config
スクリプトからセルフホスト ランナーをサービスとしてインストールするかどうかも尋ねられます。 LinuxとmacOSでは、ランナーの追� を終えた後にサービスをインストールできます。 詳細については、「セルフホスト ランナー アプリケーションをサービスとして構成する」を参照してく� さい。
- Windows では、
- セルフホストランナーアプリケーションを実行して、マシンをGitHub Actionsに接続します。
セルフホストランナーの追� に成功したことの確認
セルフホステッド ランナーを追� する手� �を完了すると、ランナーとその状態が の下に表示されます。
ジョブをランナーが受け付けるためには、セルフホストランナーアプリケーションが動作していなければなりません。 ランナー アプリケーションが GitHub Enterprise Server に接続されており、ジョブの受信準備ができたら、以下のメッセージがコンピューターのターミナルに表示されます。
√ Connected to GitHub
2019-10-24 05:45:56Z: Listening for Jobs
3. グループを使用してセルフホスト ランナーへのアクセスを管理する
ランナー グループを作成して、Enterprise に追� したランナーへのアクセスを管理できます。 グループを使用して、どの Enterprise がランナーで GitHub Actions からジョブを実行できるかを選択します。
GitHub Enterprise Server では、すべての新しいランナーがグループに追� されます。 ランナーは一度に 1 つのグループに含めることができます。 GitHub Enterprise Server の既定では、新しいランナーは "既定" のグループに追� されます。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 1. Enterprise サイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [Runners](ランナー) タブをクリックします。
-
[新規追� ] ドロップダウンを使用し、 [新しいグループ] を選択します。
-
[グループ名] に、ランナー グループの名前を入力します。
-
Organization のアクセスのポリシーを選択するには、[Organization のアクセス] で [Organization のアクセス] ドロップダウンを選択し、 [選択した Organization] をクリックします。
-
Organization アクセス ポリシーのドロップダウンの右側にある をクリックします。
-
ランナー グループへのアクセス権を付与する対象の Organization を選択します。
-
必要に応じて、選択した Organization のパブリック リポジトリでグループ内のランナーを使用できるようにするには、 [パブリック リポジトリの許可] を選択します。
警告:
セルフホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー内でコードを実行する pull request を作成することで、パブリック リポジトリのフォークによって、セルフホステッド ランナー マシン上で危険なコードが実行される可能性があるからです。
詳細については、セルフホステッド ランナーに関する記述をご覧く� さい。
-
[既定値] の右側で、グループ内のランナーの数をクリックしてランナーを表示します。
-
デプロイしたランナーを選択します。
-
[ランナー グループ] の右側にある [グループに移動] ドロップダウンを選択し、前に作成したグループをクリックします。
これで、指定した Organization 内の GitHub Actions からジョブを実行できるセルフホスト ランナーがデプロイされました。
4. セルフホスト ランナーへのアクセスをさらに制限する
必要に応じて、Organization 所有者は、作成したランナー グループのアクセス ポリシーをさらに制限できます。 たとえば、Organization 所有者は、組織内の特定のリポジトリにのみランナー グループの使用を許可できます。
詳細については、「グループを使用してセルフホスト ランナーへのアクセスを管理する」を参照してく� さい。
5. セルフホスト ランナーを自動的にスケーリングする
必要に応じて、カスタ� ツールを構築して、your GitHub Enterprise Server instance のセルフホスト ランナーを自動的にスケーリングできます。 たとえば、ツールで your GitHub Enterprise Server instance からの Webhook イベントに応答して、ランナー マシンのクラスターを自動的にスケーリングできます。 詳細については、「セルフホスト ランナーによる自動スケーリング」を参照してく� さい。
次の手� �
-
セルフホスト ランナーを監視し、一般的な問題のトラブルシューティングを行うことができます。 詳細については、「セルフホスト ランナーの監視とトラブルシューティング」を参照してく� さい。
-
GitHub では、セルフホスト ランナー マシンのセキュリティに関する考慮事� �を確認することをお勧めします。 詳細については、「GitHub Actions のセキュリティ強化」を参照してく� さい。
-
GitHub.com 上のアクションを含むリポジトリを GitHub Enterprise Server 上の Enterprise に手動で同期できます。 または、GitHub Connect を使用して、Enterprise のメンバーが GitHub.com からアクションに自動的にアクセスできるようにすることもできます。 詳細については、次を参照してく� さい。
-
セルフホスト ランナー マシンで使用できるソフトウェアをカスタマイズしたり、GitHub.com を使用しているお客様が利用可能なGitHub ホスト ランナーと同様のソフトウェアを実行するようにランナーを構成したりできます。 GitHub Actions 用のランナー マシンを支えるソフトウェアは、オープンソースです。 詳細については、
actions/runner
およびactions/runner-images
リポジトリを参照してく� さい。