[Ubuntu][Jenkins]インストールとApache連携

Jenkinsを仕事で使っていて、自宅でも使いたいと思ってインストールしてみた。
Jenkins Apache 上で動かす。

Jenkinsのインストール

検索してみるとまず下のコマンドを打つって書いてあることが多いけど、
sudo wget -q -0 - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
gpg: 有効なOpenPGPデータが見つかりません。 というエラーが出て実行できなかった。 そこで、kerserver.ubuntu.comをキーサーバとしてキーを取得することにした。
$ sudo vim /etc/apt/sources.list
deb http://pkg.jenkins-ci.org/debian binary/
$ sudo apt-get update
W: GPG error: http://ppa.launchpad.net jaunty Release: 公開鍵を利用できないため、以下の署名は検証できませんでした:
NO_PUBKEY 1A2B3C4D5E6F7G8H
ここで、必要なキーがでるため、このキーを取得する。
$ gpg --keyserver keyserver.ubuntu.com --recv-keys 1A2B3C4D5E6F7G8H
gpg: 鍵12345678をhkpからサーバーwwwkeys.eu.pgp.netに要求
gpg: 鍵12345678: 公開鍵“Launchpad PPA for TualatriX”を読み込みました
gpg: 処理数の合計: 1
gpg:               読込み: 1  (RSA: 1)
$ gpg --export --armor 1A2B3C4D5E6F7G8H | sudo apt-key add -
OK
これで、認証キーの登録が出来たから、後はjenkinsをインストールする。
$ sudo apt-get update
$ sudo apt-get install jenkins
インストール完了。後はjenkinsの設定ファイルを書き換える。
$ sudo vim /etc/default/jenkins
# port for HTTP connector (default 8080; disable with -1)
HTTP_PORT=9090
$ sudo service jenkins restart
とりあえず、9090にして再起動。
これで、localhost:9090でアクセスできるようになった。

Apacheの設定

次に、リバースプロキシを設定してexample/jenkinsでアクセスできるように設定する。 まずは、jenkinsの設定ファイルを書き換える。
$ sudo vim /etc/default/jenkins
JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/jenkins"
$ sudo service jenkins restart

prefixに/jenkinsを追加する。これでjenkins側での/jenkinsでアクセスする準備が出来た。 mod_proxyを有効にしていなかったら、次のコマンドで有効にしておく。
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_connect
次に、jenkinsのサイト設定をApacheに追加する。
そして、サイトを有効にする
$ sudo vim /etc/apache2/sites-available/jenkins
 <VirtualHost *:80>
     ServerName hameln.server-on.net
     ProxyRequests off
     ProxyPass /jenkins http://localhost:9090/jenkins
     <Location /jenkins>
        AuthType Basic
        AuthName "jenkins"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user

        ProxyPassReverse http://localhost:9090/jenkins
        ProxyPassReverseCookieDomain localhost hameln.server-on.net
        ProxyPassReverseCookiePath / /
        Order allow,deny
        Allow from all
     </Location>
</VirtualHost>
$ cd /etc/apache2/sites-available/
$ sudo a2ensite jenkins
$ sudo /etc/init.d/apache2 restart
これで、
example/jenkins
でアクセスできるようになった!!
zuqqhi2

某Web系の会社でエンジニアをやっています。 学術的なことに非常に興味があります。 趣味は楽器演奏、ジョギング、読書、料理などなど手広くやっています。