【Github】Github Actions ~ Self-hosted runners / 設定関連 ~

◾️はじめに

Self-hosted runnersの設定について、徐々にメモっていく。

目次

【0】Self-hosted runnersの設定
【1】設定 を削除するには
【2】更新を無効にするには
【3】タグを設定するには

【0】Self-hosted runnersの設定

Options Explanations Memo
--url <REPOSITORY_URL> Github repository URLを指定
--token <REGISTRATION_TOKEN> トークンを指定
--labels <タグ> タグを設定する 複数の場合、カンマ区切り。詳細は「【3】タグを設定するには」参照
--unattended インタラクティブモードを無効化 通常実行だといくつか質問形式的でコマンドを求められるがそれを無効化するオプション
--replace 上書き
--disableupdate Self-hosted runnerの最新バージョンへの自動アップデートを無効にする 「【2】更新を無効にするには」参照

【1】設定 を削除するには

https://zenn.dev/ykws/scraps/c65c13f458d1c2#comment-2e81f10bb4c794

でも書かれているが、Tokenを再設定しようとしたが、
〜〜〜〜
Cannot configure the runner because it is already configured.
To reconfigure the runner, run 'config.cmd remove'
 or './config.sh remove' first.
〜〜〜〜
って言われたので、「./config.sh remove」した。

ただ、それだとエラーになるので、以下のサイトを参考に
以下「対応案」で対応した。

https://qiita.com/okaponta_/items/b3eda8181a07c43baf7c
対応案

./svc.sh stop
sudo ./svc.sh uninstall
rm .runner
./config.sh remove

【2】更新を無効にするには

* 以下の関連記事を参照のこと

Github Actions ~ Self-hosted runners / 自動更新OFF ~   https://dk521123.hatenablog.com/entry/2025/01/08/201947

【3】タグを設定するには

https://docs.github.com/ja/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners#programmatically-assign-labels

./config.sh --url <REPOSITORY_URL> ¥
--token <REGISTRATION_TOKEN> --labels gpu

# 複数の場合
./config.sh --url <REPOSITORY_URL> ¥
--token <REGISTRATION_TOKEN> --labels gpu,x64,linux

参考文献

https://qiita.com/h_tyokinuhata/items/7a9297f75d0513572f4a

関連記事

Github Actions ~ Self-hosted runners / 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/18/204119
Github Actions ~ Self-hosted runners / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2024/02/07/002736
Github Actions ~ Self-hosted runners / 自動更新OFF ~   https://dk521123.hatenablog.com/entry/2025/01/08/201947

【Github】Github Actions ~ Self-hosted runners / 自動更新OFF ~

◾️はじめに

https://dk521123.hatenablog.com/entry/2024/12/31/184145

で、Github action の Self-hosted runner がサービス(デーモン)で立ち上がっていて
デgフォルトだと自動更新が入り、
それによって環境によっては止まる場合があった。

そこで、今回は、自動更新の無効化する方法などについて、メモっておく。

目次

【1】おさらい:runnerの自動更新
【2】runnerの自動更新OFF
 1)使い方
【3】おまけ:自動更新により発生したトラブル

【1】おさらい:runnerの自動更新

* Self-hosted runnerは、実行中に自動アップデートされている
 => 以下のサイトでも同じことを言っている。

https://zenn.dev/snowcait/articles/33ff408b7e8985

【2】runnerの自動更新OFF

https://github.blog/changelog/2022-02-01-github-actions-self-hosted-runners-can-now-disable-automatic-updates/

の「--disableupdate」が使えそう。

https://github.com/actions/runner/blob/main/src/Runner.Listener/Runner.cs

より抜粋
〜〜〜〜〜
Config Options:
...
--disableupdate 
       Disable self-hosted runner automatic update to the latest released version
訳:セルフホスト・ランナーの最新リリース・バージョンへの自動アップデートを無効にする
〜〜〜〜〜

1)使い方

https://github.com/orgs/community/discussions/50112

# Create the runner and start the configuration experience
./config.sh --url https://github.com/your-user/your-repo ¥
--token {YOUR_TOKEN} --disableupdate

【3】おまけ:自動更新により発生したトラブル

* 原因の切り分けなどの詳細は、以下の関連記事を参照のこと。

Github Actions ~ Self-hosted runners で Offline だった場合の対応について考える ~
https://dk521123.hatenablog.com/entry/2024/12/31/184145

* journalctlログ調査により、以下がわかった。

[1] Self-hosted runnerは、実行中に自動アップデートされている
 => 以下のサイトでも同じことを言っている。

https://zenn.dev/snowcait/articles/33ff408b7e8985

[2] 現象が発生したバージョンは、
 「Current runner version: '2.231.0'」に更新されていた
 => 以下は、公式のChange log。

https://github.com/actions/runner/releases/tag/v2.321.0

によると
〜〜〜〜
Remove node16 from the runner. by @TingluoHuang in #3503
〜〜〜〜
という修正がなされており、

https://github.com/actions/runner/blob/fde5227fbfe9c61b7861cc959ebbbba62af4754b/src/Misc/layoutbin/runsvc.sh#L13C1-L13C17

