Jenkins Apache 上で動かす。
Jenkinsのインストール
検索してみるとまず下のコマンドを打つって書いてあることが多いけど、gpg: 有効なOpenPGPデータが見つかりません。 というエラーが出て実行できなかった。 そこで、kerserver.ubuntu.comをキーサーバとしてキーを取得することにした。sudo wget -q -0 - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
ここで、必要なキーがでるため、このキーを取得する。$ 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
これで、認証キーの登録が出来たから、後はjenkinsをインストールする。$ 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
とりあえず、9090にして再起動。$ sudo vim /etc/default/jenkins # port for HTTP connector (default 8080; disable with -1) HTTP_PORT=9090 $ sudo service jenkins restart
これで、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を有効にしていなかったら、次のコマンドで有効にしておく。
次に、jenkinsのサイト設定をApacheに追加する。$ sudo a2enmod proxy $ sudo a2enmod proxy_http $ sudo a2enmod proxy_connect
そして、サイトを有効にする
これで、$ 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
でアクセスできるようになった!!