jenkins參數構建、觸發器與流水線


一、Jenkins參數構建詳解

1、創建job

1.1 點擊配置,勾選參數化構建

1.2、點擊添加參數,有下面這些參數

2 、文本參數

2.1 構建參數

2.2、構建

2.3、輸出結果

其余參數的使用都差不多...

3、分支列表參數

3.1、添加參數

可以根據版本或者其他類型構建,可以部署對應的分支

if(NUMBER1.equals("上海市")){
    return ["徐匯區","青浦區","浦東區"]
}else {
    return ["朝陽區","海淀區","昌平區"]
}

4、級聯參數

4.1、第一個參數

先寫上級聯第一個參數

4.2、第二個參數

根據Referenced parameters:NUMBER1設置返回什么

達成的效果,可以根據參數1那兒下面的參數

5、憑據類型

5.1、添加憑據

5.2、使用憑據

之后直接構建即可,去[root@jenkins ~]# cd /var/lib/jenkins/workspace/Django 目錄中查看是否拉取代碼

二、構建觸發器

1、推送分支時構建

並且下面的秘密令牌也要添加到gitlab

2、在gitlab中添加

但是會報錯需要設置一個東西,選中下面的

最后gitlab一點測試提交,Jenkins都會構建

三、部署Django

需要准備一個服務器

1、准備環境

1、安裝python3和uwsgi
yum install python3 python3-devel -y
pip3 install django==2.2.2
pip3 install uwsgi

2、創建用戶
[root@k8s-node-01 opt]# groupadd www -g 666
[root@k8s-node-01 opt]# useradd www -u 666 -g 666 -r -M -s /sbin/nologin

3、創建目錄
mkdir /opt/linux

4、並且項目配置文件修改
ALLOWED_HOSTS = ['*']
DATABASES = {
}

2、遠程鏈接

1、在Jenkins服務器上配置私鑰
[root@jenkins Django]# ssh-keygen

2、把私鑰添加到圖形化界面里的私鑰,添加如下

3、給測試服務器做免密,不然鏈接不上
[root@jenkins Django]# ssh-copy-id root@192.168.15.102

在系統配置最下方設置

4、配置構件化操作

5、上傳配置文件:myweb.ini

[uwsgi]
# 端口號
socket          = :8000
# 指定項目的目錄
chdir           = /opt/linux
# wsgi文件路徑
wsgi-file       = linux/wsgi.py
# 模塊wsgi路徑
module          = linux.wsgi
# 是否開啟master進程
master          = true
# 工作進程的最大數目
processes       = 4
# 結束后是否清理文件
vacuum          = true
# 指定PID文件路徑
pidfile         = /var/run/linux.pid
# 以守護進程方式運行的日志路徑
daemonize       = /var/log/uwsgi.log
# 服務停止時自動移除unix Socket和pid文件
vacuum          = true

5、構建

6、構建成功安裝nginx代理

1、安裝nginx
yum install nginx -y

2、修改nginx配置
[root@k8s-node-01 linux]# vim /etc/nginx/conf.d/django.conf
server {
        # 監聽的端口
        listen 80;
        # 配置域名
        server_name bbs.test.com;
        # 配置路徑
        location / {
                # 加載Nginx代理uwsgi的配置項 
                include uwsgi_params;
                # 指定uwsgi的訪問地址
                uwsgi_pass 127.0.0.1:8000;
                # 連接uwsgi的超時時間
                uwsgi_read_timeout 2;
                # 自定義uwsgi代理項目的路徑及配置項
                uwsgi_param UWSGI_SCRIPT linux.wsgi;
                # 指定python項目的路徑
                uwsgi_param UWSGI_CHDIR /opt/linux;
                # 索引文件
                index  index.html index.htm;
                # 客戶端上傳文件的最大值
                client_max_body_size 35m;
        }
}

3、測試
[root@k8s-node-01 linux]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@k8s-node-01 linux]# systemctl restart nginx

成功代理

四、流水線

1、創建流水線

2、流水線語法

# 流水線
pipeline {
    agent any  # 在當前環境運行,any:當前環境
    
    # 階段
    stages {
        # 步驟
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

3、創建環境

創建標簽

4、拉取代碼

把下面生成的腳本添加到上邊里面

5、切換分支

6、構建后操作

7、最后構建腳本

pipeline {
    agent any

    stages {
      stage('拉取代碼') {
        steps {
         git credentialsId: '581c633b-5bba-4f2c-aa03-162f887dcef7', url: 'git@192.168.15.104:linux/linux.git'
        }
      }
      stage('切換分支') {
          steps {
           		sh '''#!/bin/bash
                 git checkout $GIT_TAG'''
          }
        }
      stage('部署代碼') {
          steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s-node-01', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#!/bin/bash
cd /opt/linux
if [ -f /var/run/linux.pid ];then
	/usr/local/bin/uwsgi --reload /var/run/linux.pid
else
	/usr/local/bin/uwsgi --uid 666 --gid 666 myweb.ini
fi''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
          }
        }
    }
}

部署成功

8、測試

五、流水線的賦值

1、先創建一個倉庫

2、復制鏈接到Jenkins並且創建流水線

把秘鑰添加到下面

3、創建流水線之拉取代碼

4、切換分支

5、編譯

6、部署完畢

7、知道出現下面就代表創建流水線成功

8、使用

8.1 創建一個空流水線並且把生成流水線的倉庫地址復制給它


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM