如何在 Ubuntu16.04 中用 Apache 部署 Jenkins 自動化伺服器
在這篇指南中,我會向你介紹如何在 Ubuntu 16.04 中安裝最新版本的 Jenkins。我們會用自己的域名運行 Jenkins,在 apache web 伺服器中安裝和配置 Jenkins,而且支持反向代理。
前提
- Ubuntu 16.04 伺服器 - 64 位
- Root 許可權
第一步 - 安裝 Java OpenJDK 7
Jenkins 基於 Java,因此我們需要在伺服器上安裝 Java OpenJDK 7。在這裡,我們會從一個 PPA 倉庫安裝 Java 7,首先我們需要添加這個倉庫。
默認情況下,Ubuntu 16.04 沒有安裝用於管理 PPA 倉庫的 python-software-properties 軟體包,因此我們首先需要安裝這個軟體。使用 apt 命令安裝 python-software-properties。
apt-get install python-software-properties
下一步,添加 Java PPA 倉庫到伺服器中。
add-apt-repository ppa:openjdk-r/ppa
用 apt 命令更新 Ubuntu 倉庫並安裝 Java OpenJDK。
apt-get update
apt-get install openjdk-7-jdk
輸入下面的命令驗證安裝:
java -version
你會看到安裝到伺服器上的 Java 版本。
第二步 - 安裝 Jenkins
Jenkins 給軟體安裝包提供了一個 Ubuntu 倉庫,我們會從這個倉庫中安裝 Jenkins。
用下面的命令添加 Jenkins 密鑰和倉庫到系統中。
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list
更新倉庫並安裝 Jenkins。
apt-get update
apt-get install jenkins
安裝完成後,用下面的命令啟動 Jenkins。
systemctl start jenkins
通過檢查 Jenkins 默認使用的埠(埠 8080)驗證 Jenkins 正在運行。我會像下面這樣用 netstat
命令檢測:
netstat -plntu
Jenkins 已經安裝好了並運行在 8080 埠。
第三步 - 為 Jenkins 安裝和配置 Apache 作為反向代理
在這篇指南中,我們會在一個 Apache web 伺服器中運行 Jenkins,我們會為 Jenkins 配置 apache 作為反向代理。首先我會安裝 apache 並啟用一些需要的模塊,然後我會為 Jenkins 用域名 my.jenkins.id 創建虛擬主機文件。請在這裡使用你自己的域名並在所有配置文件中出現的地方替換。
從 Ubuntu 倉庫安裝 apache2 web 伺服器。
apt-get install apache2
安裝完成後,啟用 proxy 和 proxy_http 模塊以便將 apache 配置為 Jenkins 的前端伺服器/反向代理。
a2enmod proxy
a2enmod proxy_http
下一步,在 sites-available
目錄創建新的虛擬主機文件。
cd /etc/apache2/sites-available/
vim jenkins.conf
粘貼下面的虛擬主機配置。
<Virtualhost *:80>
ServerName my.jenkins.id
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://my.jenkins.id/
</Virtualhost>
保存文件。然後用 a2ensite
命令激活 Jenkins 虛擬主機。
a2ensite jenkins
重啟 Apache 和 Jenkins。
systemctl restart apache2
systemctl restart jenkins
檢查 Jenkins 和 Apache 正在使用 80 和 8080 埠。
netstat -plntu
第四步 - 配置 Jenkins
Jenkins 用域名 'my.jenkins.id' 運行。打開你的 web 瀏覽器然後輸入 URL。你會看到要求你輸入初始管理員密碼的頁面。Jenkins 已經生成了一個密碼,因此我們只需要顯示並把結果複製到密碼框。
用 cat
命令顯示 Jenkins 初始管理員密碼。
cat /var/lib/jenkins/secrets/initialAdminPassword
a1789d1561bf413c938122c599cf65c9
將結果粘貼到密碼框然後點擊 Continue。
現在為了後面能比較好的使用,我們需要在 Jenkins 中安裝一些插件。選擇 Install Suggested Plugin,點擊它。
Jenkins 插件安裝過程:
安裝完插件後,我們需要創建一個新的管理員密碼。輸入你的管理員用戶名、密碼、電子郵件等,然後點擊 『Save and Finish』。
點擊 start 開始使用 Jenkins。你會被重定向到 Jenkins 管理員面板。
成功完成 Jenkins 安裝和配置。
第五步 - Jenkins 安全
在 Jenkins 管理員面板,我們需要為 Jenkins 配置標準的安全,點擊 『Manage Jenkins』 和 『Configure Global Security』。
Jenkins 在 『Access Control』 部分提供了多種認證方法。為了能夠控制所有的用戶許可權,我選擇了 『Matrix-based Security』。在複選框 『User/Group』 中啟用 admin 用戶。通過勾選所有選項給 admin 所有許可權,給 anonymous 只讀許可權。現在點擊 『Save』。
你會被重定向到面板,如果出現了登錄選項,只需輸入你的管理員賬戶和密碼。
第六步 - 測試一個簡單的自動化任務
在這一部分,我想為 Jenkins 服務測試一個簡單的任務。為了測試 Jenkins 我會創建一個簡單的任務,並用 top 命令查看伺服器的負載。
在 Jenkins 管理員面板上,點擊 『Create New Job』。
輸入任務的名稱,在這裡我輸入 『Checking System』,選擇 Freestyle Project 然後點擊 OK。
進入 Build 標籤頁。在 Add build step,選擇選項 Execute shell。
在輸入框輸入下面的命令。
top -b -n 1 | head -n 5
點擊 Save。
現在你是在任務 『Project checking system』 的任務頁。點擊 Build Now 執行任務 『checking system』。
任務執行完成後,你會看到 Build History,點擊第一個任務查看結果。
下面是 Jenkins 任務執行的結果。
到這裡就介紹完了在 Ubuntu 16.04 中用 Apache web 伺服器安裝 Jenkins 的內容。
via: https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/
作者:Muhammad Arul 譯者:ictlyh 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive