Skip to main content

企業向けセルフホスト ランナーの概要

開発者が GitHub Actions を使用してワークフローの自動化を開始できるように、Enterprise 用のランナー マシンを構成できます。

Who can use this feature

Enterprise owners can configure policies for GitHub Actions and add self-hosted runners to the enterprise.

GitHub Actions のセルフホスト ランナーについて

GitHub Actions を使うと、エンタープライズのメンバーが、ソフトウェア開発ワークフローのすべてのフェーズを自動化して生産性を向上させることができます。詳細については、「企業向け GitHub Actions について」を参照してください。

GitHub Actions を使用すると、開発者はアクションと呼ばれる個々のタスクを作成して組み合わせて、カスタム ワークフローを作成できます。 ジョブを実行する独自のランナー マシンをホストできます。このマシンは、セルフホスト ランナーと呼ばれます。 セルフホステッド ランナーは、物理または仮想にでき、コンテナー内、オンプレミス、またはクラウドに配置できます。ランナーマシンは、GitHub Actionsのセルフホストランナーアプリケーションを使ってGitHub Enterprise Cloudに接続します。すべてのランナーで Linux、Windows、または macOS を実行できます。 詳細については、セルフホステッド ランナーに関する記述をご覧ください。

または、GitHub ホスト ランナー マシンを使用できます。 GitHub ホスト ランナーは、このガイドの範囲外です。 詳細については、「GitHub ホスト ランナーについて」を参照してください。

このガイドでは、Enterprise 内の GitHub Actions 用のセルフホスト ランナーに一元管理アプローチを適用する方法について説明します。 このガイドでは、次のタスクを行います。

  1. Enterprise 内で実行できるアクションと再利用可能なワークフローを制約する制限付きポリシーを構成する
  2. Enterprise にセルフホスト ランナーをデプロイする
  3. Enterprise で使用できるランナーへのアクセスを管理するためのグループを作成する
  4. 必要に応じて、ランナーを使用できるリポジトリをさらに制限する
  5. 必要に応じて、カスタム ツールをビルドしてセルフホスト ランナーを自動的にスケーリングする

また、セルフホスト ランナーを監視およびセキュリティで保護する方法、ランナー マシン上のソフトウェアをカスタマイズする方法についても詳しく説明します。

このガイドを完了すると、Enterprise のメンバーは、セルフホスト ランナー マシン上で GitHub Actions からワークフロー ジョブを実行できるようになります。

前提条件

1. GitHub Actions 用のポリシーを構成する

まず、すべての Organization に対して GitHub Actions を有効にし、GitHub Enterprise Cloud の Enterprise 内で実行できるアクションと再利用可能なワークフローを制限するポリシーを構成します。 必要に応じて、Organization 所有者は、各 Organization に対してこれらのポリシーをさらに制限できます。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。 GitHub Enterprise Cloud のプロファイル写真のドロップダウン メニューの [自分の Enterprise]

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。 自分の Enterprise のリストの Enterprise の名前

  3. Enterprise サイドバーで、 [ポリシー] をクリックします。 [Enterprise アカウント] サイドバーの [ポリシー] タブ 1. [ ポリシー] で、 [アクション] をクリックします。

  4. [ポリシー] で、 [すべての Organization に対して有効にする] を選択します。

    GitHub Actions の [すべての Organization に対して有効にする] ポリシーのスクリーンショット

  5. [Allow enterprise, and select non-enterprise, actions and reusable workflows](エンタープライズを許可し、非エンタープライズ、アクション、再利用可能なワークフローを選択する) および [GitHub によって作成されたアクションを許可] を選択して、ローカル アクションと再利用可能なワークフローおよび GitHub で作成されたアクションを許可します。

    GitHub Actions での [select アクションを許可] と [GitHub で作成されたアクションを許可] のスクリーンショット

  6. [保存] をクリックします。

Enterprise メンバーが使用できるアクションを制限するために追加のポリシーを構成できます。 詳細については、「Enforcing policies for GitHub Actions in your enterprise (エンタープライズでフォーク pull request のポリシーを適用する)」を参照してください。

2. Enterprise のセルフホスト ランナーをデプロイする

次に、セルフホスト ランナーを Enterprise に追加します。 GitHub Enterprise Cloud により、ランナー マシンに必要なソフトウェアをインストールする手順が表示されます。 ランナーをデプロイした後、ランナー マシンと Enterprise の間の接続を確認できます。

セルフホスト ランナーの追加

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。 GitHub Enterprise Cloud のプロファイル写真のドロップダウン メニューの [自分の Enterprise]

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。 自分の Enterprise のリストの Enterprise の名前

  3. Enterprise サイドバーで、 [ポリシー] をクリックします。 [Enterprise アカウント] サイドバーの [ポリシー] タブ 1. [ ポリシー] で、 [アクション] をクリックします。 1. [Runners](ランナー) タブをクリックします。 1。 [新しいランナー] をクリックし、 [新しいセルフホステッド ランナー] をクリックします。 1. 使用するセルフホスト ランナー マシンのオペレーティング システム イメージとアーキテクチャを選択します。

  4. ランナーアプリケーションをダウンロードして、使用するセルフホストランナーのマシンにインストールする方法が表示されます。

    セルフホストランナーのマシンでシェルを開き、表示順に従ってシェルコマンドを実行してください。

    注: Windows で、セルフホスト ランナー アプリケーションをサービスとしてインストールする場合は、シェルを管理者権限でオープンしなければなりません。 また、C:\actions-runner をセルフホスト ランナー アプリケーション用のディレクトリとして使用し、Windows のシステム アカウントでランナー ディレクトリにアクセスできるようにすることをお勧めします。

    この指示に従えば、以下のタスクが完了します。

    • セルフホストランナーアプリケーションのダウンロードと展開。
    • config スクリプトを実行してセルフホスト ランナー アプリケーションを設定し、GitHub Actions に登録します。 config スクリプトには、登録先の URL と、リクエストを認証してもらうための自動的に生成された時間制限付きのトークンが必要です。
    • セルフホストランナーアプリケーションを実行して、マシンをGitHub Actionsに接続します。

