jenkins 安裝及配置部署操作 (jenkins+svn+tomcat and jenkins+git+maven+tomcat)

jenkins 安裝及配置部署操作

jenkins+svn+tomcat and jenkins+git+maven+tomcat

jenkins rpm軟件包下載地址: https://pkg.jenkins.io/redhat/
jenkins 軟件包下載地址: https://jenkins.io/download/
jenkins 插件下載地址: http://ftp.icm.edu.pl/packages/jenkins/plugins/
文檔相關軟件下載鏈接

鏈接:https://pan.baidu.com/s/1_zs_rjghH1d6Y4VN1KgYIA
提取碼:06lb

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> jenkins 安裝配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

因爲這的jenkins的配置都一樣,所以只寫一次

1、安裝jdk ,配置好環境變量JAVA_HOME,後面會有用到 。

[root@jenkins ~]# tar zxf jdk1.8.0_191.tar.gz
[root@jenkins ~]# mv jdk1.8.0_191   /usr/local/jdk1.8.0
[root@jenkins ~]# echo "export JAVA_HOME=/usr/local/jdk1.8.0" >> /etc/profile
[root@jenkins ~]# echo "export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profile
[root@jenkins ~]# source  /etc/profile
[root@jenkins ~]# echo $JAVA_HOME
    /usr/local/jdk1.8.0

2、安裝jenkins 軟件,可以使用rpm也可以使用war包去運行 。 jenkins安裝依賴openjdk軟件。

[root@jenkins ~]# yum localinstall  jenkins-2.195-1.1.noarch.rpm  -y
[root@jenkins ~]# yum install java-1.8.0-openjdk -y
[root@jenkins ~]# systemctl  start jenkins
[root@jenkins ~]# systemctl  enable jenkins
[root@jenkins ~]# /sbin/chkconfig  jenkins on

3、打開瀏覽器 http://ip:port 登陸jenkins ,密碼在下面文件內 。

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
f50bc74962b6449aab7f72cee8ab898f

在這裏插入圖片描述

4、網上很多人喜歡“安裝推薦的插件”,其實這種方式對於網絡不好或者是不能訪問外網的人來說是不行的,會報錯。網絡差的會很慢很慢,所以我選 “選擇插件來安裝”,把所有插件取消掉。

在這裏插入圖片描述

5、取消所有插件,一個都不安裝

在這裏插入圖片描述

6、配置管理員用戶,一定要配置,不然你後面進去就非常麻煩的。

在這裏插入圖片描述

7、輸入jenkins實例url ,一般使用默認即可 。

在這裏插入圖片描述

8、安裝完畢,開始使用jenkins

在這裏插入圖片描述

9、登陸後的界面 。

在這裏插入圖片描述

10、選擇管理jenkins ,插件管理。

在這裏插入圖片描述

11、發現已安裝插件內,沒有任何插件 。

在這裏插入圖片描述

==============================

安裝插件的三種方式:
插件安裝一:

找一臺已經安裝好插件的機器,把/var/lib/jenkins/plugins目錄裏面的文件跟目錄全部拷貝出來。將插件對應的文件導入到 /var/lib/jenkins/plugins 目錄下面,然後修改權限 chown -R jenkins:jenkins *
重啓 systemctl restart jenkins

插件安裝二:

到 http://ftp.icm.edu.pl/packages/jenkins/plugins/ 下載對應的插件,選擇插件管理裏面的高級,上傳插件–>選擇文件–>上傳 (jenkins 2.175用的是 hpi文件),上傳完之後就會自動開始安裝。這種方法比較慢,需要一個文件一個文件的選擇。

插件安裝三:

到可選插件內勾選自己想要的插件,點擊安裝即可 。

以下是以完成插件安裝的截圖 :

在這裏插入圖片描述

12、配置後面要用到管理的參數,publish over ssh key ,管理jenkins -->系統設置 ,找到這裏將jenkins的key放入這裏,下面配置後期需要推送文件的服務器ip,遠程賬號以及遠程上去的目錄位置。 (jenkins與需要推送文件的服務器之間需要免密登陸,遠程賬號不一定用root,也可以用其他普通用戶)

在這裏插入圖片描述

jenkins的安裝配置到此結束;


