Luckean's blog Luckean's blog
首页
  • 前端文章

    • JavaScript
  • 项目笔记

    • 项目笔记
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • flutter 布局
  • dart 数组的定义
  • java目录
  • jenkins配置
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • vscode vim 结合使用
  • vscode vim 汇总
  • vscode快捷键
  • vscode自定义快捷键
  • typora 使用技巧
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Luckean

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 项目笔记

    • 项目笔记
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • flutter 布局
  • dart 数组的定义
  • java目录
  • jenkins配置
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • vscode vim 结合使用
  • vscode vim 汇总
  • vscode快捷键
  • vscode自定义快捷键
  • typora 使用技巧
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • java目录
  • jenkins配置
    • jenkins官网
    • 安装java
    • 上传jar文件到服务器
  • 服务器流程
  • sh部署 scp免密
  • v2ray,X-ui,Xray 面板,v2rayA
  • 服务器杂学
  • docker
  • ubuntu 开启root权限登陆
  • 如何在Centos7 系统开放端口
  • pip命令安装
  • yapi mongo
  • paste
  • ssl 证书申请
  • chevereto 图床搭建
  • linux tar 解压命令
  • 服务器
Luckean
2022-06-28
目录

jenkins配置

# jenkins配置

# 更新系统

ubuntu debian系统

apt update -y
1

centos系统

yum update -y
1

# jenkins官网

https://www.jenkins.io/

# 安装java

安装包

链接:https://pan.baidu.com/s/1MK3coD5eGh-05-fqURDbMw 提取码:7k2v

centos系统 https://pkg.jenkins.io/redhat-stable/

image-20221207220213627

debian/ubuntu系统 https://pkg.jenkins.io/debian-stable/

# 上传jar文件到服务器

start

#jenkins.war
mkdir /root/jenkins -p
cd /root/jenkins
nohup java -jar jenkins.war --httpPort=18080 > system.log 2>&1 &  #自定义端口号 这里是18080
1
2
3
4

# jenkins 服务挂掉

ps -ef | grep java

root      344735 50.7 12.7 4587204 445088 pts/0  Sl   22:32   0:24 java -jar jenkins.war --httpPort=18080
root      345056  0.0  0.0   6300   660 pts/0    S+   22:32   0:00 grep --color=auto jenkins

一个进程是 Jenkins 服务进程,它的命令是 java -jar jenkins.war --httpPort=18080。这个进程的用户是 root,进程 ID 是 344735,它占用了一定的 CPU 和内存资源。
另一个进程是执行 grep 命令搜索 jenkins 关键词的进程。它的命令是 grep --color=auto jenkins,它会显示包含 jenkins 的进程信息。这个进程的用户是 root,进程 ID 是 345056。


kill -9 344735

在start
1
2
3
4
5
6
7
8
9
10
11
12

访问ip:端口号 /域名:端口号

# Jenkins 环境安装

1.在系统设置 (盾)> 插件设置 (manager pluins)> 可选插件 > 输入 Generic Webhook Trigger 勾选 安装 跳转安装页 底部勾选下载完成重启jenkins

2.git ssh 服务器配置 > 最好在服务器成功 git clone 项目 > 再去配置jenkins

ps: 调试最好让里面的命令 在窗口通过

# Jenkins Nodejs项目部署

image-20230208001719309

image

# 选择参数(Choise Parameter)
名称
status

选项
Deploy
Rollback

描述
Deploy:【发布】
Rollback:【回滚】
1
2
3
4
5
6
7
8
9
10
11
# 字符串参数(string parameter)
version

0

回滚的版本号
1
2
3
4
5
6

img


1

# 添加选项参数

image-20220628022949363

# 添加字符参数

image-20220628023008672

# 添加构建shell脚本

定义参数

PUSH_IP="IP"                                      #服务器IP
EXCUTE_PATH="/www/wwwroot/lara4"                 #服务器上传位置路径
PROJECT_PATH="blue-collar"                       #要跟jenkins 任务名称一样
PROJECT_NAME="blue-collar.tar.gz"                #打包名称
1
2
3
4

根据送参执行构建

case $status in
Deploy)
    echo "======status:$status========="
echo $PATH
echo "========编译打包开始,刷新下环境变量文件========="

source /etc/profile
echo "====查看npm版本,看npm命令是否失效===="

npm -v
pnpm -v
pnpm install
npm run build
## 打开jenkins工作目录项目文件夹

cd /root/.jenkins/workspace/$PROJECT_PATH/
ls
## 将打包好的文件夹,压缩,方便后续scp传输

echo "================将dist文件夹打成压缩包========================="

