Ubuntu上のJenkins + Apacheをhttps(ssl)で動かす。
参考
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache
http://www.zzorn.net/2009/11/setting-up-hudson-on-port-80-on-debian.html
動機
さくらインターネットのVPSでJenkins(hudson)をセキュアに動かしたい。
他にもすでにアプリケーションが動いている(redmine)。
手順
Jenkinsのインストール
Installing Jenkins on Ubuntu - Jenkins - Jenkins Wikiのまんま
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo echo "deb http://pkg.jenkins-ci.org/debian binary/" > /etc/apt/sources.list.d/jenkins.list sudo aptitude update sudo aptitude install jenkins
JenkinsのURL prefix 変更
http://www.zzorn.net/2009/11/setting-up-hudson-on-port-80-on-debian.htmlを参考に
/etc/default/jenkinsを編集して最終行を
JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/jenkins"
に変更
sudo /etc/init.d/jenkins restart
Apacheのインストールと設定変更
Running Jenkins behind Apache - Jenkins - Jenkins Wikiを参考に
sudo aptitude install apache2 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod vhost_alias
/etc/apache2/site-available/default-sslに
ProxyRequests Off ProxyPreserveHost On SSLProxyEngine On <Proxy http://localhost:8080/jenkins*> Order deny,allow Allow from all </Proxy> ProxyPass /jenkins http://localhost:8080/jenkins ProxyPassReverse /jenkins http://localhost:8080/jenkins ProxyPassReverse /jenkins http://hoge/jenkins
を追加(場所はVirtualHost内)
hogeはIPアドレスを指定(DNSに登録してないので)
apache2ctl restart
でhttps://hoge/jenkinsに接続すればOK
注意点
JenkinsのURL prefix 変更を忘れているとRunning Jenkins behind Apache - Jenkins - Jenkins Wiki通りにやっても動かないので注意が必要。(これで少しはまった)
apacheの設定は/etc/apache2/site-available/default-sslに直接書かずに/etc/apache2/site-available/jenkinsなどを作って
sudo a2ensite jenkins
した方が良さそうだが、自分はうまく動かなかった。
動いた人は設定を教えてくださーい!!