一、jenkins+svn+tomcat

項目說明:
1、svn服務器用於存放頁面代碼以及更新版本庫 ,所有的頁面從svn上面進行控制 ;
2、tomcat用來部署頁面,所有的訪問都通過tomcat 進行 ;
3、jenkins 用來做更新版本控制,需要帶有回滾版本的功能 ;

搭建思路:
1、開發人員統一將文件上傳到svn對應的目錄下面。例如 svn://xxx/work1/dist.zip svn://xxx/work2/dist.zip
2、jenkins收集到所有的dist.zip之後 先打包一個壓縮文件到workspace/dist/xxx-x.tar.gz ,用於後面還原用
3、jenkins推送.tar.gz文件到tomcat 對應的目錄下並解壓,解壓之前先清空裏面的文件 。

192.168.255.130 jenkins - 2.195
192.168.255.100 svn - 1.7.14
192.168.255.101 tomcat - 8

在這裏插入圖片描述

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> svn 搭建及配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1、安裝svn

[root@svn ~]# yum install subversion -y

2、創建svn庫對應的目錄

[root@svn ~]# mkdir  -p /server/svn
[root@svn ~]# svnadmin  create /server/svn
[root@svn ~]# ls /server/svn/
conf  db  format  hooks  locks  README.txt

3、對svn版本庫進行配置

[root@svn ~]# cd /server/svn/conf/
[root@svn conf]# ls
authz  passwd  svnserve.conf

4、添加登陸用戶名跟密碼,均爲appuser

[root@svn conf]# tail -2 passwd
    [users]
    appuser = appuser

5、設置用戶訪問權限,appuser可以對svn的 / 有讀寫權限,其他用戶沒有權限

[root@svn conf]# tail -3 authz
    [/]
    appuser = rw
    * =

6、配置svn密碼庫文件、權限庫文件以及svn根的對應目錄

[root@svn conf]# vim svnserve.conf
    anon-access = read
    auth-access = write
    password-db = passwd
    authz-db = authz
    realm = /server/svn

7、啓動svn服務

[root@svn conf]# svnserve   -d -r  /server/svn/
[root@svn conf]# ps -ef| grep svnserve
root       2391      1  0 16:22 ?        00:00:00 svnserve -d -r /server/svn/
root       2393   2167  0 16:22 pts/0    00:00:00 grep --color=auto svnserve

8、創建svn客戶端目錄並檢出庫內容

[root@svn conf]# mkdir -p /data/tomcat
[root@svn conf]# svn checkout  svn://192.168.255.100/   /data/tomcat
[root@svn conf]# cd /data/tomcat/

9、添加文件

[root@svn tomcat]# echo "test 16:40" > 1.txt

10、將文件添加到svn庫

[root@svn tomcat]# svn add  1.txt  
A         1.txt

11、提交版本更新並備註提交信息

[root@svn tomcat]# svn commit  -m 'test create 1.txt' ./
Adding         1.txt
Transmitting file data .
Committed revision 1.

12、查看svn狀態

[root@svn tomcat]# svn status -v
                 0        0  ?           .
                 1        1 appuser      1.txt

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> tomcat 搭建及配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

安裝openjdk跟tomcat 並啓動 ,使用默認配置即可

[root@tomcat ~]#  yum install java-1.8.0-openjdk  -y
[root@tomcat ~]#  tar zxvf apache-tomcat-8.0.30.tar.gz  
[root@tomcat ~]#  mv apache-tomcat-8.0.30 /usr/local/tomcat

[root@tomcat ~]#  cd /usr/local/tomcat/
[root@tomcat tomcat]# bin/startup.sh

確認服務是否起來

[root@tomcat tomcat]# netstat  -anputl| grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      923/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1169/master         
tcp6       0      0 :::8080                 :::*                    LISTEN      2345/java           
tcp6       0      0 :::22                   :::*                    LISTEN      923/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1169/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2345/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2345/java           

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> jenkins 項目部署配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1、創建項目 -->> 構建一個自由風格的軟件項目 ;

在這裏插入圖片描述

2、選擇參數化構建過程 (這裏的參數化將會在後面項目構建處進行體現)

在這裏插入圖片描述

