Help us understand the problem. What is going on with this article?

[CI] AWS EC2にJenkinsをインストールして、GitHubと連携させる

More than 5 years have passed since last update.

Jenkinsによる継続的インテグレーション(Continuous Integration: CI)環境をEC2上に構築します。

EC2にJenkinsをインストール

EC2インスタンスに接続

ユーザ名ec2-userで、EC2インスタンスにSSH接続
※SSH接続の方法は別途検索してください。

$ ssh ec2-user@XX.XX.XX.XX(JenkinsをインストールしたサーバのIPアドレス:今回の場合は、EC2インスタンスのPublic IP) -i .ssh/hoge_key(公開鍵)

Jenkinsのインストール

Javaがインストールされているか確認

$ yum list installed
java-1.7.0-openjdk.x86_64

Jenkinsをインストール

$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo yum install jenkins

jenkinsを起動

$ sudo service jenkins start

自動起動ON

$ sudo chkconfig jenkins on

Jenkinsの動作確認

  1. ブラウザからhttp://XX.XX.XX.XX(JenkinsをインストールしたサーバのIPアドレス:今回の場合は、EC2インスタンスのPublic IP):8080にアクセス ⇒ JenkinsのDashboardが表示される
  2. コマンドラインからJenkinsの動作状況を確認
 $ sudo service jenkins status

JenkinsとGithubの連携設定

パッケージを最新の状態にする

$ sudo yum update

Gitのインストール

$ sudo yum -y install git

Git Pluginのインストール

Manage jenkins > Manage Plugins > "Available" tab > Install

Jenkins用のGithubアカウントを作成

Jenkinsがリポジトリからソースコードを取得してきたり、テスト結果をGitHubに通知するためのJenkins専用GitHubアカウントを作成します。

注:このとき公開鍵認証に必要なSSH keyのパスフレーズは空で設定しましょう!

$ ssh-keygen -t rsa -C "hoge@XXXX.co.jp"

Jenkinsユーザの設定

vimでfalseをbashに変更する

$ cat /etc/passwd/
jenkins:x:220:499:Jenkins Continuous Build server:/var/lib/jenkins:/bin/false
$ sudo vim /etc/passwd
jenkins:x:220:499:Jenkins Continuous Build server:/var/lib/jenkins:/bin/bash

jenkinsフォルダの権限を変更

$ ls -la /var/lib/jenkins
$ chown -R jenkins:jenkins /var/lib/jenkins

Jenkinsユーザでログイン

$ sudo su jenkins

jenkinsユーザでログイン後はbash-4.1$と表示されるようになります。

公開鍵を作成

bash-4.1$ cd /var/lib/jenkins/.ssh/
bash-4.1$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
be:0d:a3:a8:18:3d:3c:c6:1c:89:5e:1b:a2:b2:2a:aX jenkins@ip-XX-XX-XX-XXX
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
+-----------------+

作成した公開鍵(id_rsa.pub)を、Jenkins用GitHubアカウントに追加(add key)

jenkinsユーザのgit設定

/var/lib/jankinsディレクトリ下でないとfatal: failed to stat '.': Permission deniedになるので注意!

user.emailとuser.nameにはJenkins用アカウントのemailとuser名を入力

bash-4.1$ git config --global user.email "hoge@XXXXX.co.jp"
bash-4.1$ git config --global user.name "hoge"

GitHubへのssh接続

$ sudo -u jenkins ssh -T git@github.com

GitHub pull request builder pluginのインストール

Git Pluginの設定

Manage Jenkins > Configure System > Git plugin
Global Config user.name Value: hoge
Gloal Config user.email Value: hoge@XXXXX.co.jp

Github pull requests builderの設定

> Advanced setting
Access Token: 下部の"Username"と"Password"を入力し、"Create access token"をクリックして取得したAccess Tokenを入力
Admin list: 権限を与えたいユーザ名を入力

ジョブの作成と設定

各種パラメータ設定

Github project: GitHubリポジトリのURLを記入
Source Code Management
Repository URL: SSHのリポジトリURLを記入(ex. git@github.com:hoge/hoge.git)
> Advanced
Refspec: +refs/pull/*:refs/remotes/origin/pr/*
Branch to build > Branch Specifier (blank for defalut): ${sha1}
Build Trigger
Github pull requests builder: check

Reference

pakiran
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした