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 创建一个空流水线并且把生成流水线的仓库地址复制给它

posted @   迷恋~以成伤  阅读(969)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示