3、配置svn庫地址跟svn賬號密碼

在這裏插入圖片描述

4、選擇用戶名跟密碼,配置 appuser (svn的賬號密碼)

在這裏插入圖片描述

5、選擇剛纔配置的賬號密碼作爲憑證 (憑證也可以在jenkins設置裏面進行添加)

在這裏插入圖片描述

6、添加構建步驟,選擇執行shell 腳本

在這裏插入圖片描述

腳本內容即爲判斷前面 參數化構建過程 內的參數,首先匹配名稱,如果名稱匹配成功就開始匹配下面的 Deploy 或者RollBACK ,執行對應的語句。 目前對於打包時會做一個判斷,保留十個打包備份,能夠很好的節約jenkins的空間。
這裏只是做了打包備份,並沒有做發佈

在這裏插入圖片描述

腳本的文字

case $Status in
    Deploy)
        echo "Status: $Status"
        path="${WORKSPACE}/dist"
        if [ -d $path ];then
            echo "The file is already exists!!!"
        else
            mkdir -p $path
        fi
        cd ${WORKSPACE}
        tar czf dist/${JOB_NAME}-${BUILD_NUMBER}.tar.gz * --exclude=dist
        echo "Completion!!!"
        cd  dist
        total_file_num=`ls -l | grep -v 'total' | wc -l`
            if [ $total_file_num -gt 10 ];
            then
                num=`expr $total_file_num - 10`
                files=`ls -ltr | grep -v 'total' | awk '{print $9}' | head -n $num`
                echo $files | xargs rm -f
                echo "保留10個備份,刪除早期備份: " $files
            else
                echo "沒有更多的版本"
            fi
        ;;
    RollBACK)
        echo "Status: $Status"
        echo "version: $Version"
        file_old=`ls ${WORKSPACE}/dist | grep $Version`
        cd ${WORKSPACE}/dist
        cp -R $file_old ${JOB_NAME}-${BUILD_NUMBER}.tar.gz
        ;;
    *)
    exit
        ;;
esac

7、添加第二個構建步驟,此處先關閉tomcat,然後刪除需要上傳文件的目錄裏面的內容。 (也可以把腳本寫到tomcat的服務器裏面,寫這裏是爲了能夠讓管理者更加直觀的看到做了什麼)

jenkins的構建步驟都是嚴格按照先後順序來執行的,所以要做什麼操作請按照順序來 ;
在這裏插入圖片描述
在這裏插入圖片描述

8、將之前打包的壓縮包發送到tomcat上面並執行解壓,解壓完畢之後執行啓動tomcat命令。 (這個可以放在構建步驟裏面也可以放在構建後操作步驟裏面,效果是一樣的,只要順序沒錯)

在這裏插入圖片描述
在這裏插入圖片描述

因爲項目需求不同,所以這裏做的都是全量版本更新,如果想要做svn的增量版本更新的話可以使用下面的操作方式
內容來源 : https://blog.csdn.net/q13554515812/article/details/86651851
進入【系統管理】-【Jenkins命令行接口】,進入【Jenkins命令行】頁面,下載jenkins-cli.jar,放到Svn所在服務器的root目錄下,如下圖:
(發佈項目的用戶必須要有可執行權限,默認的項目執行用戶家目錄配置在 系統配置- -> publish over ssh key -> ssh servers -> Remote Directory )

在這裏插入圖片描述

進入Svn的hooks目錄下,創建文件post-commit,並賦予執行權限,如下圖:
在這裏插入圖片描述
編輯文件post-commit,內容如下:
-auth 爲添加認證 , test:123qwe 爲賬號跟密碼, build 爲打包, test爲項目名稱。

#!/bin/bash
source /etc/profile
java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ -auth test:123qwe build test    

svn提交代碼後,查看Jenkins任務是否觸發。
FAQ
Q:svn 鉤子 post-commit 出現255錯誤
R:post-commit 腳本文件的權限不對
S:post-commit 腳本必須有 +x 權限,給post-commit添加可執行權限
參見:https://blog.csdn.net/webnoties/article/details/40539431

Q:svn提交代碼,觸發post-commit鉤子,出現如下報錯:
在這裏插入圖片描述
R:post-commit腳本中缺少JDK環境變量
S:post-commit腳本中添加source /etc/profile

