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

さくらの VPS に Jenkins を入れてみた

More than 5 years have passed since last update.

Abstract

CI (Continuous Integration; 継続的インテグレーション)ツールである、Jenkins (旧: Hudson)を、さくらの VPS サーバ(CentOS、このサーバ)にインストールして、使い始めるところまで設定したときのメモです。

同様の記事は余所にもあるのですが、そのものずばり同じ環境なものが見当たらなかったので、まとめました。

Keywords:
図:Jenkins 公式サイト

Jenkins 公式サイト

0. 環境

0.1. インストール前環境

  • さくらの VPS
  • OS: CentOS release 6.4 (Final)
  • HTTP Server: Apache/2.2.15 (Unix)
  • Java: 未インストール

0.2. インストール後環境

1. Java/Jenkins インストール

1.1. Java インストール

# yum list \*java-1\*
# yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

1.2. Jenkins インストール

参考: http://pkg.jenkins-ci.org/redhat/

# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum install jenkins

1.3. Jenkins 起動

# /sbin/service jenkins start
# curl localhost:8080

なんか動いてるっぽい。

2. Jenkins/Apache 設定(失敗)

※注:2. は失敗例なので、お急ぎの方は、3. までどうぞ。

2.1. Jenkins の設定変更(ポートとか)

# vi /etc/sysconfig/jenkins
/etc/sysconfig/jenkins
JENKINS_PORT="8010"

JENKINS_ARGS="-prefix=/jenkins"

2.2. Apache の設定変更(バーチャルホスト)

# vi /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
<VirtualHost jenkins.(ドメイン名):80>
    ServerAdmin root@localhost
    ServerName jenkins.(ドメイン名)
    <Location /jenkins>
        ProxyPass http://localhost:8010/jenkins
        ProxyPassReverse  http://localhost:8010/jenkins
    </Location>
</VirtualHost>

2.3. Jenkins/Apache 再起動

# /sbin/service jenkins restart
# /sbin/service httpd restart

2.4. ブラウザからアクセスしてみる

http://jenkins.(ドメイン名)/jenkins

Status Code: 404

・・・(;ω;)

2.5. ローカルからアクセスしてみる

# curl localhost:8010

Welcome to Jenkins!

動いてはいるっぽい・・・

3. Jenkins/Apache 設定(成功)

3.1. Jenkins の設定変更(再)

# vi /etc/sysconfig/jenkins
/etc/sysconfig/jenkins
JENKINS_PORT="8010"

<b>JENKINS_ARGS="-prefix=/"</b>

3.2. Apache の設定変更(再)

# vi /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
<VirtualHost jenkins.(ドメイン名):80>
    ServerAdmin root@localhost
    ServerName jenkins.(ドメイン名)
    <Location />
        ProxyPass http://localhost:8010/
        ProxyPassReverse  http://localhost:8010/
    </Location>
</VirtualHost>

3.3. Jenkins/Apache 再・再起動

# /sbin/service jenkins restart
# /sbin/service httpd restart

3.4. 再びブラウザからアクセスしてみる

http://jenkins.(ドメイン名)/

Jenkinsへようこそ! 開始するために新しいジョブを作成してください。

・・・(゚д゚)ウマー

図:Jenkins ダッシュボード(いくつかジョブを追加後)

Jenkins 公式サイト

4. Jenkins 認証設定

4.1. ログイン認証の追加

  • Jenkinsの管理>グローバルセキュリティの設定
  • 「セキュリティを有効化」にチェック
    • アクセス制御>ユーザー情報>「Jenkins のユーザーデータベース」、「ユーザーにサインアップを許可」にチェック
    • アクセス制御>管理権限>「ログイン済みユーザーに許可」にチェック
  • 保存 (トップ画面に戻される)
図:Jenkins の管理>グローバルセキュリティの設定

Jenkins 公式サイト

4.2. ユーザー(=自分)の追加

Jenkins トップから、

  • アカウント登録>サインアップ
  • 「ユーザー名」、「パスワード」、「パスワードの確認」、「フルネーム」、「メールアドレス」を入力して、サインアップ

4.3. ログイン認証の設定変更

この辺り、しくじると誰もログインできなくなってしまうので、要注意。

  • Jenkinsの管理>グローバルセキュリティの設定
  • アクセス制御>ユーザー情報>「ユーザーにサインアップを許可」 のチェックオフ
  • アクセス制御>ユーザー情報>管理権限>「行列による権限設定」 にチェック
  • さっきのユーザー名(自分)を入力して、追加
    • ユーザー名(自分) の行のチェックを全てオン
    • 匿名ユーザー の行のチェックを全てオフ (なってると思う)
  • 保存

4.4. いったん、ログアウトする

  • ログインパネルのみ表示されて、新規のサインアップが出来なくなっている
  • 自分のユーザー名、パスワードでログインできる

となっていれば、OK。

図:Jenkins ログイン画面

Jenkins 公式サイト

・・・と、ひとまずここまで。

References & Thanks

keach
as Web Developer Main Tools: PHP / Laravel / Phalcon / Python / AWS Interests: Machine Learning / IoT / Legal Tech / EdTech ex-Fields: EC / Payment / eCRM / Logistics / Cryptography / Blockchain
http://twitter.com/keach
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