Kevin's blog Kevin's blog
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档

Kevin

你可以迷茫,但不可以虚度
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档
  • 手册教程

    • Linux常用指令
    • xxl-job环境 搭建
    • Yaml语言教程
    • Arthas手册
    • Jenkins教程
      • 1 环境信息
      • 2 maven配置仓库
      • 3 docker方式安装jekins
        • 3.1 docker拉取jekins
        • 3.2 创建挂载目录 并开放读写权限
        • 3.3 启动
        • 3.4 进入控制台
        • 3.5 查看初始化密码
        • 3.6 选择安装插件的方式
        • 3.7 等待安装完成,后续步骤按照界面提示即可
      • 4 安装插件
      • 5 配置jenkins
        • 5.1 全局环境配置
        • 5.2 配置maven
        • 5.3 配置nodejs
      • 6 系统配置
        • 6.1 Server Groups Center 配置服务器信息
        • 6.2 配置Server Group List
      • 7构建java项目
        • 7.1 构建策略
        • 7.2 git配置
        • 7.3 取消构建触发器
        • 7.4 配置maven构建命令
        • 7.5 配置FTP上传
        • 7.6 执行远程脚本或者命令发起部署
      • 8 构建VUE项目
        • 8.1 构建环境选择nodejs
        • 8.2 新增执行shell命令
        • 8.3 FTP上传
        • 8. 4 执行远程shell命令
        • 8.5 上传成功之后,删除包
      • 9 问题
    • ElasticSearch安装
    • Kibana安装
    • SkyWalking链路追踪
    • Zookeeper安装
    • Kafka集群搭建
    • Kafka Manager安装
    • MySQL安装
    • Canal数据同步
    • Markdown使用教程
    • canal环境搭建
  • 技术应用

  • 流程规范

  • GitHub技巧

  • VPN

  • Git笔记

  • 实用手册
  • 手册教程
luoxiaofeng
2022-04-26
目录

Jenkins教程

# 1 环境信息

JDK1.8
maven 3.5.4
jenkins laster 
1
2
3

# 2 maven配置仓库

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>	
</mirrors>
1
2
3
4
5
6
7
8

# 3 docker方式安装jekins

# 3.1 docker拉取jekins

docker pull jenkins/jenkins:lts
1

# 3.2 创建挂载目录 并开放读写权限

mkdir -p /opt/work/jenkins
chmod 777 /opt/work/jenkins
chown -R 1000 /opt/work/jenkins
1
2
3

# 3.3 启动

docker run -d --name jenkins -p 9000:8080 -p 50000:50000  --restart=always -v /opt/work/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /opt/work/apache-maven-3.5.4:/usr/local/maven jenkins/jenkins:lts
1

# 3.4 进入控制台

http://ip:9000
等待界面初始化进入解锁界面
1
2

# 3.5 查看初始化密码

docker exec -it jenkins bash
cat /var/jenkins_home/secrets/initialAdminPassword
1
2

# 3.6 选择安装插件的方式

如果知道要安装哪些插件,就选择安装推荐的插件。

# 3.7 等待安装完成,后续步骤按照界面提示即可

# 4 安装插件

主要安装以下几个插件,在右上角进行搜索
Publish Over SSH -- 服务器操作插件 配置服务器信息 -- 暂未用到该方式
SSH2 Easy     -----  服务器操作插件 配置服务器信息
Maven Integration ----- maven插件 发布JAR包用
Git Parameter ----- git插件	拉取代码用
NodeJS Plugin ----- nodejs插件 发布VUE用
安装完后重启勾选右下角重启服务
1
2
3
4
5
6
7

# 5 配置jenkins

进入配置界面

# 5.1 全局环境配置

进入容器
docker exec -it jenkins bash
查看java home
echo $JAVA_HOME 获取java路径
界面点击新增jdk 取消自动安装
/opt/java/openjdk
1
2
3
4
5
6

# 5.2 配置maven

取消自动安装
在第3.3步骤中启动时配置了maven路径usr/local/maven 复制路径填入下面框格
1
2

# 5.3 配置nodejs

这个需要特别注意,需要根据目前开发的VUE版本安装对应的支持版本,否则可能导致构建失败。我第一次安装了nodejs14的版本就由于版本过高导致构建失败,后来重新安装了nodejs 12.16.2才正常构建成功。
1

# 6 系统配置

点击系统设置-系统设置

# 6.1 Server Groups Center 配置服务器信息

配置完成之后,需要先保存退出配置界面,再进入才可以配置Server List,否则可能找不到Server Group
1

# 6.2 配置Server Group List

# 7构建java项目

点击左侧菜单新建任务,然后选择构建一个MAVEN项目
1

# 7.1 构建策略

构建的版本保留几个作为回滚就够了,不需要一直保留着,以免占用服务器硬盘资源。
点击General勾选丢弃旧的构建,根据实际使用情况备份以下2个信息
	保持构建的天数
	保持构建的最大个数
还可以勾选参数化构建过程,对一些信息参数化。(这一步我暂时未做)
1
2
3
4
5

# 7.2 git配置

点击源码管理配置git信息,输入URL 添加认证 选择要构建的分支
如果做了参数化构建,这里就可以配置参数。
1
2

# 7.3 取消构建触发器

