Pages

2012年8月27日月曜日

JenkinsをApacheの背後で動かす

この記事とタイトルは、その多くを以下のJenkins本家の記事から得ました。

Running Jenkins behind Apache

Jenkinsとは

CI(継続的インテグレーション)のための支援ツールとして有名です。実際に用意されている基本の機能は、Web画面で簡単に操作、設定できる拡張cronと理解しても良いかな。 以下は、日本語サイトからの引用です。

Jenkinsとは

Jenkinsは、ソフトウェアのビルドやcronで起動するジョブなどの繰り返しのジョブの実行を監視します。これらのうち、Jenkinsは現在次の2つのジョブに重点を置いています。

  1. 継続的な、ソフトウェアプロジェクトのビルドとテスト: つまり、CruiseControlやDamageControlが行うこと。 一言で言えば、Jenkinsは、容易ないわゆる「継続インテグレーションシステム」を提供し、開発者が変更をプロジェクトに統合でき、ユーザーがより新しいビルドを容易に取得できるようにします。自動化された継続的なビルドは、生産性を向上させます。
  2. 外部で起動するジョブの実行監視: cronによるジョブやprocmailのジョブで、リモートマシンで動作するものも含みます。例えばcronについて言えば、出力をキャプチャーした定期的なメールだけ受信し、こつこつとそれを見ます。おかしくなっていることに気がつくかどうかは、すべてあなた次第です。Jenkinsは出力を保存し、 いつおかしくなったのか容易に把握することができるようになります。

さくらのVPSにインストール

私の環境では、すでにjava ランタイムはインストールしてあります。本家の指示の通り、実行。

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

インストールが終了すると、起動スクリプトは、既にセットされているので、手動で起動してみます。デフォルトの実行ポートは、8080で起動します。 私の場合、8080ポートは制限しているので、ローカルから、w3m等で実行されていることを確認しました。

Apacheの背後で動かす

さて、80ポートは既にapacheが使っていますので、ディレクトリの一つとしてjenkinsが稼働しているようにみせるため、Apacheのproxy機能を使うことにしました。 具体的には、http://mydomain/jenkins で、jenkinsにアクセスできるようにします。

  1. モジュール mod_proxy, mod_http を有効にする (httpd.conf)
  2. jenkinsをプロキシ機能で利用するための設定を、追加(今回は専用の設定ファイル /etc/httpd/conf.d/jenkins.conf)します。

jenkins.confの内容は、以下の通り。

ProxyPass /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyRequests Off
<Proxy http://localhost:8080/jenkins*>
Order deny,allow
Allow from all
</Proxy>

この状態で、apacheとjenkinsを再起動して http://mydomain/jenkinsに、アクセスするとアクセス出来ることは出来るのですが、画像とかcssファイルとかが、読み込まれていません。Proxy利用したため、正しいパスを指定していないことが原因です。

インストールされている /etc/sysconfig/jenkins (初期設定記述)を変更します。ポートの変更とかも、このファイルで行います。 path調整のための変更箇所は以下の通り。

JENKINS_ARGS="--prefix=/jenkins"

あと、サーバ起動時に自動起動するようにしておきます。

# chkconfig --level 345 jenkins on
# chkconfig --list | grep jenkins
jenkins         0:off   1:off   2:off   3:on    4:on    5:on    6:off

セキュリティ

初期状態のままでは、誰でもアクセス出来てしまいますので、以下のサイトを参考にセキュリティ設定を追加しておきました。

jenkins セキュリティ設定

  1. 一般ユーザの権限の制限
  2. 管理者の追加
  3. ユーザ追加を不可に などでしょうか。

それにしても、このロゴは間抜けな感じで好きじゃない。有能な執事を意味しているらしいのだが ...........

0 件のコメント:

コメントを投稿