Checking that your self-hosted runner was successfully added

After completing the steps to add a self-hosted runner, the runner and its status are now listed under "Runners".

The self-hosted runner application must be active for the runner to accept jobs. When the runner application is connected to GitHub Enterprise Cloud and ready to receive jobs, you will see the following message on the machine's terminal.

√ Connected to GitHub

2019-10-24 05:45:56Z: Listening for Jobs

3. グループを使用してセルフホスト ランナーへのアクセスを管理する

ランナー グループを作成して、Enterprise に追加したランナーへのアクセスを管理できます。 グループを使用して、どの Enterprise がランナーで GitHub Actions からジョブを実行できるかを選択します。

GitHub Enterprise Cloud では、すべての新しいランナーがグループに追加されます。 ランナーは一度に 1 つのグループに含めることができます。 GitHub Enterprise Cloud の既定では、新しいランナーは "既定" のグループに追加されます。

  1. GitHub.com の右上の自分のプロファイル写真をクリックし、 [自分の Enterprise] をクリックします。 GitHub Enterprise Cloud のプロファイル写真のドロップダウン メニューの [自分の Enterprise]

  2. Enterpriseのリストで、表示したいEnterpriseをクリックしてください。 自分の Enterprise のリストの Enterprise の名前

  3. Enterprise サイドバーで、 [ポリシー] をクリックします。 [Enterprise アカウント] サイドバーの [ポリシー] タブ 1. [ ポリシー] で、 [アクション] をクリックします。 1. [ランナー グループ] タブをクリックします。

  4. [New runner group](新しいランナー グループ) をクリックします。

  5. [グループ名] に、ランナー グループの名前を入力します。

  6. Organization のアクセスのポリシーを選択するには、[Organization のアクセス] で [Organization のアクセス] ドロップダウンを選択し、 [選択した Organization] をクリックします。

  7. Organization アクセス ポリシーのドロップダウンの右側にある をクリックします。

  8. ランナー グループへのアクセス権を付与する対象の Organization を選択します。

  9. 必要に応じて、選択した Organization のパブリック リポジトリでグループ内のランナーを使用できるようにするには、 [パブリック リポジトリの許可] を選択します。

    警告:

    セルフホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー内でコードを実行する pull request を作成することで、パブリック リポジトリのフォークによって、セルフホステッド ランナー マシン上で危険なコードが実行される可能性があるからです。

    詳細については、セルフホステッド ランナーに関する記述をご覧ください。

    1. **[グループの作成]** をクリックし、グループを作成してポリシーを適用します。
  10. [ランナー] タブをクリックします。

  11. ランナーの一覧で、前のセクションでデプロイしたランナーをクリックします。

  12. [編集] をクリックします。

  13. [ランナー グループ] をクリックします。

  14. ランナー グループの一覧で、前に作成したグループの名前をクリックします。

  15. [保存] をクリックするとランナーがグループに移動します。

これで、指定した Organization 内の GitHub Actions からジョブを実行できるセルフホスト ランナーがデプロイされました。

4. セルフホスト ランナーへのアクセスをさらに制限する

必要に応じて、Organization 所有者は、作成したランナー グループのアクセス ポリシーをさらに制限できます。 たとえば、Organization 所有者は、組織内の特定のリポジトリにのみランナー グループの使用を許可できます。

詳細については、「グループを使用してセルフホスト ランナーへのアクセスを管理する」を参照してください。

5. セルフホスト ランナーを自動的にスケーリングする

必要に応じて、カスタム ツールを構築して、Enterprise のセルフホスト ランナーを自動的にスケーリングできます。 たとえば、ツールで GitHub.com からの Webhook イベントに応答して、ランナー マシンのクラスターを自動的にスケーリングできます。 詳細については、「セルフホスト ランナーによる自動スケーリング」を参照してください。

次の手順

  • セルフホスト ランナーを監視し、一般的な問題のトラブルシューティングを行うことができます。 詳細については、「セルフホスト ランナーの監視とトラブルシューティング」を参照してください。

  • GitHub では、セルフホスト ランナー マシンのセキュリティに関する考慮事項を確認することをお勧めします。 詳細については、「GitHub Actions のセキュリティ強化」を参照してください。

  • GitHub Enterprise Server または GitHub AE を使用する場合は、GitHub.com 上のアクションを含むリポジトリを GitHub Enterprise Server または GitHub AE 上の Enterprise に手動で同期できます。 または、GitHub Connect を使用して、Enterprise のメンバーが GitHub.com からアクションに自動的にアクセスできるようにすることもできます。 詳細については、次を参照してください。

  • セルフホスト ランナー マシンで使用できるソフトウェアをカスタマイズしたり、GitHub ホスト ランナーと同様のソフトウェアを実行するようにランナーを構成したりできます。 GitHub Actions 用のランナー マシンを支えるソフトウェアは、オープンソースです。 詳細については、actions/runner および actions/runner-images リポジトリを参照してください。

参考資料