をみると、Nodeのバージョンが「nodever="node20"」に固定されている。
このNodeバージョンに合わないSelf-hosted runner の環境だと
サービスが立ち上がらないかと予想。

Self-hosted runner(今回は、Amazon Linux2)の
System log(/var/log/messages)を確認したところ
以下のようなエラーになっていた。

→そこで、以下の2点を行ったところ、Actions runnerサービスが起動した。
 (原因は、更新によるもので、ほぼ間違いないかと、、、)
 1) シンボリックリンク「externals」を無理やり
  前のversion(今回の場合、「externals.2.320.0」)に変更
 2) runsvc.shの「nodever="node20"」を前バージョンに行くように修正
  (実際の修正方法は、Github のChangelog参照)

/var/log/messages

runsvc.sh: ./externals/node20/bin/node: /actions-runner/externals/node20/bin/node: /lib64/libm.so.6:
version `GLIB_2.27` not found
 (required by /actions-runner/externals/node20/bin/node)
runsvc.sh: ./externals/node20/bin/node: /actions-runner/externals/node20/bin/node: /lib64/libm.so.6:
version `GLIB_2.28` not found
 (required by /actions-runner/externals/node20/bin/node)
systemd: Unit actions.xxx.service entered failed state.
systemd: actions.xxx.service failed.

関連記事

Github Actions ~ Self-hosted runners / 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/18/204119
Github Actions ~ Self-hosted runners / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2024/02/07/002736
Github Actions ~ Self-hosted runners / 設定関連 ~
https://dk521123.hatenablog.com/entry/2025/01/09/132401
Github Actions ~ Self-hosted runners で Offline だった場合の対応について考える ~
https://dk521123.hatenablog.com/entry/2024/12/31/184145
lnコマンド / update-alternativesコマンド
https://dk521123.hatenablog.com/entry/2024/02/25/233428

【GitHub】Self-hosted Runner in CodeBuild ~ 入門編 ~

■ はじめに

GitHub Self-hosted Runner in AWS CodeBuild
ってのがあることを知ったのでメモ。

目次

【1】GitHub Self-hosted Runner in AWS CodeBuild
 1)補足:GitLab の Runner サポート
【2】設定手順例
 Step 1: Create a CodeBuild project with a webhook
 Step 2: Update your GitHub Actions workflow YAML
 Step 3: Review your results

【1】GitHub Self-hosted Runner in AWS CodeBuild

* 2024年4月24日に、マネージド型のビルドサービスであるCodeBuildが
 GitHub Actionホストランナーをサポートされた

https://aws.amazon.com/jp/about-aws/whats-new/2024/04/aws-codebuild-managed-github-action-runners/

1)補足:GitLab の Runner サポート

* GitLab もサポートしている

https://aws.amazon.com/jp/about-aws/whats-new/2024/09/aws-codebuild-managed-gitlab-runners/

【2】設定手順例

* 以下の公式ドキュメントを参考にするといい

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/action-runner.html

Step 1: Create a CodeBuild project with a webhook

[1] CodeBuild を表示

* 以下のサイトからAWSマネージメントコンソールの「CodeBuild」を表示する

https://console.aws.amazon.com/codesuite/codebuild/home

[2] ビルドプロジェクトを作成

* 以下のサイトの画面キャプチャーも参考に。。。

https://developer.mamezou-tech.com/blogs/2024/04/29/githubactions-codebuild-runner/
https://developers.cyberagent.co.jp/blog/archives/47677/

1) 「Source」で以下を入力
 + Source provider: [GitHub]を選択
 + Repository: [Repository in my GitHub account]を選択
 + Repository URL: https://github.com/<user-name>/<repository-name>
2) 「Primary source webhook events」 で以下を入力
 + Event type: [WORKFLOW_JOB_QUEUED]
3) 「Environment」で以下を入力
 + provisioning mode: [OnDemand]を選択
 + Environment Image: [Managed Image]を選択
 (Imageについては、以下「EC2 コンピューティングイメージ」を参照)
 + Computing: [EC2]を選択
4) 「Buildspec」で以下を入力
 + [Insert Build command]を選択
5) [Create build project]を選択

EC2 コンピューティングイメージ
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/ec2-compute-images.html

Step 2: Update your GitHub Actions workflow YAML

* Github Actions を実装する

サンプル

name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      # codebuild-<プロジェクト名>-${{ github.run_id }}-${{ github.run_attempt }}
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      # - image:arm-3.0
      # - instance-size:small
    steps:
      - run: echo "Hello World!"

Step 3: Review your results

* GitHub actionsをPushなどして動かして動作確認する

参考文献

https://qiita.com/k-kojima-yumemi/items/573bda88d0fb607b3224
今後役に立ちそうなサイト
https://matsudamper.hatenablog.com/entry/2023/11/19/064050
https://zenn.dev/bm_sms/articles/1604de9006d84d
with terraform
https://atsum.in/aws/codebuild-as-self-hosted-runner/

関連記事

Github Actions ~ Self-hosted runners / 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/18/204119
Github Actions ~ Self-hosted runners / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2024/02/07/002736
Github Actions ~ Self-hosted runners で Offline だった場合の対応について考える ~
https://dk521123.hatenablog.com/entry/2024/12/31/184145
CodeBuild ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/01/21/221122