Q:執行命令java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ build test出現如下錯誤:'ERROR: anonymous is missing the Overall/Read permission’
R:沒有進行身份驗證
S:
方案一:進入Jenkins【系統管理】-【全局安全配置】-【授權策略】選中【登錄用戶可以做任何事】後保存
方案二:命令中添加-auth參數,修改命令如下:
java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ -auth test:123qwe build test


二、jenkins+git+maven+tomcat

項目說明:
1、git服務器用於存放頁面代碼以及更新版本庫 ,所有的頁面從git上面進行控制 ;
2、tomcat用來部署頁面,所有的訪問都通過tomcat 進行 ;
3、jenkins 用來做更新版本控制,需要帶有回滾版本的功能 ;
4、git服務器上面全部均爲源代碼,需要Jenkins具備自動打包功能,減輕開發工作量 ;

搭建思路:
1、開發人員統一使用git來進行代碼的上傳下載,git需要具備安全功能 ;
2、在jenkins 上面配置maven,將代碼拉取下來之後進行打包再發送到tomcat上面進行部署 ;
3、jenkins推送文件到tomcat 對應的目錄下之前先停止tomcat,推送完之後啓動tomcat ;

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> git 部署配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

首先到github上面註冊一個賬號,創建一個私有倉庫並將源代碼上傳上去。
將服務器公鑰放到git服務端 ;

在這裏插入圖片描述
在這裏插入圖片描述

jenkins服務器上面需要安裝git

[root@jenkins ~]# yum install git -y
[root@jenkins ~]# git --version
    git version 1.8.3.1

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> maven 部署配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

[root@jenkins ~]# tar zxvf apache-maven-3.6.2-bin.tar.gz
[root@jenkins ~]# mv apache-maven-3.6.2  /usr/local/maven-3.6.2

[root@jenkins ~]# cd /usr/local/maven-3.6.2/bin/
[root@jenkins bin]# ./mvn -v
    Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T11:06:16-04:00)
    Maven home: /usr/local/maven-3.6.2
    Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"

需要配置好jdk ,參考第一個項目的jdk配置 ;

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> tomcat 部署配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

安裝openjdk跟tomcat 並啓動 ,使用默認配置即可

[root@tomcat ~]#  yum install java-1.8.0-openjdk  -y
[root@tomcat ~]#  tar zxvf apache-tomcat-8.0.30.tar.gz  
[root@tomcat ~]#  mv apache-tomcat-8.0.30 /usr/local/tomcat

[root@tomcat ~]#  cd /usr/local/tomcat/
[root@tomcat tomcat]# bin/startup.sh

確認服務是否起來

[root@tomcat tomcat]# netstat  -anputl| grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      923/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1169/master         
tcp6       0      0 :::8080                 :::*                    LISTEN      2345/java           
tcp6       0      0 :::22                   :::*                    LISTEN      923/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1169/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2345/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2345/java           

網絡上面有很多都是使用tomcat自帶的manager 來進行編譯後發佈的,但是因爲這個不太穩定,經常會出現問題,所以這裏不做配置。 使用另外一種方式來編譯發佈 。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>> Jenkins 部署配置 >>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1、配置jenkins 裏面的 maven、git、jdk 路徑

在這裏插入圖片描述

在這裏插入圖片描述

2、創建一個maven項目 。

在這裏插入圖片描述

3、添加jenkins憑證,爲git 添加key ,key就是jenkins的私鑰。

在這裏插入圖片描述

此處填寫git的地址。
在這裏插入圖片描述

4、Build處使用pom.xml , Goals and options 輸入 clean install -D maven.test.skip=true ;

在這裏插入圖片描述

5、增加構建後操作,選擇send build artifacts over ssh 。

在這裏插入圖片描述

首先停止tomcat, 然後刪除掉頁面數據 。
第二步將打包好的war包 發送到服務器上並運行

在這裏插入圖片描述

因爲在構建當中出現以下報錯信息,主要原因是需要頁面需要使用到mysql 以及連接插件
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

mysql> create database zrlog_demo ;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on zrlog_demo.* to zrlog_demo@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

博主個人博客網址 :http://blog.doveop.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章