Skip to main content

Getting started with self-hosted runners for your enterprise

You can configure a runner machine for your enterprise so your developers can start automating workflows with GitHub Actions.

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

About self-hosted runners for GitHub Actions

GitHub Actionsを使うと、GitHub Enterprise Serverインスタンスを使う人はソフトウェアの開発ワークフローのすべてのフェーズを自動化することによって、生産性を改善できます。 For more information, see "About GitHub Actions for enterprises."

With GitHub Actions, developers can write and combine individual tasks called actions to create custom workflows. To enable GitHub Actions for GitHub Enterprise Serverインスタンス, you must host at least one machine to execute jobs. This machine is called a self-hosted runner. セルフホストランナーは、物理、仮想、コンテナ内、オンプレミス、クラウドにできます。 Your runner machine connects to GitHub Enterprise Server using the GitHub Actions self-hosted runner application. Self-hosted runners can run Linux, Windows, or macOS. 詳しい情報については「セルフホストランナーについて」を参照してください。

This guide shows you how to apply a centralized management approach to self-hosted runners for GitHub Actions in your enterprise. In the guide, you'll complete the following tasks.

  1. Configure a limited policy to restrict the actions that can run within your enterprise
  2. Deploy a self-hosted runner for your enterprise
  3. Create a group to manage access to the runners available to your enterprise
  4. Optionally, further restrict the repositories that can use the runner
  5. Optionally, build custom tooling to automatically scale your self-hosted runners

You'll also find additional information about how to monitor and secure your self-hosted runners, how to access actions from GitHub.com, and how to customize the software on your runner machines.

After you finish the guide, users of GitHub Enterprise Serverインスタンス will be able to run workflow jobs from GitHub Actions on a self-hosted runner machine.

必要な環境

  • GitHub Actions must be enabled for GitHub Enterprise Server. A site administrator can enable and configure GitHub Actions for your instance. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."

  • You must have access to the machine you will use as a self-hosted runner in your environment.

  • セルフホストランナーとGitHub Enterprise Serverの通信はHTTP(ポート80)もしくはHTTPS(ポート443)です。 HTTPS経由での接続性を確認するには、GitHub Enterprise ServerインスタンスにTLSを設定してください。 詳しい情報については「TLSの設定」を参照してください。 For more information, see "About self-hosted runners."

  • Your enterprise must own at least one organization. For more information, see "About organizations" and "Creating a new organization from scratch."

1. Configure policies for GitHub Actions

First, enable GitHub Actions for all organizations, and configure a policy to restrict the actions that can run on GitHub Enterprise Serverインスタンス. Optionally, organization owners can further restrict these policies for each organization.

  1. GitHub Enterprise Serverの右上で、プロフィール写真をクリックし、続いてEnterprise settings(Enterpriseの設定)をクリックしてください。 GitHub Enterprise Serverのプロフィール写真のドロップダウンメニュー内の"Enterprise settings"

  2. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  3. Under " Policies", click Actions.

  4. Under "Policies", select Enable for all organizations.

    Screenshot of "Enable for all organizations" policy for GitHub Actions

  5. Select Allow select actions and Allow actions created by GitHub to allow local actions, and actions created by GitHub.

    Screenshot of "Allow select actions" and "Allow actions created by GitHub" for GitHub Actions

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

You can configure additional policies to restrict the actions available to users of GitHub Enterprise Serverインスタンス. 詳しい情報については「EnterpriseでのGitHub Actionsのポリシーの施行」を参照してください。

2. Deploy the self-hosted runner for your enterprise

Next, add a self-hosted runner to your enterprise. GitHub Enterprise Server will guide you through installation of the necessary software on the runner machine. After you deploy the runner, you can verify connectivity between the runner machine and GitHub Enterprise Serverインスタンス.

