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、部署完毕
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?