jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

1.pipeline功能特點

1)是幫助jenkins實現持續集成CI(Continue Integration)轉變爲持續部署CD(Continue Deploy)的重要功能插件;

2)將多個節點的單個任務連接起來,實現單個任務難以實現的複雜發佈流程;

3)Pipeline 的實現方式是一套 Groovy DSL,所有的發佈流程都可以表述爲一段 Groovy 腳本;

4)是jenkins上的一套工作流框架.

2.pipeline語法

1)stage:pipeline可以劃分爲多個stage階段,每個是stage爲執行的一個操作,每個階段可以跨節點;

2)node:jenkins的節點,是執行操作的具體服務器;

3)step:是jenkins pipeline執行操作的最小單元.

3.查看jenkins添加的節點,node1節點同步成功並建立連接

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

4.pineline項目的創建、代碼部署

1)創建一個pipeline-job項目,選擇流水線

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

2)pipeline-job修改配置文件、設置丟棄舊的構建之間保存的最小和最大時間,此項根據需要可設置可不設置

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

3)再點擊Pipeline Syntax(流水線語法),填寫gitlab倉庫源地址、選擇認證方式、點擊Generate生成拉取代碼的pipeline腳本

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器
jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

4)在複製上面生成的拉取代碼的pipeline腳本,編寫pipeline構建腳本,保存配置

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

#以上構建的pipeline腳本:
node("node1"){
            stage("clone code"){
                 sh 'rm -rf /var/lib/jenkins/workspace/pipeline-job/*'
                 git branch: 'develop', credentialsId: '1f60339e-fbb3-41e6-88a7-ae80834823b4', url: '[email protected]:jie/web-page.git'
            }
             stage("compress code"){
                 sh 'cd /var/lib/jenkins/workspace/pipeline-job/ && tar cvf index_code.tar.gz *'
             }
             stage("send code"){
                 sh 'ssh 192.168.1.23 "/usr/sbin/nginx -s stop"'
                 sh 'ssh 192.168.1.23 "rm -rf /apps/nginx/html/*"'
                 sh 'scp /var/lib/jenkins/workspace/pipeline-job/index_code.tar.gz 192.168.1.23:/apps/nginx/html'  
             }
             stage("deploy code"){
                 sh 'ssh 192.168.1.23 "cd /apps/nginx/html/ && tar xvf index_code.tar.gz"'
                 sh 'ssh 192.168.1.23 "/usr/sbin/nginx"'
             }
        }

5)在node1節點生成祕鑰對

[root@node1 workspace]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YHTsZqXXSRMoV2ZG3gEgGYEzxdHEF4kNYlIc75Qy6JI root@node1
The key's randomart image is:
+---[RSA 2048]----+
|      oB%X+OX=.  |
|     .+=*+B**. . |
|      ++o=++.o.  |
|     + .==. o    |
|    E .oS..      |
|     .           |
|                 |
|                 |
|                 |
+----[SHA256]-----+

6)再將node1的公鑰認證authorized_keys複製到nginx後端服務.ssh目錄下,實現免祕鑰登錄nginx後端服務

[root@node1 ~]# ssh-copy-id 192.168.1.23

7)點擊立即構建

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

8)查看控制檯信息構建成功

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

9)驗證node1節點的工作目錄是否構建

root@node1 ~]# ll /var/lib/jenkins/workspace/pipeline-job
total 16
-rw-r--r-- 1 root root 10240 Jul 26 16:42 index_code.tar.gz
-rw-r--r-- 1 root root 42 Jul 26 16:42 index.html

10)瀏覽器訪問nginx服務,實現pipeline腳本代碼部署

jenkins的pipeline實現指定節點項目構建並部署代碼至後端服務器

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