如何在Ubuntu16.04中用Apache部署Jenkins自動(dòng)化服務(wù)器
Jenkins 是從 Hudson 項(xiàng)目衍生出來的自動(dòng)化服務(wù)器。Jenkins 是一個(gè)基于服務(wù)器的應(yīng)用程序,運(yùn)行在 Java servlet 容器中,它支持包括 Git、SVN 以及 Mercurial 在內(nèi)的多種 SCM(源碼控制工具(Source Control Management))。Jenkins 提供了上百種插件幫助你的項(xiàng)目實(shí)現(xiàn)自動(dòng)化。Jenkins 由 Kohsuke Kawaguchi 開發(fā),在 2011 年使用 MIT 協(xié)議發(fā)布了***個(gè)發(fā)行版,它是個(gè)自由軟件。
在這篇指南中,我會(huì)向你介紹如何在 Ubuntu 16.04 中安裝***版本的 Jenkins。我們會(huì)用自己的域名運(yùn)行 Jenkins,在 apache web 服務(wù)器中安裝和配置 Jenkins,而且支持反向代理。
前提
- Ubuntu 16.04 服務(wù)器 - 64 位
- Root 權(quán)限
***步 - 安裝 Java OpenJDK 7
Jenkins 基于 Java,因此我們需要在服務(wù)器上安裝 Java OpenJDK 7。在這里,我們會(huì)從一個(gè) PPA 倉(cāng)庫(kù)安裝 Java 7,首先我們需要添加這個(gè)倉(cāng)庫(kù)。
默認(rèn)情況下,Ubuntu 16.04 沒有安裝用于管理 PPA 倉(cāng)庫(kù)的 python-software-properties 軟件包,因此我們首先需要安裝這個(gè)軟件。使用 apt 命令安裝 python-software-properties。
- apt-get install python-software-properties
下一步,添加 Java PPA 倉(cāng)庫(kù)到服務(wù)器中。
- add-apt-repository ppa:openjdk-r/ppa
用 apt 命令更新 Ubuntu 倉(cāng)庫(kù)并安裝 Java OpenJDK。
- apt-get update
- apt-get install openjdk-7-jdk
輸入下面的命令驗(yàn)證安裝:
- java -version
你會(huì)看到安裝到服務(wù)器上的 Java 版本。
在 Ubuntu 16.04 上安裝 Java OpenJDK 7
第二步 - 安裝 Jenkins
Jenkins 給軟件安裝包提供了一個(gè) Ubuntu 倉(cāng)庫(kù),我們會(huì)從這個(gè)倉(cāng)庫(kù)中安裝 Jenkins。
用下面的命令添加 Jenkins 密鑰和倉(cāng)庫(kù)到系統(tǒng)中。
- 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
更新倉(cāng)庫(kù)并安裝 Jenkins。
- apt-get update
- apt-get install jenkins
安裝完成后,用下面的命令啟動(dòng) Jenkins。
- systemctl start jenkins
通過檢查 Jenkins 默認(rèn)使用的端口(端口 8080)驗(yàn)證 Jenkins 正在運(yùn)行。我會(huì)像下面這樣用 netstat 命令檢測(cè):
- netstat -plntu
Jenkins 已經(jīng)安裝好了并運(yùn)行在 8080 端口。
已經(jīng)將 Jenkins 安裝到 8080 端口
第三步 - 為 Jenkins 安裝和配置 Apache 作為反向代理
在這篇指南中,我們會(huì)在一個(gè) Apache web 服務(wù)器中運(yùn)行 Jenkins,我們會(huì)為 Jenkins 配置 apache 作為反向代理。首先我會(huì)安裝 apache 并啟用一些需要的模塊,然后我會(huì)為 Jenkins 用域名 my.jenkins.id 創(chuàng)建虛擬主機(jī)文件。請(qǐng)?jiān)谶@里使用你自己的域名并在所有配置文件中出現(xiàn)的地方替換。
從 Ubuntu 倉(cāng)庫(kù)安裝 apache2 web 服務(wù)器。
- apt-get install apache2
安裝完成后,啟用 proxy 和 proxy_http 模塊以便將 apache 配置為 Jenkins 的前端服務(wù)器/反向代理。
- a2enmod proxy
- a2enmod proxy_http
下一步,在 sites-available 目錄創(chuàng)建新的虛擬主機(jī)文件。
- cd /etc/apache2/sites-available/
- vim jenkins.conf
粘貼下面的虛擬主機(jī)配置。
- <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 虛擬主機(jī)。
- a2ensite jenkins
重啟 Apache 和 Jenkins。
- systemctl restart apache2
- systemctl restart jenkins
檢查 Jenkins 和 Apache 正在使用 80 和 8080 端口。
- netstat -plntu
檢查 Apache 和 Jenkins 是否在運(yùn)行
第四步 - 配置 Jenkins
Jenkins 用域名 'my.jenkins.id' 運(yùn)行。打開你的 web 瀏覽器然后輸入 URL。你會(huì)看到要求你輸入初始管理員密碼的頁(yè)面。Jenkins 已經(jīng)生成了一個(gè)密碼,因此我們只需要顯示并把結(jié)果復(fù)制到密碼框。
用 cat 命令顯示 Jenkins 初始管理員密碼。
- cat /var/lib/jenkins/secrets/initialAdminPassword
- a1789d1561bf413c938122c599cf65c9
獲取 Jenkins 管理員密碼
將結(jié)果粘貼到密碼框然后點(diǎn)擊 Continue。
安裝和配置 Jenkins
現(xiàn)在為了后面能比較好的使用,我們需要在 Jenkins 中安裝一些插件。選擇 Install Suggested Plugin,點(diǎn)擊它。
安裝 Jenkins 插件
Jenkins 插件安裝過程:
Jenkins 安裝完插件
安裝完插件后,我們需要?jiǎng)?chuàng)建一個(gè)新的管理員密碼。輸入你的管理員用戶名、密碼、電子郵件等,然后點(diǎn)擊 ‘Save and Finish’。
創(chuàng)建 Jenkins 管理員賬戶
點(diǎn)擊 start 開始使用 Jenkins。你會(huì)被重定向到 Jenkins 管理員面板。
重定向到管理員面板
成功完成 Jenkins 安裝和配置。
Jenkins 管理員面板
第五步 - Jenkins 安全
在 Jenkins 管理員面板,我們需要為 Jenkins 配置標(biāo)準(zhǔn)的安全,點(diǎn)擊 ‘Manage Jenkins’ 和 ‘Configure Global Security’。
Jenkins 全局安全設(shè)置
Jenkins 在 ‘Access Control’ 部分提供了多種認(rèn)證方法。為了能夠控制所有的用戶權(quán)限,我選擇了 ‘Matrix-based Security’。在復(fù)選框 ‘User/Group’ 中啟用 admin 用戶。通過勾選所有選項(xiàng)給 admin 所有權(quán)限,給 anonymous 只讀權(quán)限?,F(xiàn)在點(diǎn)擊 ‘Save’。
配置 Jenkins 權(quán)限
你會(huì)被重定向到面板,如果出現(xiàn)了登錄選項(xiàng),只需輸入你的管理員賬戶和密碼。
第六步 - 測(cè)試一個(gè)簡(jiǎn)單的自動(dòng)化任務(wù)
在這一部分,我想為 Jenkins 服務(wù)測(cè)試一個(gè)簡(jiǎn)單的任務(wù)。為了測(cè)試 Jenkins 我會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的任務(wù),并用 top 命令查看服務(wù)器的負(fù)載。
在 Jenkins 管理員面板上,點(diǎn)擊 ‘Create New Job’。
在 Jenkins 中創(chuàng)建新的任務(wù)
輸入任務(wù)的名稱,在這里我輸入 ‘Checking System’,選擇 Freestyle Project 然后點(diǎn)擊 OK。
配置 Jenkins 任務(wù)
進(jìn)入 Build 標(biāo)簽頁(yè)。在 Add build step,選擇選項(xiàng) Execute shell。
在輸入框輸入下面的命令。
- top -b -n 1 | head -n 5
點(diǎn)擊 Save。
啟動(dòng) Jenkins 任務(wù)
現(xiàn)在你是在任務(wù) ‘Project checking system’ 的任務(wù)頁(yè)。點(diǎn)擊 Build Now 執(zhí)行任務(wù) ‘checking system’。
任務(wù)執(zhí)行完成后,你會(huì)看到 Build History,點(diǎn)擊***個(gè)任務(wù)查看結(jié)果。
下面是 Jenkins 任務(wù)執(zhí)行的結(jié)果。
構(gòu)建和運(yùn)行 Jenkins 任務(wù)
到這里就介紹完了在 Ubuntu 16.04 中用 Apache web 服務(wù)器安裝 Jenkins 的內(nèi)容。