Jenkins安裝與使用

Jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作 。

==安裝Jenkins需要2G以上內(nèi)存==

一、Jenkins安裝方法

1、下載軟件包及插件

https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

2、安裝JDK和Jenkins

cd /opt
rpm -ivh jdk-8u181-linux-x64.rpm
rpm -ivh jenkins-2.190.1-1.1.noarch.rpm

3、修改配置文件

vim /etc/sysconfig/jenkins
JENKINS_USER="root"             #將啟動用戶改為root

4、啟動服務(wù)

systemctl start jenkins
systemctl enable jenkins

5、進入網(wǎng)頁進行配置

http://xxx.xxx.xxx.xxx:8080         #jenkins主機ip地址

==要先修改管理員登錄密碼!!==

6、安裝插件

(1)、通過清華源在線安裝

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

(2)、使用軟件包離線安裝

tar xf jenkins_plugins.tar.gz -C /var/lib/jenkins/      
ll /var/lib/jenkins/plugins         #查看插件目錄是否有文件
systemctl restart jenkins           #重啟服務(wù)

二、Jenkins自動發(fā)布代碼

1、在Jenkins主機上生成密鑰對,復(fù)制公鑰信息

ssh-keygen -t dsa
cat /root/.ssh/id_dsa.pub

2、進入gitlab頁面配置jenkins公鑰信息

3、在Jenkins主機上復(fù)制私鑰信息

cat /root/.ssh/id_dsa

4、Jenkins網(wǎng)頁上創(chuàng)建一個新任務(wù)

5、設(shè)置任務(wù)源碼管理

6、設(shè)置任務(wù)構(gòu)建觸發(fā)器

7、在gitlab項目中設(shè)置網(wǎng)鉤

8、設(shè)置任務(wù)構(gòu)建,執(zhí)行腳本命令

9、在Jenkins主機上編寫腳本

第一種:

mkdir -p /server/scripts
vim /server/scripts/jenkins.sh
#!/bin/sh

CODE_DIR="/html/$(date +%F_%H:%M)_code"
IP="172.16.1.7"

#打包代碼文件
cd ${WORKSPACE}/
tar zcf /tmp/${JOB_NAME}.tar.gz ./* --exclude=.git

#發(fā)送代碼文件到web主機
ssh $IP "mkdir -p ${CODE_DIR}"
scp /tmp/${JOB_NAME}.tar.gz ${IP}:${CODE_DIR}

#遠程解壓代碼
ssh $IP "cd ${CODE_DIR} && tar xf ${JOB_NAME}.tar.gz "

#刪除壓縮包及舊軟鏈接
ssh $IP "rm -rf ${CODE_DIR}/${JOB_NAME}.tar.gz && rm -rf /html/www"

#創(chuàng)建新的軟鏈接
ssh $IP "cd /html && ln -s $(date +%F_%H:%M)_code www"
chmod +x /server/scripts/jenkins.sh

分發(fā)公鑰到web主機

ssh-copy-id -i 172.16.1.7

修改web主機上的Nginx配置文件

vim /etc/nginx/conf.d/www.conf
server {
   listen 80;
   server_name  localhost;
   location / {
     root /html/www;
     index index.html;
   }
}

systemctl restart nginx

10、測試是否成功

三、將Jenkins構(gòu)建結(jié)果返回給GitLab

1、gitlab生成訪問令牌

2、Jenkins添加訪問令牌

3、設(shè)置任務(wù)構(gòu)建后操作

4、測試是否成功

四、自動回滾代碼

1、gitlab上給倉庫打標簽

2、在Jenkins任務(wù)添加標簽選擇參數(shù)

3、將分支說明改成標簽名稱變量

4、添加選項參數(shù)

5、修改Jenkins主機腳本

vim /server/scripts/jenkins.sh
#!/bin/bash

CODEDIR=/html
IP=172.16.1.7

TAR_CODE(){
    cd ${WORKSPACE} 
    tar zcf /opt/${git_version}.tar.gz ./* --exclude=.git
}

SCP_CODE(){
    ssh ${IP} "mkdir ${CODEDIR}/${git_version} -p"
    scp /opt/${git_version}.tar.gz ${IP}:${CODEDIR}/${git_version}
}

XF(){
    ssh ${IP} "cd ${CODEDIR}/${git_version} && tar xf ${git_version}.tar.gz && rm -rf ${git_version}.tar.gz"
}

CREATE_LN(){
    ssh ${IP} "cd ${CODEDIR} && rm -rf www && ln -s ${git_version} www"
}

main(){
  if [[ "${choice}" == "publish" ]];then
    if [[ "$GIT_COMMIT" == "GIT_PREVIOUS_SUCCESSFUL_COMMIT" ]];then
      echo "構(gòu)建失敗,該版本已發(fā)布"
    else
      TAR_CODE
      SCP_CODE
      XF
      CREATE_LN
    fi
  else
      CREATE_LN 
  fi
}
main

6、測試是否成功

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 說到CI(持續(xù)集成)也許你腦子里馬上會蹦出一個著名的CI工具,就是我們本篇實踐記錄中的jenkins。 沒錯,je...
    wendell_dev閱讀 7,824評論 0 31
  • 前言 Jenkins 是一個開源項目,提供了一種易于使用的持續(xù)集成系統(tǒng),使開發(fā)者從繁雜的集成中解脫出來,專注于更為...
    iTruda閱讀 2,713評論 1 1
  • 安裝環(huán)境 centos 7.x jdk 1.8.x 安裝步驟 安裝Jenkins 首先要下載yum源文件(胡說in...
    形而下z閱讀 736評論 1 0
  • Jenkins是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作,功能包括:1、持續(xù)的軟件版本發(fā)布/測試...
    Devin_Lin閱讀 5,028評論 1 3
  • 漸變的面目拼圖要我怎么拼? 我是疲乏了還是投降了? 不是不允許自己墜落, 我沒有滴水不進的保護膜。 就是害怕變得面...
    悶熱當(dāng)乘涼閱讀 4,471評論 0 13

友情鏈接更多精彩內(nèi)容