前提条件
- Jenkinsが導入されたシステム環境
参考:Ubuntu に Docker で Jenkins 導入( Installation Failures 対策)
JetsonにJenkins向けユーザー作成
別にセットアップされた、Jenkinsシステムより、NVIDIA Jetson Nanoを管理対象と資するために、Jetson NanoにJenkinsから操作する用のユーザーを作成します。
- Jetson Nanoに新規ユーザー作成
- Jenkins向けユーザーのsudoコマンド設定 パスワード
- Jenkins向けユーザーでのGitHubからのPull設定
1. Jenkins向けユーザーを作成
NVIDIA Jetson NanoにJenkinsユーザーを作成します。
$ sudo useradd -m -s /bin/bash jenkins $ sudo passwd jenkins Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
2. Jenkins向けユーザーのSudoコマンド設定
Jenkinsユーザーで、各種スクリプトを実行するので、sudoが簡単に実行出来るように設定します。
※ 全体的にパスワードなしでのsudoを許可しているので、利用するコマンドごとの設定や、各種設定ファイルのアクセス権などを環境に合わせて設定し、セキュリティ対策を行って下さい。
$ cd /etc/sudoers.d/ $ sudo vi jenkins
作成するjenkinsファイルへの記載内容
Defaults:jenkins !requiretty jenkins ALL=(ALL) NOPASSWD:ALL
3. Jenkins向けユーザーでのGitHubからのPull設定
Jenkinsを利用して、Githubに新しいソースコードがコミットされた際に、Githubより新規ソースコードの通知をトリガーとして、Jenkinsのタスクを実行させます。
Githubへの新規コミットをトリガーに、ジャンケンシステムを構成するメインのIntel NUC Ubuntuサーバー、Raspberry Pi、NVIDIA Jetson Nanoに最新のソースコードが自動的にデプロイ(Pull)される環境を構築しました。
デプロイ前に、簡単なテストなども自動化することが出来ます。
設定には、Jenkinsユーザー向けのSSHキーをNVIDIA Jetson Nanoで作成し、作成したSSHキーをGithubに登録します。GithubにSSHキーが登録出来たら、NVIDIA Jetson NanoからGithubへのアクセスを確認します。
Jetson NanoでSSHキー作成
Jenkinsユーザー向けのSSHキーを作成します。
このSSHキーをGithubに登録します。
Githubに登録することにより、Jenkinsユーザーを用いて、Githubの操作が可能になります。
$ sudo su jenkins $ cd /home/jenkins/ $ mkdir .ssh jenkins@jetson02:~$ 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: The key's randomart image is:
GithubへSSHキーの登録と接続確認
https://github.com/settings/keys で id_rsa.pub の内容を登録します。
NVIDIA Jetson NanoからGithubへ接続確認
最後に、対象のサーバーより接続確認を行います。
ssh -T git@github.com