GitHub Actions のセルフホスト ランナーについて
GitHub Actions を使うと、お使いの GitHub Enterprise Server インスタンス を使うユーザーが、ソフトウェア開発ワークフローのすべてのフェーズを自動化して生産性を向上させることができます。 詳しくは、「エンタープライズの GitHub Actions について」をご覧ください。
GitHub Actions を使用すると、開発者はアクションと呼ばれる個々のタスクを作成して組み合わせて、カスタム ワークフローを作成できます。 GitHub Actions を お使いの GitHub Enterprise Server インスタンス で有効にするには、ジョブを実行するマシンを少なくとも 1 台ホストする必要があります。このマシンは、セルフホスト ランナーと呼ばれます。 セルフホステッド ランナーは、物理または仮想にでき、コンテナー内、オンプレミス、またはクラウドに配置できます。ランナーマシンは、GitHub Actionsのセルフホストランナーアプリケーションを使ってGitHub Enterprise Serverに接続します。セルフホスト ランナーで Linux、Windows、または macOS を実行できます。 詳しくは、「セルフホステッド ランナーの概要」を参照してください。
このガイドでは、Enterprise 内の GitHub Actions 用のセルフホスト ランナーに一元管理アプローチを適用する方法について説明します。 このガイドでは、次のタスクを行います。
- Enterprise 内で実行できるアクションを制約する制限付きポリシーを構成する
- Enterprise にセルフホスト ランナーをデプロイする
- Enterprise で使用できるランナーへのアクセスを管理するためのグループを作成する
- 必要に応じて、ランナーを使用できるリポジトリをさらに制限する
- 必要に応じて、カスタム ツールをビルドしてセルフホスト ランナーを自動的にスケーリングする
また、セルフホスト ランナーを監視およびセキュリティで保護する方法、GitHub.com からアクションにアクセスする方法、ランナー マシン上のソフトウェアをカスタマイズする方法についても詳しく説明します。
このガイドを完了すると、お使いの GitHub Enterprise Server インスタンス のユーザーは、セルフホスト ランナー マシン上で GitHub Actions からワークフロー ジョブを実行できるようになります。
前提条件
-
GitHub Actions は、GitHub Enterprise Server に対して有効にする必要があります。 サイト管理者は、インスタンスの GitHub Actions を有効にして構成できます。 詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」を参照してください。
-
環境内でセルフホステッド ランナーとして使用するマシンにアクセスできる必要があります。
-
セルフホステッド ランナーと GitHub Enterprise Server の接続は、HTTP (ポート 80) または HTTPS (ポート 443) を経由します。 HTTPS 経由で確実に接続するには、お使いの GitHub Enterprise Server インスタンス に対して TLS を構成します。 詳細については、「TLSの設定」を参照してください。 詳細については、「セルフホステッド ランナーの概要」を参照してください。
-
Enterprise は少なくとも 1 つの Organization を所有している必要があります。 詳細については、「Organizationについて」および「新しい Organization をゼロから作成」を参照してください。
1. GitHub Actions 用のポリシーを構成する
まず、すべての Organization に対して GitHub Actions を有効にし、お使いの GitHub Enterprise Server インスタンス で実行できるアクションを制限するポリシーを構成します。 必要に応じて、Organization 所有者は、各 Organization に対してこれらのポリシーをさらに制限できます。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
1. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 -
[ポリシー] で、 [すべての Organization に対して有効にする] を選択します。
-
[Allow select actions](選択したアクションを許可する) および [GitHub によって作成されたアクションを許可] を選択して、ローカル アクションおよび GitHub で作成されたアクションを許可します。
-
[保存] をクリックします。
お使いの GitHub Enterprise Server インスタンス のユーザーが使用できるアクションを制限するために追加のポリシーを構成できます。 詳しくは、「エンタープライズで GitHub Actions のポリシーを適用する」を参照してください。
2. Enterprise のセルフホスト ランナーをデプロイする
次に、セルフホスト ランナーを Enterprise に追加します。 GitHub Enterprise Server により、ランナー マシンに必要なソフトウェアをインストールする手順が表示されます。 ランナーをデプロイした後、ランナー マシンと お使いの GitHub Enterprise Server インスタンス の間の接続を確認できます。
セルフホスト ランナーの追加
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
1. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。 1. [ ポリシー] で、 [アクション] をクリックします。 1. [Runners](ランナー) タブをクリックします。 1。 [新しいランナー] をクリックします。 1. 使用するセルフホスト ランナー マシンのオペレーティング システム イメージとアーキテクチャを選択します。 -
ランナーアプリケーションをダウンロードして、使用するセルフホストランナーのマシンにインストールする方法が表示されます。
セルフホストランナーのマシンでシェルを開き、表示順に従ってシェルコマンドを実行してください。
注: 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. [ランナー グループ] タブをクリックします。 -
[New runner group](新しいランナー グループ) をクリックします。
-
[グループ名] に、ランナー グループの名前を入力します。
-
Organization のアクセスのポリシーを選択するには、[Organization のアクセス] で [Organization のアクセス] ドロップダウンを選択し、 [選択した Organization] をクリックします。
-
Organization アクセス ポリシーのドロップダウンの右側にある をクリックします。
-
ランナー グループへのアクセス権を付与する対象の Organization を選択します。
-
必要に応じて、選択した Organization のパブリック リポジトリでグループ内のランナーを使用できるようにするには、 [パブリック リポジトリの許可] を選択します。
警告:
セルフホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー内でコードを実行する pull request を作成することで、パブリック リポジトリのフォークによって、セルフホステッド ランナー マシン上で危険なコードが実行される可能性があるからです。
詳しくは、「セルフホステッド ランナーの概要」を参照してください。
-
[ランナー] タブをクリックします。
-
ランナーの一覧で、前のセクションでデプロイしたランナーをクリックします。
-
[編集] をクリックします。
-
[ランナー グループ] をクリックします。
-
ランナー グループの一覧で、前に作成したグループの名前をクリックします。
-
[保存] をクリックするとランナーがグループに移動します。
これで、指定した Organization 内の GitHub Actions からジョブを実行できるセルフホスト ランナーがデプロイされました。
4. セルフホスト ランナーへのアクセスをさらに制限する
必要に応じて、Organization 所有者は、作成したランナー グループのアクセス ポリシーをさらに制限できます。 たとえば、Organization 所有者は、組織内の特定のリポジトリにのみランナー グループの使用を許可できます。
詳しくは、「グループを使用してセルフホストランナーへのアクセスを管理する」を参照してください。
5. セルフホスト ランナーを自動的にスケーリングする
必要に応じて、カスタム ツールを構築して、お使いの GitHub Enterprise Server インスタンス のセルフホスト ランナーを自動的にスケーリングできます。 たとえば、ツールで お使いの GitHub Enterprise Server インスタンス からの 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
リポジトリを参照してください。