1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      一、案例環(huán)境
      二、部署Gitlab
      1)部署Gitlab
      2) 配置免密登錄
      3)測試免密登錄
      三、部署Jenkins
      四、Jenkins集成Gitlab
      五、部署Nginx
      六、Jenkins實(shí)現(xiàn)代碼自動上線
      七、Jenkins實(shí)現(xiàn)代碼自動部署與回退及重復(fù)構(gòu)建

      專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)汕尾免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

      一、案例環(huán)境

      系統(tǒng)IP地址主機(jī)名所運(yùn)行的服務(wù)
      Centos 7 192.168.1.6 gitlab gitlab
      Centos 7 192.168.1.7 jenkins jenkins
      Centos 7 192.168.1.8 nginx nginx

      二、部署Gitlab

      1)部署Gitlab

      [root@gitlab ~]#  yum -y install  epel-release curl openssh-server openssh-clients postfix cronie policycoreutils-python patch
      #安裝所需依賴
      [root@gitlab ~]#  wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
      #對gitlab的版本并沒有什么特殊的限制
      [root@gitlab ~]# yum -y localinstall gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
      [root@gitlab ~]# vim /etc/gitlab/gitlab.rb                #便于使用URL路徑訪問
      external_url 'http://192.168.1.6'
      #下載 中文補(bǔ)丁包
      [root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt           #查看gitlab的版本
      gitlab-ce 12.3.5
      [root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git -b v12.3.5-zh
      [root@gitlab ~]# cd gitlab/
      [root@gitlab gitlab]#  git diff v12.3.5 v12.3.5-zh > /root/v12.3.5-zh.dif
      [root@gitlab gitlab]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 <  ../v12.3.5-zh.diff
       #將剛才的diff文件做為補(bǔ)丁導(dǎo)入到gitlab中
      #該命令執(zhí)行過程中,一路回車跳過即可
      [root@gitlab ~]# gitlab-ctl  start                 # 啟動gitlab
      [root@gitlab ~]# gitlab-ctl reconfigure      #重新配置gitlab

      web頁面訪問測試
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      可以看出gitlab的網(wǎng)站頁面已經(jīng)漢化!

      2) 配置免密登錄

      [root@gitlab ~]# ssh-keygen 
      [root@gitlab ~]#  cat ~/.ssh/id_rsa.pub 
      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuWnEReFVhIiODuTO/NzdjuvPMY0tQ89NuYGtMxDJJAXnbChK8dbe0Iu4GNHY9zeSP0OaYJvVV9Nu/qtcZqgg+zKgLohdoI5QKXWcZ1JT/kNpIbnVnUYE0/AYZ8nMbjNiUsSD5BaDy+t9uuRxh+QCOrZDkYZw1EZioDpDoSR1XzrOac69QIag2XUU04rmWkR9/fbfwGzusTzfO2thk3vcZn+DzLqJqYy9ufkZeTGlqJnVC6//caakMtY475NSUKnGT+YoRsStXXI/9CVrpY8cPZ5eiFs34xGZWU1uhsx9UQ50pNeA7iqM6CIKpb4MPtqKDLIb83Bztz1VsfBJRMxer root@gitlab
      #本地生成密鑰對,便于ssh登錄

      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      3)測試免密登錄

      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      [root@gitlab ~]# git clone git@192.168.1.6:root/web-demo.git
      #確認(rèn)無需輸入密碼

      三、部署Jenkins

      [root@jenkins ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.172-1.1.noarch.rpm
      [root@jenkins ~]# yum -y localinstall jenkins-2.172-1.1.noarch.rpm
      #獲取Jenkins軟件包,并安裝
      [root@jenkins ~]# systemctl start jenkins            #啟動Jenkins

      web頁面訪問
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      由于剛才跳過了插件安裝,,所以需要自己手動安裝,下載本人提供的插件軟件包,下載鏈接:https://pan.baidu.com/s/16fxH1J0WO6tW1bhPwmd60w
      提取碼:432n

      [root@jenkins ~]# rm -rf /var/lib/jenkins/plugins/           #將安裝產(chǎn)生的插件目錄進(jìn)行刪除
      [root@jenkins ~]# tar zxf jenkins-plugins.tar.gz -C /var/lib/jenkins/
      #將插件軟件包解壓到指定的位置
      [root@jenkins ~]# sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json
      #將jenkins下載插件的路徑,更改為國內(nèi)源
      [root@jenkins ~]# systemctl restart jenkins          #重新啟動Jenkins

      再次訪問web頁面:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      再次訪問Jenkins,可以發(fā)現(xiàn)已經(jīng)變成中文了,因?yàn)椴寮邪酥形牟寮?/p>

      四、Jenkins集成Gitlab

      [root@jenkins ~]# ssh-keygen     #Jenkins服務(wù)生成密鑰對
      [root@jenkins ~]# cat ~/.ssh/id_rsa.pub      #查看公鑰信息
      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbcFk7tkBes+S6BIVLxzLVj8X7bThDYscpY6uBeauHp+tPTL6CRVQDOlUcMRsyaX7o+a26iPd+yhJUaB+qT4iW1cVjhEiuKiR2NJSJdnEqccgcXWPJzIe+Owj76ofBtIhKqLGzwnYj6Lj0KmjUhn7tASu1bZ8hWubJ2ZQUottOW8KqjvHIb7q8OsGty9tsLVV3gD1XF1cE1s9rXY7XUFxDwtu1kfiA2XhSyJ3EmTWFlFlvaqzhQDBELWSVBz/4CihAfIp2eW7nx8TPXG0d0j+OwQYcccsarwkjHuc2IYRv4gVAhtRyXj8VQ7+LBsjYjfIMBTw4CFwQSTfZnWaa6Fcf root@jenkins

      將公鑰信息存放在gitlab上:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      [root@jenkins ~]# cat ~/.ssh/id_rsa
      #查看Jenkins服務(wù)器的私鑰信息,需要將私鑰信息存放在Jenkins的web頁面上
      -----BEGIN RSA PRIVATE KEY-----
      MIIEpAIBAAKCAQEA23BZO7ZAXrPkugSFS8cy1Y/F+204Q2LHKWOrgXmrh7frT0y+
      gkVUAzpVHDEbMml+6Pmtuoj3fsoSVGgfqk+IltXFY4RIriokdjSUiXZxKnHIHF1j
      ycyHvjsI++qHwbSISqixs8J2I+i49Cpo1IZ+7QErtW2fIVrmydmUFKLbTlvCqo7x
      yG+6vDrBrcvbbC1Vd4A9VxdXBNbPa12O11BcQ8LbtZH4gNl4UsidxJk1hZRZb2qs
      4UAwRC1klQc/+AooQHyKdnlu58fEz1xtHdI/jsEGHHHLGq8JIx7nNiGEb+IFQIbU
      cl4/FUO/iwbI2I3yDAU8OAhcEEk32Z1mmuhXHwIDAQABAoIBAQDXcb6qeY1JbaWr
      XLTiaXjnZHklGV6cCmcvo8PHIwXd8md9PAPvMtIBOUxGmY/yNtF7O2fuNHuJ6CuG
      45PzSpL4RHm/8yjIlmemBomvTLJe0cd+0dIfVsgPZTa03tbav7zwUB/oNYx4RQ0R
      7HFv93y2hOe9ARuzS+Q7WXuhpyNaEbvsqQGaeyw0xnBZyopv12CJRtT5PoITeEgv
      0meaDiXttkUZd1r3MLutAHsBpvuAUypoOppsUvbJ6Gsv3j4pd6aOHVEomEMaTZf7
      hRLNihnTfbj0t3yz/wKZ1FfamHbjRNnML1R+vnv4zEdPFmCJG3mAABQOgja2vwvk
      Rxq3/L5BAoGBAO3/ar7ClBgFc09cqz8+jbIOI9pXdP5SoZh9S8B61qi6Nxie192C
      nHLc7qjFNCudOBV25+l98ZLCElWjiMcpAD/AH125dE15K+U0qBn0fJvegMWAiTHV
      9Av9m39oSnnuu8tVW/AbWjV86EzCRLcpQ+Q5i45HK+d/UIUv8BHGxqG9AoGBAOwJ
      juWRuh/+KSw6jJa52sZjkg6m0VAQB7dsQssIhQhQbZvgaLur2bQlf6iJPOHGLnPs
      ZVe/LP3VwVgd6+hWo3uPVwjgHyblfLQva7rRXyilv84UMDVHrP1dsg9bEEuckit2
      1A9ZMzqdUlAkFZ8aSDq4DRAjggIzf7SnoMt1aTQLAoGAFi116f7BxBdF7oBJKOSQ
      WaY9qwv5R/W1Pzt1wqLvu9tWZQHwRaD1KTLzPmDaArJs1ns1Eyn8R9uzz60kgsKM
      VmR1x8sPTmTbNUmZ3IlOz0uFnmHi5vTz/+YLBm1We1RGxaTXo2E5H8Da+MQlmRfM
      TskZ+xEgwzq26yJTcaSfP9UCgYBwbzUkYcBZUQZnzRP/EFUIP5HpbMkz7A7g7q76
      a/qCtV0g7Uq2auvvBhXDQGxB19d03NyBac2StGm/AbHIIM0LJIJ+9dOhAZvfcN9O
      REGh7SJuletI1fWvUxxoeCZQ/ioajiYBkan3d80n46hw+2IApn+CeoeJaOKiOV88
      y5brdQKBgQCZ3pDpf4wKfR2IYDRLHXsxG4s8Td25HNtIt/ejmnGPWYQgDHl2dLpU
      RzTTI6lIFaLTEPAVc4VhlfoltFvLSbm8fUoQfHhPEaGJeDzKSLq52oOQtYMZ/iIR
      P6KH210ZgZjuJHQOUqeA954epRnbIosgrWz0G7qNjrpoHZkPcWXxmQ==
      -----END RSA PRIVATE KEY-----

      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      安裝jenkins集成gitlab所需的插件,下載鏈接:https://pan.baidu.com/s/1p_jh8X3ma46SEV_tKLKYbw
      提取碼:zoej
      安裝插件,如圖:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      依次上傳我提供的包,順序如下:gitlab-oauth——>gitlab-plugin ——> windows-slaves ——>ruby-runtime ——>gitlab-hook即可!
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      清華大學(xué)Jenkins源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

      gitlab服務(wù)器提交代碼到gitlab,測試?yán)〈a:

      [root@gitlab ~]# cd web-demo/
      [root@gitlab web-demo]# git config --global user.email "you@example.com"
      [root@gitlab web-demo]# git config --global user.name "Your Name"
      [root@gitlab web-demo]# echo "123" >> 123.txt
      [root@gitlab web-demo]# git add .
      [root@gitlab web-demo]# git commit -m '123'
      [root@gitlab web-demo]# git push origin master

      Jenkins服務(wù)器進(jìn)行構(gòu)建:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      構(gòu)建成功!

      五、部署Nginx

      使用Nginx來模擬上線環(huán)境!

      [root@nginx ~]# yum install -y gcc gcc- c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree
      #由于是最小化安裝的系統(tǒng),所以安裝一些必要的軟件
      [root@nginx ~]# vim /etc/yum.repos.d/nginx.repo
      #配置nginx的yum源,Nginx官方也有相應(yīng)的配置信息
      [nginx]
      name=nginx_repo 
      baseurl=http://nginx.org/packages/centos/7/$basearch/
      gpgcheck=0
      enabled=1
      #該yum源默認(rèn)情況下安裝的是nginx最新的、穩(wěn)定版
      [root@nginx ~]# yum -y install nginx              #安裝nginx
      #對nginx的版本沒有要求,只是為了使用訪問效果而已
      [root@nginx ~]# rm -rf /etc/nginx/conf.d/default.conf        
      #刪除默認(rèn)的配置文件
      [root@nginx ~]# vim /etc/nginx/conf.d/server.conf
      #新建配置文件
      server {
              listen 80;
      
              location / {
                      root /code/web;
                      index index.html index.htm;
              }
      }
      [root@nginx ~]# mkdir -p /code/web
      [root@nginx ~]# nginx -t
      [root@nginx ~]# systemctl start nginx

      六、Jenkins實(shí)現(xiàn)代碼自動上線

      1)Jenkins服務(wù)編寫上線腳本
      [root@jenkins ~]#mkdir /scripts && cd /scripts/
      [root@jenkins scripts]# vim html_deploy.sh 
      #!/bin/bash
      DATE=$(date +%Y-%m-%d-%H-%M-%S)
      web_server="192.168.1.8"
      Sdir=/opt
      Ddir=/code
      
      #1)進(jìn)入項(xiàng)目目錄,將內(nèi)容進(jìn)行打包,${WORKSPACE}是Jenkins的內(nèi)置變量,表示構(gòu)建目錄的絕對路徑
      get_code(){
              cd ${WORKSPACE} && \
              tar zcf ${Sdir}/web-${DATE}.tar.gz ./*
      }
      #2)將內(nèi)容通過scp復(fù)制到web網(wǎng)頁目錄
      scp_web_server(){
      for hosts in ${web_server}
      do
              scp ${Sdir}/web-${DATE}.tar.gz root@${hosts}:/opt
              ssh root@${hosts} "mkdir -p ${Ddir}/web-${DATE} && \
                              tar zxf ${Sdir}/web-${DATE}.tar.gz -C ${Ddir}/web-${DATE}
                              rm -rf ${Ddir}/web && \
                              ln -s ${Ddir}/web-${DATE} ${Ddir}/web"
      done
      }
      
      deploy(){
              get_code
              scp_web_server
      }
      
              deploy
      [root@jenkins scripts]# chmod +x html_deploy.sh 
      [root@jenkins scripts]# ps -ef | grep jenkins
      #可以看出jenkins的運(yùn)行用戶是jenkins
      jenkins   58626      1  1 11:23 ?        00:00:39 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkinsjenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
      root      61336   2046  0 12:06 pts/0    00:00:00 grep --color=auto jenkins
      [root@jenkins scripts]# vim /etc/sysconfig/jenkins 
      JENKINS_USER="root"
      #為了防止權(quán)限問題,直接將jenkins的運(yùn)行用戶改為root
      [root@jenkins scripts]# systemctl restart jenkins
      #重啟jenkins服務(wù)
      [root@jenkins scripts]# ssh-copy-id root@192.168.1.8
      #配置Jenkins可以免密登錄到nginx服務(wù)器
      2)git服務(wù)器編輯網(wǎng)頁代碼并上傳:
      [root@gitlab web-demo]# echo "lvzhenjiang" >> index.html
      [root@gitlab web-demo]# git add .
      [root@gitlab web-demo]# git commit -m "first"
      [root@gitlab web-demo]# git push origin master

      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      有興趣可以構(gòu)建時的控制臺輸出!

      訪問nginx進(jìn)行測試!
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      確認(rèn)是剛才gitlab服務(wù)器提交的代碼信息!

      [root@nginx ~]# ll /code                    #查看網(wǎng)頁目錄實(shí)現(xiàn)的具體過程
      #可以查看到真正的網(wǎng)頁目錄是別的目錄鏈接過去的
      
      總用量 0
      lrwxrwxrwx 1 root root 29 2月  25 19:37 web -> /code/web-2020-02-25-19-37-13
      drwxr-xr-x 2 root root 39 2月  25 19:37 web-2020-02-25-19-37-13

      這種方式發(fā)布還有很多地方需要完善,比如回退,接下來使用tag的方式發(fā)布!

      七、Jenkins實(shí)現(xiàn)代碼自動部署與回退及重復(fù)構(gòu)建

      讓項(xiàng)目支持tag的方式上線,便于我們進(jìn)行區(qū)分!

      1)git服務(wù)器創(chuàng)建幾個tag標(biāo)簽并上傳至gitlab:
      [root@gitlab ~]# cd web-demo/
      [root@gitlab web-demo]# echo "

      lvzhenjiang-version-v1.1

      " > index.html [root@gitlab web-demo]# git add . [root@gitlab web-demo]# git commit -m "v1.1" [root@gitlab web-demo]# git push origin master [root@gitlab web-demo]# git tag -a "v1.1" -m "v1.1" [root@gitlab web-demo]# git push origin v1.1 [root@gitlab web-demo]# echo "

      lvzhenjiang-version-v1.2

      " > index.html [root@gitlab web-demo]# git add . [root@gitlab web-demo]# git commit -m "v1.2" [root@gitlab web-demo]# git push origin master [root@gitlab web-demo]# git tag -a "v1.2" -m "v1.2" [root@gitlab web-demo]# git push origin v1.2 [root@gitlab web-demo]# echo "

      lvzhenjiang-version-v1.3

      " > index.html [root@gitlab web-demo]# git add . [root@gitlab web-demo]# git commit -m "v1.3" [root@gitlab web-demo]# git push origin master [root@gitlab web-demo]# git tag -a "v1.3" -m "v1.3" [root@gitlab web-demo]# git push origin v1.3
      2)Jenkins服務(wù)器安裝插件并配置:

      使用該方式就需安裝插件:Git Parameter。

      安裝方式:系統(tǒng)管理——>插件管理——>可選插件——搜索Git Parameter——>直接安裝!

      [root@jenkins ~]# systemctl restart jenkins
      #安裝完成后,需重啟Jenkins!
      [root@jenkins ~]# cd /scripts/
      [root@jenkins scripts]# vim html_deploy_tag.sh      #優(yōu)化腳本
      #!/bin/bash
      DATE=$(date +%Y-%m-%d-%H-%M-%S)
      web_server="192.168.1.8"
      Sdir=/opt
      Ddir=/code
      Name=${DATE}-${git_version}                 #${git_version}是在jenkins界面定義的變量
      
      #1)進(jìn)入項(xiàng)目目錄,將內(nèi)容進(jìn)行打包
      #${WORKSPACE}是Jenkins的內(nèi)置變量,表示構(gòu)建目錄的絕對路徑
      get_code(){
              cd ${WORKSPACE} && \
              tar zcf ${Sdir}/web-${Name}.tar.gz ./*
      }
      #2)將內(nèi)容通過scp復(fù)制到web網(wǎng)頁目錄
      scp_web_server(){
      for hosts in ${web_server}
      do
              scp ${Sdir}/web-${Name}.tar.gz root@${hosts}:/opt
              ssh root@${hosts} "mkdir -p ${Ddir}/web-${Name} && \
                              tar zxf ${Sdir}/web-${Name}.tar.gz -C ${Ddir}/web-${Name}
                              rm -rf ${Ddir}/web && \
                              ln -s ${Ddir}/web-${Name} ${Ddir}/web"
      done
      }
      
      deploy(){
              get_code
              scp_web_server
      }
      
              deploy
      [root@jenkins scripts]# chmod +x html_deploy_tag.sh 

      接下來:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      訪問nginx:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      [root@nginx ~]# ll /code     #這樣就可以很清楚的查看構(gòu)建的是哪個版本
      總用量 0
      lrwxrwxrwx 1 root root 34 2月  25 20:21 web -> /code/web-2020-02-25-20-21-18-v1.3
      drwxr-xr-x 2 root root 39 2月  25 19:37 web-2020-02-25-19-37-13
      drwxr-xr-x 2 root root 39 2月  25 20:21 web-2020-02-25-20-21-18-v1.3

      部署到此。回退的問題仍沒有解決!比如:部署兩次v1.3版本就會產(chǎn)生兩個v1.3的目錄!

      3)解決版本回退、重復(fù)構(gòu)建的問題
      [root@jenkins scripts]# vim html_deploy_tag_rollback.sh     #優(yōu)化腳本,支持回退
      #!/bin/bash
      DATE=$(date +%Y-%m-%d-%H-%M-%S)
      web_server="192.168.1.8"
      Sdir=/opt
      Ddir=/code
      Name=${DATE}-${git_version}                 #${git_version}是在jenkins界面定義的變量
      
      #1)進(jìn)入項(xiàng)目目錄,將內(nèi)容進(jìn)行打包
      #${WORKSPACE}是Jenkins的內(nèi)置變量,表示構(gòu)建目錄的絕對路徑
      get_code(){
              cd ${WORKSPACE} && \
              tar zcf ${Sdir}/web-${Name}.tar.gz ./*
      }
      #2)將內(nèi)容通過scp復(fù)制到web網(wǎng)頁目錄
      scp_web_server(){
      for hosts in ${web_server}
      do
              scp ${Sdir}/web-${Name}.tar.gz root@${hosts}:/opt
              ssh root@${hosts} "mkdir -p ${Ddir}/web-${Name} && \
                              tar zxf ${Sdir}/web-${Name}.tar.gz -C ${Ddir}/web-${Name}
                              rm -rf ${Ddir}/web && \
                              ln -s ${Ddir}/web-${Name} ${Ddir}/web"
      done
      }
      
      rollback(){
      back_file=$(ssh root@${web_server} "find /code/ -maxdepth 1 -type d -name "web-*-${git_version}"")
      for hosts in ${web_server}
      do
              ssh root@${hosts} "rm -rf ${Ddir}/web && \
                 ln -s ${back_file} ${Ddir}/web"
      done
      }
      
      deploy(){
              get_code
              scp_web_server
      }
      #判斷之前是否部署過該版本的commit,如果沒有部署則部署,如果有則提示已經(jīng)部署過然后退出
      #如果是回退,則不受限制
      if [ ${deploy_env} == "deploy" ];then
              if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
                      echo "你已經(jīng)部署過該${git_version}版本"
                      exit 1
              else
                      deploy
              fi
      
      elif  [ ${deploy_env} == "rollback" ];then
              rollback
      fi
      [root@jenkins scripts]# chmod +x html_deploy_tag_rollback.sh 

      接下來配置:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      測試:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      web頁面:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      執(zhí)行回退操作:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾
      有興趣可以構(gòu)建時的控制臺輸出!

      web頁面:
      Jenkins實(shí)現(xiàn)html代碼上線與回滾

      [root@nginx ~]# ll /code            #可以看出只創(chuàng)建了一次v1.3的目錄
      總用量 0
      lrwxrwxrwx 1 root root 34 2月  25 20:46 web -> /code/web-2020-02-25-20-21-18-v1.3
      drwxr-xr-x 2 root root 39 2月  25 19:37 web-2020-02-25-19-37-13
      drwxr-xr-x 2 root root 39 2月  25 20:21 web-2020-02-25-20-21-18-v1.3
      drwxr-xr-x 2 root root 39 2月  25 20:46 web-2020-02-25-20-46-15-v1.1

      重復(fù)構(gòu)建、回退問題解決!

      ————————本文到此結(jié)束,感謝閱讀————————


      分享名稱:Jenkins實(shí)現(xiàn)html代碼上線與回滾
      當(dāng)前地址:http://www.ef60e0e.cn/article/ipidhs.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        芦溪县| 丰镇市| 罗源县| 横山县| 十堰市| 兰坪| 微山县| 皋兰县| 海城市| 固镇县| 喀什市| 营山县| 四子王旗| 长丰县| 乃东县| 遂昌县| 建瓯市| 阳西县| 罗山县| 交城县| 北安市| 长沙市| 巫山县| 黔江区| 汾阳市| 洛隆县| 手机| 安多县| 曲松县| 迭部县| 中牟县| 台东县| 怀安县| 徐闻县| 化德县| 恩施市| 尤溪县| 神农架林区| 鸡东县| 商河县| 报价|