前提条件
JenkinsとGithubを連携
Jenkinsを利用して、Githubに新しいソースコードがコミットされた際に、Githubより新規ソースコードの通知をトリガーとして、Jenkinsのタスクを実行させます。
私は、Githubへの新規コミットをトリガーに、ジャンケンシステムを構成するメインのIntel NUC Ubuntuサーバー、Raspberry Pi、NVIDIA Jetson Nanoに最新のソースコードが自動的にデプロイ(Pull)される環境を構築しました。
デプロイ前に、簡単なテストなども自動化することが出来ます。
Jenkins向けユーザーを作成
Raspberry PiやNVIDIA JetsonにJenkinsユーザーを作成します。
@raspberrypi:~ $ sudo useradd -m -s /bin/bash jenkins
@raspberrypi:~ $ sudo passwd jenkins
新しいパスワード:
新しいパスワードを再入力してください:
passwd: パスワードは正しく更新されました
Sudo設定
Jenkinsユーザーで、各種スクリプトを実行するので、sudoが簡単に実行出来るように設定します。
※ 全体的にパスワードなしでのsudoを許可しているので、利用するコマンドごとの設定や、各種設定ファイルのアクセス権などを環境に合わせて設定し、セキュリティ対策を行って下さい。
@raspberrypi:~ $ cd /etc/sudoers.d/
@raspberrypi:/etc/sudoers.d $ sudo vi jenkins
$ cat << EOS > /etc/sudoers.d/jenkins
Defaults:jenkins !requiretty
jenkins ALL=(ALL) NOPASSWD:ALL
EOS
Defaults:jenkins !requiretty
jenkins ALL=(ALL) NOPASSWD:ALL
SSHキー作成
Jenkinsユーザー向けのSSHキーを作成します。
このSSHキーをGithubに登録します。
Githubに登録することにより、Jenkinsユーザーを用いて、Githubの操作が可能になります。
jenkins@raspberrypi:/ $ sudo su jenkins
jenkins@raspberrypi:/ $ cd /home/jenkins
jenkins@raspberrypi:~ $ mkdir .ssh
jenkins@raspberrypi:~ $ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jenkins/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkins/.ssh/id_rsa.
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9QoADCZcq+4jyOWd3QeAy8av7K2riVNTK6F+TlQXU78 jenkins@raspberrypi
The key's randomart image is:
GithubへSSHキーの登録と接続確認
https://github.com/settings/keys で id_rsa.pub の内容を登録します。
最後に、対象のサーバーより接続確認を行います。
ssh -T git@github.com
seeed studio
¥10,980 (2025/07/01 22:51:20時点 Amazon調べ-詳細)
NVIDIA
¥19,000 (2021/08/19 16:46:56時点 Amazon調べ-詳細)
インテル
¥89,000 (2023/02/22 12:22:03時点 Amazon調べ-詳細)