LoginSignup
1
6

More than 3 years have passed since last update.

EC2に立てたJenkinsのソースコード管理でGitHubを使う方法

Last updated at Posted at 2020-06-29

概要

AWS EC2に立てたJenkinsのソースコード管理でGitHubのprivateリポジトリを使う。
なかなかうまくいかなくてハマったので備忘録を兼ねてメモ。

環境

  • AWS EC2(OS: Amazon Linux 2)
  • Jenkins 2.235.1

1. Jenkinsにgitを認識させる

これに気付かずめっちゃハマった。

  • Jenkinsの管理 > Global Tool Configuration からGitを設定する
    • install済のgitのパスを指定する
    • 自動インストールを選択する
  • どうせgitは使うと思うので、サーバーにgitをinstallして設定した
$ sudo yum install -y git
$ git --version
git version 2.23.3
$ which git
/usr/bin/git

jenkins_git.png

2. 公開鍵と秘密鍵を作成する

  • /var/lib/jenkins/.ssh/に鍵を作成する
    • 公開鍵: id_rsa_github.pub
    • 秘密鍵: id_rsa_github
  • パスフレーズはなしでOK
  • デフォルトだとjenkinsユーザーにスイッチできないのでrootで作成して所有者を変更する
    • /etc/passwd/を見るとjenkinsユーザーは/bin/false
// .sshディレクトリを作成する
$ cd /var/lib/jenkins/
$ sudo mkdir .ssh
$ sudo chmod 700 .ssh/
$ ls -la | grep ssh
drwx------  2 root    root       6 Jun 29 15:08 .ssh

// 鍵を作成する
$ sudo su -
# cd /var/lib/jenkins/.ssh/
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): id_rsa_github
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in id_rsa_github.
Your public key has been saved in id_rsa_github.pub.

// 所有者を変更
# chown jenkins:jenkins id_rsa_github.pub
# chown jenkins:jenkins id_rsa_github
# cd ../
# pwd
/var/lib/jenkins
# chown jenkins:jenkins .ssh/
# ls -la | grep ssh
drwx------  2 jenkins jenkins   52 Jun 29 15:14 .ssh
# exit

3. .ssh/configを作成する

  • id_rsa以外の名前で作成した場合はconfigで設定する必要あり
    • id_rsaの場合はデフォルトで見に行くので不要(のはず)
$ sudo touch .ssh/config
$ sudo vi .ssh/config
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_github
  User git

// 所有者を変更
$ sudo chown jenkins:jenkins .ssh/config

4. GitHubに公開鍵を登録する

  • pullできれば良いので、リポジトリのDeploy Keysに登録する
  • Settings > Deploy keys > Add deploy key github_keys.png

5. ssh接続の確認

  • サーバーからsshが通るか確認しておく
$ sudo -u jenkins ssh -T github.com
Hi tamorieeeen/repositpry_name! You've successfully authenticated, but GitHub does not provide shell access.

6. JenkinsのJobで設定する

  • ソースコード管理でGitを選択
  • リポジトリ
    • リポジトリURL: GitHubのClone with SSHのURL
    • 認証情報: なし
  • 今回はサーバー上でid_rsaを管理しているので認証情報はなしでOK

jenkins_job_git.png

参考

1
6
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
1
6