tar czvf /root/.jenkins/workspace/$PROJECT_PATH/$PROJECT_NAME  dist
echo "========开始上传dist文件到测试服============="


scp  $PROJECT_NAME  root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_NAME
echo "==================上传完成===================="
echo "==================解压===================="

ssh  root@$PUSH_IP << eeooff
cd $EXCUTE_PATH
tar -xzvf $PROJECT_NAME
exit
eeooff
## 可以先手动在jenkins工作目录下新建一个backup_web文件夹,省的在脚本里写判断,再去建文件夹=====
echo "======移动压缩包到备份文件夹========================="

mv $PROJECT_NAME  /root/.jenkins/workspace/backup_web/$PROJECT_NAME.$BUILD_NUMBER
  echo "deploy done!"
    ;;
Rollback)
echo "======status:$status========"
echo "======build_id:$version======="
backup_path="${JENKINS_HOME}/workspace/backup_web"
cd $backup_path
echo "==============把想要回滚的jar包发送到测试服务器==================="
scp  $PROJECT_NAME.$version  root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_NAME
echo "==================上传完成===================="
echo "==================解压===================="
ssh  root@$PUSH_IP "cd $EXCUTE_PATH;tar -xzvf $PROJECT_NAME;exit"
    echo "roll_back done!"
    ;;
*)
esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

第二版

#!/bin/bash
CURRENT_PATH=`pwd`                               #目录
PUSH_IP="49.232.***.**"                         #服务器IP
EXCUTE_PATH="/www/wwwroot/****"                       #服务器上传位置路径
PROJECT_PATH="blue-dollar-admin-rebuild"                      #要跟jenkins 任务名称一样
PROJECT_NAME="blue-dollar-admin-rebuild.tar.gz"                        #打包名称

case $status in
Deploy)
    echo "======status:$status========="
echo $PATH
echo "========编译打包开始,刷新下环境变量文件========="

source /etc/profile
echo "====查看npm版本,看npm命令是否失效===="
cd /root/.jenkins/workspace/$PROJECT_PATH/
ls
npm -v
pnpm -v
pnpm install --no-frozen-lockfile
pnpm run build:test
## 打开jenkins工作目录项目文件夹

## 将打包好的文件夹,压缩,方便后续scp传输

echo "================将dist文件夹打成压缩包========================="
#tar czvf $PROJECT_NAME -C /root/.jenkins/workspace/$PROJECT_PATH dist .
tar zcvf $PROJECT_NAME -C dist .
echo "===检测npm打包是否成功==="
if [ -d "./dist" ];then
    echo "打包文件存在,程序继续执行"
else
    echo "打包文件不存在,程序终止,请检查打包失败原因"
    exit 1
fi
#tar czvf /root/.jenkins/workspace/$PROJECT_PATH/$PROJECT_NAME.  dist .
echo "========开始上传dist文件到测试服============="

scp  ../$PROJECT_PATH.sh    root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_PATH.sh
scp  $PROJECT_NAME  root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_NAME
echo "==================上传完成===================="

echo "==================解压===================="

#ssh  root@$PUSH_IP "cd $EXCUTE_PATH;tar -xzvf $PROJECT_NAME;chmod -R 755 $EXCUTE_PATH;chown -R www:www $EXCUTE_PATH;bash $PROJECT_PATH.sh"
ssh  root@$PUSH_IP "cd $EXCUTE_PATH;chmod +x $PROJECT_PATH.sh;bash $PROJECT_PATH.sh"
## 可以先手动在jenkins工作目录下新建一个backup_web文件夹,省的在脚本里写判断,再去建文件夹=====
echo "======移动压缩包到备份文件夹========================="
mkdir -p /root/.jenkins/workspace/backup_web/$PROJECT_PATH
find /root/.jenkins/workspace/backup_web/$PROJECT_PATH -mtime +1 -delete
mv $PROJECT_NAME  /root/.jenkins/workspace/backup_web/$PROJECT_PATH/$PROJECT_NAME.$BUILD_NUMBER
echo "==================删除本地的源文件=========="
rm -rf ../$PROJECT_PATH
  echo "deploy done!"
    ;;
Rollback)
echo "======status:$status========"
echo "======build_id:$version======="
backup_path="${JENKINS_HOME}/workspace/backup_web/$PROJECT_PATH"
cd $backup_path
echo "==============把想要回滚的包发送到测试服务器==================="
scp  $PROJECT_NAME.$version  root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_NAME
echo "==================上传完成===================="
echo "==================解压===================="
ssh  root@$PUSH_IP "cd $EXCUTE_PATH;tar -xzvf $PROJECT_NAME;exit"
    echo "roll_back done!"
    ;;
*)
esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

第三版

