ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

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

独自のランナーをホストして、GitHub Actionsワークフロー中でジョブの実行に使われる環境をカスタマイズできます。

ここには以下の内容があります:

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

ノート: 現在、リポジトリにセルフホストランナーを追加できます。 Organization全体にセルフホストランナーを追加して管理する機能は、将来のリリースに搭載されます。

セルフホストランナーでは、ハードウェア、オペレーティングシステム、ソフトウェアツールについてGitHubホストランナーよりもコントロールできます。 セルフホストランナーでは、大規模なジョブを実行するために処理能力やメモリを強化したカスタムハードウェア構成を作ったり、ローカルネットワークで利用できるソフトウェアをインストールしたり、GitHubホストランナーでは提供されていないオペレーティングシステムを選択したりできます。

セルフホストランナーは、物理、仮想、コンテナ、オンプレミス、クラウドにできます。 以下の要求を満たしていれば、いかなるマシンもセルフホストランナーとして利用できます。

The GitHub Actions runner application is open source. You can contribute and file issues in the runner repository.

セルフホストランナーのインストールと利用に関する詳しい情報については「セルフホストランナーの追加」及び「ワークフロー内でのセルフホストランナーの利用」を参照してください。

GitHubホストランナーとセルフホストランナーの違い

GitHubホストランナーは、ワークフローを素早くシンプルに実行する方法を提供しますが、セルフホストランナーはユーザのカスタム環境内でワークフローを実行する、設定の幅が広い方法です。

GitHubホストランナーは:

  • 自動的に更新されます。
  • GitHubによって管理及びメンテナンスされます。
  • ジョブの実行のたびにクリーンなインスタンスを提供します。

セルフホストランナーは:

  • すでに支払いをしているクラウドサービスあるいはローカルマシンを利用できます。
  • 利用するハードウェア、オペレーティングシステム、ソフトウェア、セキュリティ上の要求に合わせてカスタマイズできます。
  • ジョブの実行のたびにクリーンなインスタンスを保持する必要がありません。
  • 利用状況によっては、GitHubホストランナーよりもコスト効率が良くなります。

セルフホストランナーをサポートするオペレーティングシステム

セルフホストランナーアプリケーション用には、以下のオペレーティングシステムがサポートされています。

Linux

  • Red Hat Enterprise Linux 7
  • CentOS 7
  • Oracle Linux 7
  • Fedora 29以降
  • Debian 9以降
  • Ubuntu 16.04以降
  • Linux Mint 18以降
  • openSUSE 15以降
  • SUSE Enterprise Linux (SLES) 12 SP2以降

Windows

  • Windows 7 64-bit
  • Windows 8.1 64-bit
  • Windows 10 64-bit
  • Windows 10 64-bit
  • Windows Server 2016 64-bit
  • Windows Server 2019 64-bit

MacOS

  • macOS 10.13 (High Sierra)以降

セルフホストランナーとGitHubとの通信

セルフホストランナーアプリケーションは、ジョブに関する情報をGitHubと通信します。 アプリケーションは、GitHub Actionsジョブを受け付けて実行するためにマシン上で動作していなければなりません。

セルフホストランナーアプリケーションは、HTTPSプロトコルを使ってGitHubと通信します。 マシンには、GitHubと通信するための適切なネットワークアクセスを持たせなければなりません。

セルフホストランナーとプロキシサーバーを使う

セルフホストランナーがプロキシサーバー経由で通信しなければならないのであれば、セルフホストランナーアプリケーションは以下の環境変数に設定されたプロキシの設定を利用します。

  • https_proxy: HTTPSトラフィックのためのプロキシURL。 必要な場合には、basic認証の認証情報を含めることもできます。 例:

    • http://proxy.local
    • http://192.168.1.1:8080
    • http://username:password@proxy.local
  • http_proxy: HTTPトラフィックのためのプロキシURL。 必要な場合には、basic認証の認証情報を含めることもできます。 例:

    • http://proxy.local
    • http://192.168.1.1:8080
    • http://username:password@proxy.local
  • no_proxy: カンマで区切られた、プロキシを使わないホストのリスト。 no_proxyではホスト名のみが許され、IPアドレスは使用できません。 例:

    • example.com
    • example.com,myserver.local:443,example.org

プロキシの環境変数は、セルフホストランナーアプリケーションの起動時に読み込まれるので、これらの環境変数はセルフホストランナーアプリケーションを設定あるいは起動する前に設定しなければなりません。 プロキシの設定が変更された場合には、セルフホストランナーアプリケーションを再起動しなければなりません。

Windowsマシンで、プロキシ環境変数名で大文字小文字は区別されません。 Linux及びmacOSマシンで、環境変数はすべて小文字にすることをおすすめします。 たとえばhttps_proxyHTTPS_PROXYといったように、大文字と小文字の環境変数をLinuxもしくはmacOSで使った場合、セルフホストランナーアプリケーションは小文字の環境変数を使います。

.envファイルを使用したプロキシ設定

環境変数を設定することが現実的ではない場合、プロキシ設定変数をセルフホストランナーアプリケーションのディレクトリ中の.envという名前のファイルで設定できます。 これはたとえば、ランナーアプリケーションをシステムアカウント下のサービスとして設定したい場合に必要になるかもしれません。 ランナーアプリケーションが起動すると、.env中に設定されたプロキシ設定の変数を読み取ります。

以下に.envプロキシ設定の例を示します。

https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443

パブリックリポジトリでのセルフホストランナーのセキュリティ

パブリックリポジトリでは、セルフホストランナーを使わないことをおすすめします。

パブリックリポジトリのフォークでは、ワークフロー中のコードを実行するプルリクエストが作成されると、セルフホストランナー上で危険なコードが実行される可能性があります。

それぞれのGitHubホストランナーは常にクリーンな隔離された仮想マシンになり、ジョブの実行が終わると破棄されるので、GitHubホストランナーではこれは問題にはなりません。

あなたの自己ホストランナー上で実行される信頼できないワークフローは、あなたのマシンやネットワーク環境に大きなセキュリティリスクをもたらします。これは特に、マシンがジョブにまたがって環境を保持する場合に当てはまります。 リスクには以下のようなものがあります。

  • マシン上での悪意あるプログラムの実行
  • マシンのランナーのサンドボックスからの脱却
  • マシンのネットワーク環境へのアクセスの露出
  • 望まないもしくは危険なデータのマシン上への保存

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください