Jenkins是一種基于java開發的開源工具,主要有如下一些特點和優勢
- 提供多種解決方案
- 易于安裝
- 易于配置
- 插件眾多
- 具有分布式主從結構
本篇主要講Jenkins的安裝方法基本的使用,Jenkins官網提供的下載包分兩條分不限。一條是weekly發布線,基本上每周就會發布一版,包含最新問題的修正和最新功能,提供給用戶和插件開發這。另一條是比較穩定的LTS(Long-Term Support)版本, 一般從最近12周的發布版中選擇比較穩定的版本。這條發布線更改不頻繁并且只接收重要的更新和修改。一般選擇LTS版本。
1. Jenkins 安裝
war包安裝
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
java -jar jenkins.war
brew 安裝
brew install jenkins
安裝完成后執行 jenkins
啟動jenkins。
docker 安裝
docker run --name myjenkins -p 8080:8080 -p 5000:500 -v ${JENKINS_HEME}:/var/jenkins_home jenkinsci/blueocean
rpm安裝
- 下載rpm包并安裝
chmod +x jenkins-2.60.2-1.1.noarch.rpm
sudo rpm -ivh jenkins-2.60.2-1.1.noarch.rpm
- jenkins 常用命令:
service jenkins start/stop/restart
chkconfig jenkins on
- rpm包安裝后的一些默認路徑
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/log/jenkins/jenkins.log Jenkins日志文件
jenkins配置文件位于/etc/sysconfig/jenkins 中。 JENKINS_HOME目錄默認是/var/lib/jenkins/ ; JENKINS_USER默認是jenkins,安裝時自動創建改用戶;JENKINS_PORT默認是8080。
Jenkins 初始啟動時的admin密碼文件/var/lib/jenkins/secrets/initialAdminPassword。
2. 解鎖 Jenkins
安裝完成后訪問http://localhost:8080
(或安裝時為Jenkins配置的任何端口),并等待 解鎖 Jenkins 頁面出現。
解鎖密碼可以從jenkins啟動日志中獲取
也可以從jenkins的安裝目錄中獲取,一般在/var/lib/jenkins/secrets/initialAdminPassword
cat /var/lib/jenkins/secrets/initialAdminPassword
3. Jenkins升級
如果系統可以連通外網,可以直接在界面上通過提示進行在線升級。如果無法聯通外網,那么需要替換最新的war包,重啟服務進行更新。
- 停止當前的Jenkins服務,備份原有的war包、配置和數據文件夾。
service jenkins stop
- 替換/usr/lib/jenkins/目錄下的jenkins.war
- 重啟Jenkins服務
service jenkins start
4. Jenkins備份和還原
- 手動備份整個JENKINS_HOME
因為JENKINS_HOME包含所有任務的配置和數據,所以他是非常大的,但是如果想對所有的插件和數據都進行備份,可以壓縮整個JENKINS_HOME并進行備份。
備份的步驟:
1) 停止Jenkins服務。
2) 復制JENKINS_HOME到備份目錄
3)重啟Jenkins服務。
還原的步驟:
1) 停止Jenkins服務。
2) 把備份的目錄替換當前目錄(最好把當前目錄也備份一下,防止還原失敗)。
3)重啟Jenkins服務。
當對備份的數據進行還原的時候,當前Jenkins版本和之前的相差不要太大,系統環境配置(比如JDK)以及很多第三方插件對Jenkins的版本都有要求,差別太大可能會有不兼容的問題。 -
使用ThinBackup插件進行定時備份
安裝ThinkBackup插件。
安裝好插件后,在Jenkins界面中選擇Manage Jenkins,在ThinBackup界面中Settings可以進行全局配置。
ThinBackup Configuration
- Backup directory ------- 備份目錄
- Backup schedule for full backups ----- 完整備份的備份時間表。如果設置完整備份的備份時間表,即使沒有任何變化,到了時間點也會生成一份完整的備份。
- Backup schedule for differential backups ---- 差異備份的備份時間表。如果設置了差異備份的備份時間表,就只會備份從上次完整備份到現在發生變化的部分。如果沒有任何差異變化,則差異備份不會進行。
- Max number of backup sets ------ 最大的備份數量。默認是-1,不限制最大數量,但是為了節約磁盤空間,最好設置所需的最大備份數量。如果備份數量超過這里的設定,就會對最早的備份進行刪除。
- Files excluded from backup ----- 不需要備份的文件(支持正則匹配)。如果有些文件不想進行備份。這里可以通過正則匹配方式指定這些文件,所有負責正則匹配的文件不會備份。默認為空,如果正則匹配本身錯誤,則這里的設定會被忽略。
- Wait unitl Jenkins/Hudson is idle to perform abackup --- 默認被選中,并且推薦打開,備份需要安全的環境,不然運行任務的同時進行備份會導致備份失敗。這里表明等待Jenkins沒有運行任何任務或者空閑的時候才開始執行備份任務。
- Force Jenkins to quiet mode