#!/bin/bash
CURRENT_PATH=`pwd`                               #目录
PUSH_IP="119.91.71.164"                         #服务器IP
EXCUTE_PATH="/www/wwwroot/www.hellocode.vip"                       #服务器上传位置路径
PROJECT_PATH="blog"                      #要跟jenkins 任务名称一样
PROJECT_NAME="blog.tar.gz"  #打包名称
DIST_PATH="docs/.vuepress/dist"  #打包路径

case $status in
Deploy)
    echo "======status:$status========="
echo $PATH
echo "========编译打包开始,刷新下环境变量文件========="

source /etc/profile
echo "====查看npm版本,看npm命令是否失效===="
cd /root/.jenkins/jobs/$PROJECT_PATH/workspace/
ls
npm -v
yarn -v
yarn install --no-frozen-lockfile
yarn run build
## 打开jenkins工作目录项目文件夹

## 将打包好的文件夹,压缩,方便后续scp传输

echo "================将dist文件夹打成压缩包========================="
#tar czvf $PROJECT_NAME -C /root/.jenkins/jobs/$PROJECT_PATH/workspace dist .
tar zcvf $PROJECT_NAME -C $DIST_PATH .
echo "===检测npm打包是否成功==="
if [ -d "./docs/.vuepress/dist" ];then
    echo "打包文件存在,程序继续执行"
else
    echo "打包文件不存在,程序终止,请检查打包失败原因"
    exit 1
fi
#tar czvf /root/.jenkins/jobs/$PROJECT_PATH/workspace.  dist .
#echo "========开始上传dist文件到测试服============="

#scp  ../$PROJECT_PATH.sh    root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_PATH.sh
#scp  $PROJECT_NAME  root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_NAME
#echo "==================上传完成===================="

echo "==================删除网站的源文件,创建文件夹===================="
rm -rf $EXCUTE_PATH
mkdir -p $EXCUTE_PATH

echo "==================解压===================="
tar -xzvf $PROJECT_NAME -C $EXCUTE_PATH

#ssh  root@$PUSH_IP "cd $EXCUTE_PATH;tar -xzvf $PROJECT_NAME;chmod -R 755 $EXCUTE_PATH;chown -R www:www $EXCUTE_PATH;bash $PROJECT_PATH.sh"
ssh  root@$PUSH_IP "cd $EXCUTE_PATH;chmod +x $PROJECT_PATH.sh;bash $PROJECT_PATH.sh"
## 可以先手动在jenkins工作目录下新建一个backup_web文件夹,省的在脚本里写判断,再去建文件夹=====
echo "======移动压缩包到备份文件夹========================="
mkdir -p /root/.jenkins/jobs/$PROJECT_PATH/backup_web
find /root/.jenkins/jobs/$PROJECT_PATH/backup_web -mtime +1 -delete
mv $PROJECT_NAME  /root/.jenkins/jobs/$PROJECT_PATH/backup_web/$PROJECT_NAME.$BUILD_NUMBER
echo "==================删除本地的源文件=========="
rm -rf ../$PROJECT_PATH
  echo "deploy done!"
    ;;
Rollback)
echo "======status:$status========"
echo "======build_id:$version======="
backup_path="${JENKINS_HOME}/jobs/$PROJECT_PATH/backup_web"
cd $backup_path
echo "==============把想要回滚的包发送到测试服务器==================="
scp  $PROJECT_NAME.$version  root@$PUSH_IP:$EXCUTE_PATH/$PROJECT_NAME
echo "==================上传完成===================="
echo "==================解压===================="
ssh  root@$PUSH_IP "cd $EXCUTE_PATH;tar -xzvf $PROJECT_NAME;exit"
    echo "roll_back done!"
    ;;
*)
esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

目标机器脚本

#!/bin/bash
PROJECT_NAME="blue-dollar-admin-rebuild"
EXCUTE_PATH="/www/wwwroot/******"
echo "*********删除上一版本的文件*********"
rm -rf assets
echo "*********解压***********"
tar -xzvf $PROJECT_NAME.tar.gz
chmod -R 755 $EXCUTE_PATH
chown -R www:www $EXCUTE_PATH
chmod 644 `find ../pc -type f`
echo "列出本目录文件权限"
ls -al
echo "修改文件权限完成"
echo "删除打包文件和远程脚本"
rm -rf ./$PROJECT_NAME.tar.gz
rm -rf ./$PROJECT_NAME.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
上次更新: 2023/07/18, 00:17:35
java目录
服务器流程

← java目录 服务器流程→

最近更新
01
Mac配置nginx+php
08-23
02
p12文件的生成
08-22
03
mac 程序安装失败解决
08-18
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Lucking | 粤ICP备2022078904号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式