在构建触发器 取消勾选 “Build whenever a SNAPSHOT dependency is built”
1

# 7.4 配置maven构建命令

如果是单模块项目,则使用以下命令即可
clean install xxx -Dmaven.test.skip=true
如果是多模块项目,则需要确认构建的执行项目
clean install -pl xxx -am -amd -Dmaven.test.skip=true
-pl 标识指定构建某个模块
-am 是向下的。表示同时处理选定模块所依赖的模块。
-amd 是向上的。表示同时处理依赖选定模块的模块。
使用-am、-amd等时候,必须配合-pl指定模块使用
1
2
3
4
5
6
7
8

# 7.5 配置FTP上传

我没有使用SSH上传方式(懒的弄证书😂)
配置FTP方式上传包
Run only if build succeed 标识构建成功后才执行
target server对应的是jenkins容器里面的绝对路径
/var/jenkins_home/workspace/项目路径/target/jar包名.jar
remoteLocation  表示要上传到远程服务器的哪个位置
fileName 表示上传之后文件的名称
1
2
3
4
5
6
7

# 7.6 执行远程脚本或者命令发起部署

# docker构建部署命令例子
export BUILD_ID=dontKillMe 
innerport=8086 #docker容器内部端口
outport=8081 #docker容器外部端口
dockername=api #容器名称
web=api-0.0.1-SNAPSHOT #jar包名
webdir=/opt/work/api #docker构建路径
backup=/opt/work/backup #备份路径
bulid=/opt/work/bulid #jenkins 上传的路径
date=$(date +%Y%m%d%H%M) #备份的文件后缀
echo "####### 备份jar包 ##########"
cp $webdir/$web.jar $backup/$web-$date.jar #备份历史版本
rm -rf $webdir/$web.jar #删除历史版本
mv $bulid/$web.jar $webdir/$web.jar #拷贝最新版本到 构建路径
echo "####### 删除当前容器 ##########"
docker stop $dockername
sleep 10
docker rm $dockername
sleep 3
docker rmi $dockername
sleep 3
echo "####### 制作最新的当前镜像 ##########"
cd $webdir #进入构建路径
docker build -t $dockername .
echo "####### 启动当前最新的容器 ##########"
docker run -d --name $dockername -p $outport:$innerport $dockername
sleep 5
pid=`ps aux|grep $dockername|grep -v grep |grep -v "/bin/sh"| awk '{print $2}'`
if [ -z "${pid}" ]; then
echo "################################项目启动失败################################"
cat dsadsadas #使jenkins发布失败,导致构建项目不稳定
else
echo "################################项目启动成功#########################################"
fi
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

# 8 构建VUE项目

大部分的操作和构建Java项目一致,略微有点小区别。
第一步选择构建一个自由风格的软件项目
第一次构建要安装nodejs,时间会久点
1
2
3
1-3步与第7点一致
1

# 8.1 构建环境选择nodejs

1.要选择安装nodejs插件,在第4点已安装
2.点击构建环境,勾选Provide Node & npm bin/ folder to PATH
1
2

# 8.2 新增执行shell命令

cnpm install
cnpm run build
cd /var/jenkins_home/workspace/xxx
tar -cvf dist.tar dist/
1
2
3
4

# 8.3 FTP上传

# 8. 4 执行远程shell命令

export BUILD_ID=dontKillMe
innerport=8080
outport=8080
dockername=vue
web=dist
webdir=/opt/work/vue
backup=/opt/work/backup
bulid=/opt/work/bulid
date=$(date +%Y%m%d%H%M)
echo "####### 备份jar包 ##########"
cd $webdir
tar -cvf $web.tar  $web
cp $webdir/$web.tar $backup/$web-$date.tar
rm -rf $webdir/$web.tar
mv $bulid/$web.tar $webdir/$web.tar
tar -xvf $web.tar
rm -rf $web.tar
echo "####### 删除当前容器 ##########"
docker stop $dockername
sleep 10
docker rm $dockername
sleep 3
docker rmi $dockername
sleep 3
echo "####### 制作最新的当前镜像 ##########"
docker build -t $dockername .
echo "####### 启动当前最新的容器 ##########"
docker run -d --name $dockername -p $outport:$innerport $dockername
sleep 5
pid=`ps aux|grep $dockername|grep -v grep |grep -v "/bin/sh"| awk '{print $2}'`
if [ -z "${pid}" ]; then
echo "################################项目启动失败################################"
cat dsadsadas #使jenkins发布失败,导致构建项目不稳定
else
echo "################################项目启动成功#########################################"
fi
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

# 8.5 上传成功之后,删除包

cd /var/jenkins_home/workspace/xxx
rm -rf dist.tar
1
2

# 9 问题

目前碰到的大部分问题都是权限不足的问题

仓库的权限不足

chmod 777 -R /jenkins主目录/.m2/repository
1

bulid 目录权限不足

chmod 777 -R xxx
1

脚本执行异常 sh脚本要通过touch创建,如果从window放上去有字符的问题

上次更新: 2022/06/02, 11:20:10
Arthas手册
ElasticSearch安装

← Arthas手册 ElasticSearch安装→

最近更新
01
AI是如何学习的
06-05
02
chatGpt提示原则
06-05
03
提示词工程实践指南
06-05
更多文章>
| Copyright © 2022-2025 Kevin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式