ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。
- GitHub Enterprise Server 3.0以降へのアップグレードに関する詳しい情報については「GitHub Enterprise Serverのアップグレード」を参照してください。
- アップグレード後のGitHub Actionsの設定に関する詳しい情報については、GitHub Enterprise Server 3.0のドキュメンテーションを参照してください。
ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
GitHubを使ったセルフホストランナーのステータスのチェック
セルフホストランナーは、リポジトリ、Organization、 GitHub Enterprise Serverのインスタンス上のEnterprise設定で見つかります。 セルフホストランナーを管理するには、セルフホストランナーが追加された場所に応じて以下の権限が必要になります。
-
ユーザリポジトリ: リポジトリのオーナーでなければなりません。
-
Organization: Organizationのオーナーでなければなりません。
-
Organizationのリポジトリ: Organizationのオーナーであるか、リポジトリへの管理アクセス権を持っていなければなりません。
-
Enterprise: GitHub Enterpriseサイト管理者でなければなりません。
-
Organizationもしくはリポジトリ内で、メインページにアクセスして Settings(設定)をクリックしてください。
-
左のサイドバーで、Actionsをクリックしてください。
-
Under "Self-hosted runners", you can view a list of registered runners, including the runner's name, labels, and status.
ステータスは以下のいずれかです。
- Idle: ランナーはGitHub Enterprise Serverに接続されており、ジョブを実行する準備ができています。
- Active: ランナーは現在ジョブを実行しています。
- Offline: ランナーはGitHub Enterprise Serverに接続されていません。 これは、マシンがオフラインになっているか、マシン上でセルフホストランナーアプリケーションが動作していないか、セルフホストランナーアプリケーションがGitHub Enterprise Serverと通信できていないかです。
セルフホストランナーアプリケーションのログファイルのレビュー
セルフホストランナーアプリケーションのステータスと、そのアクティビティをモニタリングできます。 ログファイルは_diag
ディレクトリに保存されており、アプリケーションが起動されるたびに新しいログが生成されます。 ファイル名はRunner_で始まり、その後にアプリケーションが起動された時刻のUTCタイムスタンプが続きます。
ワークフロージョブの実行に関する詳細なログについては、Worker_ファイルについて述べた次のセクションを参照してください。
ジョブのログファイルのレビュー
セルフホストランナーアプリケーションは、処理するジョブごとに詳細なログファイルを生成します。 これらのファイルは_diag
ディレクトリに保存され、ファイル名はWorker_で始まります。
journalctlを使ってのセルフホストランナーアプリケーションのチェック
サービスを利用してアプリケーションを実行しているLinuxベースのセルフホストランナーでは、リアルタイムのアクティビティをモニターするのにjournalctl
が使えます。 デフォルトのsystemdベースのサービスは、以下の命名規則を使います。 actions.runner.<org>-<repo>.<runnerName>.service
この名前は80文字を超える場合には切り捨てられるので、サービス名を見つける方法としては.serviceファイルをチェックするのが良いでしょう。 例:
$ cat ~/actions-runner/.service
actions.runner.octo-org-octo-repo.runner01.service
journalctl
を使って、セルフホストランナーのリアルタイムアクティビティをモニターできます。
$ sudo journalctl -u actions.runner.octo-org-octo-repo.runner01.service -f
この出力例では、runner01
が起動し、testAction
という名前をジョブを受信し、結果のステータスを表示していることがわかります。
Feb 11 14:57:07 runner01 runsvc.sh[962]: Starting Runner listener with startup type: service
Feb 11 14:57:07 runner01 runsvc.sh[962]: Started listener process
Feb 11 14:57:07 runner01 runsvc.sh[962]: Started running service
Feb 11 14:57:16 runner01 runsvc.sh[962]: √ Connected to GitHub
Feb 11 14:57:17 runner01 runsvc.sh[962]: 2020-02-11 14:57:17Z: Listening for Jobs
Feb 11 16:06:54 runner01 runsvc.sh[962]: 2020-02-11 16:06:54Z: Running job: testAction
Feb 11 16:07:10 runner01 runsvc.sh[962]: 2020-02-11 16:07:10Z: Job testAction completed with result: Succeeded
systemdの設定を見るには、サービスファイルを以下で見つけることができます。 /etc/systemd/system/actions.runner.<org>-<repo>.<runnerName>.service
セルフホストランナーアプリケーションサービスをカスタマイズしたい場合、このファイルを直接修正しないでください。 「セルフホストランナーアプリケーションのサービスとしての構成」に述べられている指示に従ってください。
launchdを使ってのセルフホストランナーアプリケーションのチェック
サービスとしてアプリケーションを実行しているmacOSベースのセルフホストランナーでは、リアルタイムのアクティビティをモニターするのにlaunchctl
が使えます。 デフォルトのlaunchdベースのサービスは、以下の命名規則を使います。 actions.runner.<org>-<repo>.<runnerName>
この名前は80文字を超える場合には切り捨てられるので、サービス名を見つける方法としてはランナーのディレクトリ内にある.serviceファイルをチェックするのが良いでしょう。
% cat ~/actions-runner/.service
/Users/exampleUsername/Library/LaunchAgents/actions.runner.octo-org-octo-repo.runner01.plist
svc.sh
スクリプトはlaunchctl
を使ってアプリケーションが動作しているかをチェックします。 例:
$ ./svc.sh status
status actions.runner.example.runner01:
/Users/exampleUsername/Library/LaunchAgents/actions.runner.example.runner01.plist
Started:
379 0 actions.runner.example.runner01
結果の出力には、プロセスIDとアプリケーションのlaunchdサービスの名前が含まれます。
launchdの設定を見るには、サービスファイルを以下で見つけることができます。 /Users/exampleUsername/Library/LaunchAgents/actions.runner.<repoName>.<runnerName>.service
セルフホストランナーアプリケーションサービスをカスタマイズしたい場合、このファイルを直接修正しないでください。 「セルフホストランナーアプリケーションのサービスとしての構成」に述べられている指示に従ってください。
PowerShellを使ってのセルフホストランナーアプリケーションのチェック
サービスとしてアプリケーションを実行しているWindowsベースのセルフホストランナーでは、リアルタイムのアクティビティをモニターするのにPowerShellが使えます。 サービスはGitHub Actions Runner (<org>-<repo>.<runnerName>)
という命名規則を使います。 ランナーのディレクトリ内にある.serviceファイルを調べても、サービスの名前を見つけることができます。
PS C:\actions-runner> Get-Content .service
actions.runner.octo-org-octo-repo.runner01.service
Windowsのサービスアプリケーション(services.msc
)でも、ランナーのステータスを見ることができます。 PowerShellを使ってサービスが動作しているかをチェックできます。
PS C:\actions-runner> Get-Service "actions.runner.octo-org-octo-repo.runner01.service" | Select-Object Name, Status
Name Status
---- ------
actions.runner.octo-org-octo-repo.runner01.service Running
PowerShellを使ってセルフホストランナーの最近のアクティビティをチェックすることができます。 この出力例では、アプリケーションが起動し、testAction
という名前をジョブを受信し、結果のステータスを表示していることがわかります。
PS C:\actions-runner> Get-EventLog -LogName Application -Source ActionsRunnerService
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
136 Mar 17 13:45 Information ActionsRunnerService 100 2020-03-17 13:45:48Z: Job Greeting completed with result: Succeeded
135 Mar 17 13:45 Information ActionsRunnerService 100 2020-03-17 13:45:34Z: Running job: testAction
134 Mar 17 13:41 Information ActionsRunnerService 100 2020-03-17 13:41:54Z: Listening for Jobs
133 Mar 17 13:41 Information ActionsRunnerService 100 û Connected to GitHub
132 Mar 17 13:41 Information ActionsRunnerService 0 Service started successfully.
131 Mar 17 13:41 Information ActionsRunnerService 100 Starting Actions Runner listener
130 Mar 17 13:41 Information ActionsRunnerService 100 Starting Actions Runner Service
129 Mar 17 13:41 Information ActionsRunnerService 100 create event log trace source for actions-runner service
自動アップデートプロセスのモニタリング
セルフホストランナーは、特定のバージョンのしきい値を下回るとジョブを処理できなくなるため、定期的に自動更新プロセスを確認することをお勧めします。 セルフホストランナーアプリケーションは自動的に更新されますが、このプロセスにはオペレーティングシステムやその他のソフトウェアの更新は含まれません。これらの更新を個別に管理する必要があります。
更新のアクティビティは、Runner_ログファイルで見ることができます。 例:
[Feb 12 12:37:07 INFO SelfUpdater] An update is available.
加えて、さらなる情報が_diag
ディレクトリにあるSelfUpdateログファイルにあります。
セルフホストランナー内のコンテナのトラブルシューティング
Dockerがインストールされていることを確認
ジョブがコンテナを必要とするなら、セルフホストランナーはLinuxベースで、Dockerがインストールされていなければなりません。 セルフホストランナーにDockerがインストールされており、サービスが動作中であることを確認してください。
サービスのステータスの確認には、systemctl
が使えます。
$ sudo systemctl is-active docker.service
active
Dockerがインストールされていないなら、Dockerに依存するアクションは以下のエラーで失敗します。
[2020-02-13 16:56:10Z INFO DockerCommandManager] Which: 'docker'
[2020-02-13 16:56:10Z INFO DockerCommandManager] Not found.
[2020-02-13 16:56:10Z ERR StepsRunner] Caught exception from step: System.IO.FileNotFoundException: File not found: 'docker'
Dockerの権限の確認
ジョブが次のエラーで失敗するなら、
dial unix /var/run/docker.sock: connect: permission denied
セルフホストランナーのサービスアカウントがDockerサービスを使う権限を持っているかを確認してください。 systemdの中のセルフホストランナーの設定を調べれば。このアカウントは特定できます。 例:
$ sudo systemctl show -p User actions.runner.octo-org-octo-repo.runner01.service
User=runner-user