Jenkins 是一個可擴展的持續集成引擎。
主要用於:
- 持續、自動地構建/測試軟件項目。
- 監控一些定時執行的任務。 Jenkins擁有的特性包括:
- 易於安裝-只要把jenkins.war部署到servlet容器,不需要數據庫支持。
- 易於配置-所有配置都是通過其提供的web界面實現。
- 集成RSS/E-mail通過RSS發佈構建結果或當構建完成時通過e-mail通知。
- 生成JUnit/TestNG測試報告。
- 分佈式構建支持Jenkins能夠讓多臺計算機一起構建/測試。
- 文件識別:Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。
- 插件支持:支持擴展插件,你可以開發適合自己團隊使用的工具。
jenkins 官方網址:https://jenkins.io/
本文主要介紹了在linux 下如何部署jenkins.以及通過jenkins 如何發佈php.以及java 程序,利用jenkins 來實現郵件告警及時瞭解項目發佈過程中產生的問題。
一.jenkins 部署安裝:
1.Linux部署Jenkins兩種方法的介紹
方法1:WAR包 步驟簡介: wget在官方下載jenkins.war的包到tomcat下 修改tomcat的server.xml配置,重啓tomcat 調整防火牆規則,允許端口訪問 瀏覽器訪問:http://x.x.x.x:port 方法2:YUM安裝 步驟簡介: 添加官方的rpm包源,進行yum安裝 編輯jenkins的/etc/init.d/jenkins程序文件,添加java路徑 編輯jenkins的/etc/sysconfig/jenkins配置文件,修改端口、系統運行賬戶 編輯/etc/profiles文件添加jenkins的環境變量 啓動jenkins服務service jenkins start 瀏覽器訪問:http://x.x.x.x:port 二、兩種安裝方法的對比 WAR包安裝 優點: 只有一個war包,輕量級部署 配置過程簡單,無需額外配置 對於已經部署好tomcat+jdk環境的Server,可以在10分鐘內就搭建好Jenkins平臺,適用於快速部署和使用; 適合新手,或者對Linux不太熟的人員 缺點: 因爲是官方直接打包好的.war包,修改配置容易出現報錯 運行不穩定,增加插件、修改權限等,很容易崩潰 重啓jenkins服務不太方便(java -jar /xx/xx/jenkins.war --httpPort=8080) YUM安裝 優點: 對於熟悉Linux服務配置的人員來說,輕車熟路的配置流程 可以根據Server環境,定製化的修改jenkins配置文件 可以很方便的查看服務運行狀態(state)、日誌、排錯、重啓服務 適用於Linux老司機 缺點: 配置的過程稍複雜,要修改的文件和參數 反覆查看日誌中的ERROR,根據模糊的錯誤信息,調整環境和配置 對於Linux新手來說,配置起來有點難,Troubleshouting有點懵
2.利用tomcat來部署jenkins
部署tomcat (1)安裝jdk 這裏的jdk 使用的是jdk-8u77-linux-x64.rpm rpm -ivh jdk-8u77-linux-x64.rpm (2)環境變量 export JAVA_HOME=/usr/java/jdk1.8.0_77/ # JAVA_HOME變兩個路徑 export JAVA_BIN=/usr/java/jdk1.8.0_77/bin export PATH=${JAVA_HOME}bin:$PATH # 環境變量 [root@caosm03 caosm]# java -version # 查看版本 java version "1.8.0_77" Java(TM) SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) (3)部署tomcat 這裏使用的tomcat apache-tomcat-8.0.30.tar.gz [root@caosm03]# tar -zxvf apache-tomcat-8.0.30.tar.gz -C /usr/local [root@caosm03 local]# mv apache-tomcat-8.0.30 tomcat [root@caosm03 local]# cd /usr/local/tomcat/bin/ [root@caosm03 bin]# ./startup.sh Using CATALINA_BASE: /usr/local/src/tomcat [2017/12/13 15:55:02] Using CATALINA_HOME: /usr/local/tomcat [2017/12/13 15:55:02] Using CATALINA_TMPDIR: /usr/local/tomcat/temp [2017/12/13 15:55:02] Using JRE_HOME: /usr/java/jdk-1.8.0.77/ [2017/12/13 15:55:02] Using CLASSPATH: /usr/local/src/tomcat/bin/bootstrap.jar:/usr/local/src/tomcat/bin/tomcat-juli.jar 啓動報錯:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path 解決方案: <Server port="8005" shutdown="SHUTDOWN"> <!--Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> --> 把這一句註釋掉 不影響使用,解決這個問題非常蛋疼!!! 對端口進行修改 我這裏改成了8090 對server.xml 進行修改 <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 修改端口後要進行重啓tomcat 啓動進行測試:http://192.168.24.130:8090 啓動正常
(4)準備安裝包,安裝jenkins 這裏使用的安裝是從官網下載的war 包 https://jenkins.io/ 把安裝包放到webapp下面 [root@caosm03 webapps]# ls docs examples host-manager jenkins jenkins.war manager ROOT [root@caosm03 webapps]#root@caosm03 webapps]#java -jar jenkins.war --httpPort=8090 & 進行啓動 指定端口 直接訪問即可! http://192.168.24.130:8090 默認用戶admin 密碼:[root@caosm03 ~]# cat /root/.jenkins/secrets/initialAdminPassword fb0cb152dc454586a217c46710ecc242
安裝中文插件 https://updates.jenkins.io/download/plugins/locale/1.2 在/jenkins/pluginManager/advanced/ 上傳插件,點擊上傳 ,重新刷新,Jenkins 恢復中文界面 http://updates.jenkins-ci.org/download/plugins/
安裝插件 可選插件報錯 這裏需要選擇高級 升級站點: http://updates.jenkins-ci.org/update-center.json 立即獲取 重新啓動tomcat
相關配置
# Jenkins安裝目錄 /var/lib/jenkins # Jenkins配置文件地址 cat /etc/sysconfig/jenkins # 三個比較重要的配置 JENKINS_HOME是Jenkins的主目錄,Jenkins工作的目錄都放在這裏,Jenkins儲存文件的地址,Jenkins的插件,生成的文件都在這個目錄下。 JENKINS_USER是Jenkins的用戶,擁有$JENKINS_HOME和/var/log/jenkins的權限。 JENKINS_PORTJENKINS_PORT是Jenkins的端口,默認端口是8080。
報錯解決如下:
jenkins報錯:Problem accessing /jenkins/. Reason: HTTP ERROR 404
這是一個Jenkins的Bug。臨時解決方法是:在瀏覽器中手工輸入:http://<ip>:<port> 不要訪問"/jenkins"這個路徑。
jenkins 報錯: office This jenkins instance appears to be offline.
[root@caosm98 ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml <?xml version='1.0' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://updates.jenkins.io/update-center.json</url> </site> https 改成http 需要重啓jenkins
下一節 介紹 php代碼發佈