上個月寫過一篇如何設定 Nginx + Jenkins 文章,可以參考: Jenkins + Nginx User Auth,這次筆記 Jenkins + Apache 設定方式
安裝 Jenkins
在 Ubuntu 環境,可以直接參考 Installing Jenkins on Ubuntu
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - $ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' $ sudo apt-get update $ sudo apt-get install jenkins
設定 Apache
如果您是需要用一個特定 domain 也就是 jenkein.example.com,沒有 sub folder,你可以透過底下設定
啟用 Apache proxy 模組
$ a2enmod proxy $ a2enmod proxy_http
Apache virtual host 部份加入底下設定
ProxyRequests OffOrder deny,allow Allow from all ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080
設定到這邊,重新啟動 Apache 即可,如果你是使用 sub folder 的方式,有就是透過 www.example.com/jenkins 方式瀏覽,請換成底下設定
ProxyRequests OffOrder deny,allow Allow from all ProxyPreserveHost On ProxyPass /jenkins http://127.0.0.1:8080/jenkins
但是你會發現 css, js, image 都讀取錯誤。這時候請修改 /etc/default/jenkins 將 JENKINS_ARGS 加入 –prefix 設定
JENKINS_ARGS="--prefix=$PREFIX --httpListenAddress=127.0.0.1 --webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
重新啟動 Jenkins 及 Apache 即可。最後透過 htpasswd 將 jenkins web 目錄鎖起來
AuthType basic AuthName "jenkins" AuthUserFile "/etc/apache2/conf/.htpasswd" Require valid-user
See also
- 為什麼我用 Drone 取代 Jenkins 及 GitLab CI
- 2017 COSCUP 研討會: Gitea + Drone 介紹
- Drone 自動觸發 GitLab CI 或 Jenkins 任務
- Cronjob 搭配 Drone 服務
- Debian/Ubuntu 的 update-rc.d 使用教學
- 在 Jenkins 跑 Golang 測試
- OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778
- 在 Debian 7.8 安裝 Gitlab 筆記
- Debian 7.x Install PHP 5.5 或 5.6 版本
- 解決在 Ubuntu 系統下 Chrome 瀏覽器亂碼