2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

JetsonでGitHub ActionsのSelf-hosted Runnerをサービスとして動かす

Last updated at Posted at 2023-06-14

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

タイトルの通りですが、Jetson Xavier NX Developer KitにGitHub ActionsのSelf-hosted Runnerをインストールしたという内容になります。

Jetsonを使おうかという人はGitHub Actionsをインストールするのなんて息をするようにできるので記事がないのかもしれないですね。

1. 環境

機種: Jetson Xavier NX Development Kit
NVIDIA JetPack SDK: Jetpack 5.1.1
Linux: Linux jetsonnx4 5.10.104-tegra #1 SMP PREEMPT Sun Mar 19 07:55:28 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux

1. GitHubでリポジトリーを作成する

割愛します。
PublicでもPrivateでもどちらでもかまいません。

2. Runnerインストール

2-1. Runnerインストールの手順をGitHubで表示

Settings > Actions > Runnersから「New self-hosted runner」をクリック

image.png

2-2. Jetson向けの手順に切り替え

手順が表示されるので、Runner imageで「Linux」を選択、Architectureで「ARM64」を選択

image.png

2-3. 手順通りにダウンロードして展開

  • フォルダー作成
mkdir actions-runner && cd actions-runner
  • Runnerパッケージをダウンロード
curl -o actions-runner-linux-arm64-2.304.0.tar.gz -L 
https://github.com/actions/runner/releases/download/v2.304.0/actions-runner-linux-arm64-2.304.0.tar.gz
  • パッケージが正しいか確認(オプション)
echo "34c49bd0e294abce6e4a073627ed60dc2f31eee970c13d389b704697724b31c6  actions-runner-linux-arm64-2.304.0.tar.gz" | shasum -a 256 -c
  • パッケージチェックサム確認
    以下のようにOKが出ればOK
    image.png

  • 展開

tar xzf ./actions-runner-linux-arm64-2.304.0.tar.gz
  • 展開内容を確認

以下のようになっていればOK
image.png

2-4. 設定

展開したディレクトリで./config.shを実行する
以下のコマンドではなくて、GitHubの手順のコマンドを実行すること

途中インタラクティブに入力を求められるが基本的にはエンターだけでOK。
Runnerを複数動かして、ホスト名が同じだと区別が付かなくなる場合は入力した方が賢明
グループ分けとかもできるようだ

./config.sh --url https://github.com/yourname/your-repository-name --token XXXXXXXXXXXXXXXXXXXXXXX
  • 実行結果

image.png

2-5. 実行

手順では以下の./run.shだけです

./run.sh

しかし、これで動かすとずっとジョブ待ちになってしまってコンソールが奪われてしまうので、サービスとして動かします。
image.png

3. Actions Runnerをサービスとして起動する

3-1. サービスインストール

展開されたディレクトリにあるsvc.shファイルを利用して、systemdファイルを作成します。

sudo ./svc.sh install

実行結果
image.png

ログインしたユーザー以外で動かす場合は、USERNAMEを付けるとよいようです

./svc.sh install USERNAME

Configuring the self-hosted runner application as a service - GitHub Docs

しかし、systemdファイルを作っただけではサービスとして起動していないのでsystemctlコマンドで起動します

3-2. GitHub Runnerサービスを開始する

コマンドで状態を確認する。

systemctl status actions.runner.<YourRepositoryName>-runner.<Hostname>.service

サービス名が分からない場合は、以下のコマンドで出てきたファイル名がサービス名になる

ls -la /etc/systemd/system/actions.runner*

まだ起動していないので以下のようにinactiveでdeadの状態、有効化はされている模様
image.png

以下のコマンドで起動する

sudo systemctl start actions.runner.<YourRepositoryName>-runner.<Hostname>.service

※補足:
svc.shコマンドを使うと、startstatusstopできるそうです

  • 起動
sudo ./svc.sh start
  • ステータス
sudo ./svc.sh status
  • 停止
sudo ./svc.sh stop

Configuring the self-hosted runner application as a service - GitHub Docs
https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service#starting-the-service

3-3. 起動状態を確認

以下のコマンドで起動状態を確認する

sudo systemctl status actions.runner.<YourRepositoryName>-runner.<Hostname>.service
  • 起動状態を確認
    image.png

3-4. GitHub側で確認

以下のようにRunnersで StatusがIdleになっていればOKです。

image.png

以下のようにOfflineだとサービスが落ちているか、接続できていません。

image.png

4. まとめ

JetsonでもGitHub Runnerを動かせました。
サービスとして動かせたので再起動後も自動的にRunnerが起動して利用することができます。

5. 参考資料

GitHub Actionsでself-hosted runnerを使ってみる - とことんDevOps | 日本仮想化技術が提供するDevOps技術情報メディア
https://devops-blog.virtualtech.jp/entry/20220926/1664160391

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?