作為一個有追求的前端er,也為了解放雙手,加快自動化的步伐,推動專案的持續整合。當然需要知道怎麼搭建持續化整合環境了。
系統環境準備
模擬真實的伺服器操作方式,使用虛擬機器的方式來部署我們的 Jenkins 環境
操作環境
- 電腦:MacBook Pro
- 系統:macOS Mojave 10.14.1
虛擬機器環境
- 系統:CentOS Linux release 7.4.1708 (Core)
- JDK:1.8.0
- Jenkins:2.164.1
用到的軟體軟體
以下軟體為我使用的軟體,可以使用相同功能的代替
- Parallels Desktop:模擬器軟體
- iTerm2:命令列工具
- zsh:shell工具
- Oh My ZSH:zsh擴充套件
系統基礎環境搭建
安裝zsh
sudo yum install -y zsh
複製程式碼
安裝git
sudo yum install -y git
複製程式碼
安裝oh-my-zsh
oh-my-zsh 對 git 和 zsh 存在依賴需要確保安裝的時候這兩個已經安裝。
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# 或者
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
複製程式碼
安裝Java環境
Jenkins 對 Java 環境為強依賴,必須保證安裝 Jenkins 前,安裝了 Java 環境。
查詢JDK資訊:
yum search java-1.8
複製程式碼
安裝JDK:
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
複製程式碼
設定環境變數:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64
sudo vim /etc/profile
複製程式碼
重新載入配置檔案,立即生效
source /etc/profile
複製程式碼
測試是否設定成功:
javac
複製程式碼
安裝wget
sudo yum install -y wget
複製程式碼
安裝Jenkins
匯入資源源
# 新增源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 匯入祕鑰
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
複製程式碼
安裝
Jenkins 的不同版本所依賴的 JDK 版本也不同,安裝前需要先查詢清楚,再進行安裝。
sudo yum install -y jenkins
複製程式碼
執行
開啟防火牆埠
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
複製程式碼
執行Jenkins
sudo service jenkins start
複製程式碼
Jenkins配置
瀏覽器開啟:http://${ip}:8080
檢視密碼:(密碼要自己儲存到本地)
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
複製程式碼
根據自己的需求選擇外掛安裝的方式,這裡我選擇推薦安裝。
建立管理員使用者
配置例項,不做更改,使用推薦的地址。
問題
白屏解決:修改Jenkins配置檔案。
配置檔案地址:/var/lib/jenkins
。
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
複製程式碼
修改為:
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.SecurityRealm$None">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
複製程式碼
2019年03月29日修改
後續流程已新增:前端er,Jenkins持續化整合Webpack專案