Jenkins 自動化部署

1.JENKINS 是什麼

Jenkins是一個自包含的、開源的自動化服務器,能夠用於自動化與構建、測試、交付或部署軟件相關的各類任務。前端

Jenkins能夠經過本機系統包、Docker安裝,甚至能夠由任何安裝了Java運行時環境(JRE)的機器獨立運行vue

2.在centos 系統上安裝jenkins

三種方式java

  • 經過 docker 安裝
  • 經過jenkins.war 在tomcat中運行
  • 經過yum 的方式安裝

2.1 經過docker 安裝

  • 建立jenkins 文件,並修改文件權限
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
複製代碼

2.2 經過jenkins.war 的方式安裝

jenkins官網中下載war包webpack

能夠直接右鍵複製軟件地址, 使用 wget 命令進行下載nginx

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
複製代碼

下載完成後 將項目放入tomcatwebapps 文件夾下git

2.3 經過yum的方式安裝jenkins

獲取軟件安裝源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的方式, 也相對比較簡便, 可是也是遇到比較多的問題, 最後仍是放棄了, 採用了最原始也是最麻煩的方式

3.0 使用jenkins自動化部署的前提條件

爲了保證後面的配置可以順利進行, 須要一些前期的準備工做

修改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自動化部署了

4.0 在jenkins中安裝插件

在jenkins中, 新手推薦直接安裝推薦插件, 後設置管理員密碼後, 進入主界面, 切記不要忘記密碼, 雖然也有解決辦法, 可是仍是記住密碼的好

安裝必要的jenkins插件

Git Parameter Plug-In

在後續的自動化部署中, 咱們須要經過參數, 設置不一樣的分支, 對不一樣的分支進行打包, 須要這個插件的支持

Maven Integration plugin

在部署spring boot 項目的時候, 咱們須要建立maven項目, 在安裝了這個插件以後, 在建立項目的時候, 若是沒有這個插件, 在建立項目的時候就沒有 構建一個maven項目的選項

Publish Over SSH

有的時候咱們在A機器上搭建的jenkins 可是卻多是在B機器上部署項目, 須要 Publish Over SSH的支持

這裏注意, 在填主機Ip的時候, 若是兩臺機器同屬一個運行商的話, 儘可能填寫內網IP比較好, 這個很重要

5.0 在服務器中添加相關支持環境

  1. 安裝 openjdk 1.8 jenkins 的運行須要openjdk依賴

官方說法

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
複製代碼
  1. 安裝 git
yum install git
複製代碼
  1. 安裝 node, 後續會部署前端項目須要
# 下載安裝包
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

# 而後在其餘的地方均可以使用這兩個命令了
複製代碼
  1. 安裝maven, 並在/etc/profile 中配置

6.0 系統配置

在全局配置工具中, 配置 jdk, maven, git, node 的安裝路徑

7.0 自動化部署 前端vue項目

部署場景, 在A機器進行webpack打包, 將打包後的文件,發送到B機器上指定的文件夾, 經過nginx代理實現訪問

  1. 建立一個自由風格的軟件項目

2.填寫項目描述

  1. 選擇參數化構建過程, 後續能夠選擇不一樣分支進行打包

  1. 選擇不一樣的版本控制工具 svn 和 git均可以, 這裏咱們使用git

須要添加 本身的用戶和密碼, 否則會出現下面的狀況

  1. 在構建環境中選擇 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 配置過的目錄

  1. 在構建中選中 Execute Shell
    並配置構建時執行的命令
cnpm i &&
rm -rf dist && 
npm run build && 
cd dist&& 
tar -zcvf dist.tar.gz *
複製代碼

點擊保存, 這樣就完成了 前端項目的搭建了

8.0 自動化部署 spring boot 項目

  1. 新建任務, 建立maven 項目

  1. 填寫項目描述, 配置參數構建

  1. 配置源碼管理

  1. 配置構建環境 ssh server

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 &
複製代碼

注意點

  1. shell 前須要添加 BUILD_ID=DONTKILLME, 否則在jenkins建立了java 進程以後,退出的時候, 會殺死以前建立過的工程
  2. 須要在前面添加 source /etc/profile, 否則可能會出現 java 命令找不到的狀況

到此 springboot的項目便搭建完成了

9.0 若是設置了密碼以後, 又忘記了密碼應該怎麼辦

  1. 進入到jenkins的配置文件中
cd /var/lib/jenkins/users
vim config.xml
複製代碼

替換途中的值, 替換爲

#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
複製代碼

替換後,重啓jenkins

systemctl restart jenkins
複製代碼

登陸密碼就變爲 1111111 了

相關文章
相關標籤/搜索