Adding the self-hosted runner

  1. GitHub Enterprise Serverの右上で、プロフィール写真をクリックし、続いてEnterprise settings(Enterpriseの設定)をクリックしてください。 GitHub Enterprise Serverのプロフィール写真のドロップダウンメニュー内の"Enterprise settings"

  2. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  3. Under " Policies", click Actions.

  4. Click the Runners tab.

  5. [New runner]をクリックしてください。

  6. 使用するセルフホストランナーマシンのオペレーティングシステムイメージとアーキテクチャを選択してください。

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

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

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

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

    • セルフホストランナーアプリケーションのダウンロードと展開。
    • configスクリプトを実行してセルフホストランナーアプリケーションを設定し、GitHub Actionsに登録します。 configスクリプトには、登録先のURLと、リクエストを認証してもらうための自動的に生成された時間限定のあるトークンが必要です。
      • Windowsでは、configスクリプトはセルフホストランナーをサービスとしてインストールするかも聞いてきます。 LinuxとmacOSでは、ランナーの追加を終えた後にサービスをインストールできます。 詳しい情報については「サービスとしてセルフホストランナーを構成する」を参照してください。
    • セルフホストランナーアプリケーションを実行して、マシンをGitHub Actionsに接続します。

セルフホストランナーの追加に成功したことの確認

セルフホストランナーを追加するためのステップを完了すると、ランナーとそのステータスは"Self-hosted runners(セルフホストランナー)"の下にリストされます。

ジョブをランナーが受け付けるためには、セルフホストランナーアプリケーションが動作していなければなりません。 ランナーアプリケーションがGitHub Enterprise Serverに接続され、ジョブを受け付ける準備ができると、以下のメッセージがマシンのターミナルに表示されます。

√ Connected to GitHub

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

3. Manage access to the self-hosted runner using a group

You can create a runner group to manage access to the runner that you added to your enterprise. You'll use the group to choose which organizations can execute jobs from GitHub Actions on the runner.

GitHub Enterprise Server adds all new runners to a group. Runners can be in one group at a time. By default, GitHub Enterprise Server adds new runners to the "Default" group.

  1. GitHub Enterprise Serverの右上で、プロフィール写真をクリックし、続いてEnterprise settings(Enterpriseの設定)をクリックしてください。 GitHub Enterprise Serverのプロフィール写真のドロップダウンメニュー内の"Enterprise settings"

  2. Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。 Enterpriseアカウントサイドバー内のポリシータブ

  3. Under " Policies", click Actions.

  4. Click the Runner groups tab.

  5. New runner group(新規ランナーグループ)をクリックしてください。

  6. "Group name(グループ名)"の下で、ランナーグループの名前を入力してください。

  7. To choose a policy for organization access, under "Organization access", select the Organization access drop-down, and click Selected organizations.

  8. To the right of the drop-down with the organization access policy, click .

  9. Select the organizations you'd like to grant access to the runner group.

  10. Optionally, to allow public repositories in the selected organizations to use runners in the group, select Allow public repositories.

    Warning:

    セルフホストランナーは、プライベートリポジトリでのみ利用することをおすすめします。 これは、ワークフロー中でコードを実行するPull Requestを作成することによって、リポジトリのフォークが危険なコードをセルフホストランナーマシン上で実行できる可能性があるためです。

    詳しい情報については「セルフホストランナーについて」を参照してください。

  11. Create groupをクリックして、グループを作成してポリシーを適用してください。

  12. Click the "Runners" tab.

  13. In the list of runners, click the runner that you deployed in the previous section.

  14. [Edit] をクリックします。

  15. Click Runner groups .

  16. In the list of runner groups, click the name of the group that you previously created.

  17. Click Save to move the runner to the group.

You've now deployed a self-hosted runner that can run jobs from GitHub Actions within the organizations that you specified.

4. Further restrict access to the self-hosted runner

Optionally, organization owners can further restrict the access policy of the runner group that you created. For example, an organization owner could allow only certain repositories in the organization to use the runner group.

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

5. Automatically scale your self-hosted runners

Optionally, you can build custom tooling to automatically scale the self-hosted runners for GitHub Enterprise Serverインスタンス. For example, your tooling can respond to webhook events from GitHub Enterprise Serverインスタンス to automatically scale a cluster of runner machines. For more information, see "Autoscaling with self-hosted runners."

次のステップ

参考リンク