Jenkins是一個自包含的、開源的自動化服務器,能夠用於自動化與構建、測試、交付或部署軟件相關的各類任務。前端
Jenkins能夠經過本機系統包、Docker安裝,甚至能夠由任何安裝了Java運行時環境(JRE)的機器獨立運行vue
三種方式java
mkdir -p /usr/local/atom.hu/jenkins
chown -R 1000:1000 /usr/loca/atom.hu/jenkins
複製代碼
docker pull jenkins
複製代碼
docker run -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /usr/local/atom.hu/jenkins/:/var/jenkins_home -d jenkins
複製代碼
稍做等待 node
進入目錄查看密碼linux
[root@localhost secrets]# cat initialAdminPassword
9ca7368042fe45be8b693ab43e7797d1
複製代碼
在jenkins官網中下載war包webpack
能夠直接右鍵複製軟件地址, 使用 wget 命令進行下載nginx
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
複製代碼
下載完成後 將項目放入tomcat
中webapps
文件夾下git
獲取軟件安裝源web
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
複製代碼
安裝jenkinsspring
yum -y install jenkins
複製代碼
安裝完成後 啓動jenkins
systemctl start jenkins
複製代碼
經過對三種方式的實驗 每種方式都進行了探索, 最後選擇經過yum的方式進行安裝, 也是最麻煩的安裝方式, 可是相對可靠, docker 的安裝方式雖然簡便, 可是會遇到比較多軟件環境問題. 使用jenkins.war的方式, 也相對比較簡便, 可是也是遇到比較多的問題, 最後仍是放棄了, 採用了最原始也是最麻煩的方式
爲了保證後面的配置可以順利進行, 須要一些前期的準備工做
修改jenkins的配置文件
# 打開jenkins的配置文件
vim /etc/sysconfig/jenkins
# 修改 $JENKINS_USER 的值爲root
$JENKINS_USER="root"
複製代碼
修改Jenkins相關文件夾用戶權限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
複製代碼
重啓Jenkins服務並檢查運行Jenkins的用戶是否已經切換爲root
# 重啓Jenkins(如果其餘方式安裝的jenkins則重啓方式略不一樣)
systemctl restart jenkins
# 查看Jenkins進程所屬用戶
ps -ef | grep jenkins
# 若顯示爲root用戶,則表示修改完成
複製代碼
到此爲止, 前期準備工做就算完按成了, 能夠開始進行jenkins自動化部署了
在jenkins中, 新手推薦直接安裝推薦插件, 後設置管理員密碼後, 進入主界面, 切記不要忘記密碼, 雖然也有解決辦法, 可是仍是記住密碼的好
Git Parameter Plug-In
在後續的自動化部署中, 咱們須要經過參數, 設置不一樣的分支, 對不一樣的分支進行打包, 須要這個插件的支持
Maven Integration plugin
在部署spring boot 項目的時候, 咱們須要建立maven項目, 在安裝了這個插件以後, 在建立項目的時候, 若是沒有這個插件, 在建立項目的時候就沒有 構建一個maven項目
的選項
Publish Over SSH
有的時候咱們在A機器上搭建的jenkins 可是卻多是在B機器上部署項目, 須要Publish Over SSH
的支持
這裏注意, 在填主機Ip的時候, 若是兩臺機器同屬一個運行商的話, 儘可能填寫內網IP比較好, 這個很重要
官方說法
You will need to explicitly install a Java runtime environment, because Oracle's Java RPMs are incorrect and fail to register as providing a java dependency. Thus, adding an explicit dependency requirement on Java would force installation of the OpenJDK JVM.
yum install java-1.8.0-openjdk
複製代碼
yum install git
複製代碼
# 下載安裝包
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
# 解壓
tar -xvf node-v10.15.3-linux-x64.tar.xz -C ./
# 將node命令和npm設置軟鏈接到 /usr/bin 中
ln -s ./node /usr/bin/node
ln -s ./npm /usr/bin/npm
# 而後在其餘的地方均可以使用這兩個命令了
複製代碼
maven
, 並在/etc/profile
中配置在全局配置工具中, 配置 jdk
, maven
, git
, node
的安裝路徑
部署場景, 在A機器進行webpack打包, 將打包後的文件,發送到B機器上指定的文件夾, 經過nginx代理實現訪問
2.填寫項目描述
Send files or execute commands over SSH after the build runs
這裏的配置爲, 在本地構建完成以後, 咱們須要將哪些文件發送到目標主機上, 發送到目標主機上, 並執行什麼命令
cd /home/project/web/test
tar -zxvf dist.tar.gz
rm -rf dist.tar.gz
複製代碼
/home/project/web/test
爲目標主機nginx 配置過的目錄
Execute Shell
並配置構建時執行的命令cnpm i &&
rm -rf dist &&
npm run build &&
cd dist&&
tar -zcvf dist.tar.gz *
複製代碼
點擊保存, 這樣就完成了 前端項目的搭建了
BUILD_ID=DONTKILLME
source /etc/profile;
cd /home/project/java/test&&
pid=`ps -ef | grep 'jar 名稱' | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
java -jar lk-truck-mendery-webfront-1.0.0-SNAPSHOT.jar > nohup.log &
複製代碼
注意點
shell
前須要添加 BUILD_ID=DONTKILLME
, 否則在jenkins建立了java 進程以後,退出的時候, 會殺死以前建立過的工程source /etc/profile
, 否則可能會出現 java
命令找不到的狀況到此 springboot的項目便搭建完成了
cd /var/lib/jenkins/users
vim config.xml
複製代碼
替換途中的值, 替換爲
#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
複製代碼
替換後,重啓jenkins
systemctl restart jenkins
複製代碼
登陸密碼就變爲 1111111 了