Jenkins的一些其他操作

news2024/11/13 3:34:59

Jenkins的一些其他操作

1、代码仓库Gogs的搭建与配置

Gogs 是一款极易搭建的自助 Git 服务,它的目标在于打造一个最简单、快速和轻松的方式搭建 Git 服务。使用 Go

语言开发的它能够通过独立的二进制进行分发,支持了 Go 语言支持的所有平台,包括 Linux、Mac OS、

Windows 以及 arm 平台。与传统 Git 相比它最大的优势在于拥有图形化界面。

1.1 下载镜像

# 搜索镜像
$ docker search gogs

在这里插入图片描述

# 下载镜像
$ docker pull gogs/gogs

在这里插入图片描述

1.2 创建Gogs容器

$ docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs

在这里插入图片描述

1.3 使用浏览器进行访问

访问路径:http://192.168.160.165:3000

在这里插入图片描述

填写相关信息:

此处选择数据库类型为:SQLite3

修改域名为:192.168.160.165

修改应用 URL 为:http://192.168.160.165:3000/

在这里插入图片描述

在这里插入图片描述

随后点击立即安装,Gogs 安装与配置完成。

注册用户用户名和密码:

在这里插入图片描述

在这里插入图片描述

然后进行登录:

在这里插入图片描述

至此,代码仓库Gogs搭建完成。

2、Gitee API令牌配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击创建:

在这里插入图片描述

在这里插入图片描述

点击系统配置:

在这里插入图片描述

在这里插入图片描述

配置好信息之后点击测试连接,显示成功代表配置成功。

3、打包Maven项目为Docker镜像并运行

我们在代码仓库https://gitee.com/zsx242030/jenkins_demo.git中添加 Dockerfile 文件:

FROM java:8
COPY target/*.jar /app.jar
CMD ["--server.port=9999"]
EXPOSE 9999
ENTRYPOINT ["java","-jar","/app.jar"]

和 pom.xml 在同一个目录下。

修改 jenkins 执行脚本:

#!/bin/bash
mvn clean package
docker stop jenkins_demo
docker rm jenkins_demo
docker rmi jenkins_demo
docker build -t jenkins_demo .
docker run -d -p 9999:9999 --name jenkins_demo jenkins_demo:latest

4、Docker安装Jenkins配置Jenkins镜像加速

# 宿主机上
cd /var/jenkins_home
vi hudson.model.UpdateCenter.xml

将url地址改为下面的,不然后面安装jenkins插件很慢 :

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>
# 宿主机上
cd /home/jenkins_home/updates

# 替换url
sed -i 's#https://updates.jenkins.io/download#https://mirrors.huaweicloud.com/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json 

再进入插件下载管理页面 http://ip:9090/pluginManager/advanced,使用

https://cdn.jsdelivr.net/gh/jenkins-zh/update-center-mirror/tsinghua/current/update-center.json

替换原来的json

5、Jenkins容器内部安装python3

5.1 前置准备

# 进入容器
$ docker exec -it 68268e74ba86 /bin/bash

# 获取最新的软件包
$ apt-get update

# 升级已安装的软件包
$ apt-get upgrade

# 提前安装,以便接下来的配置操作
$ apt-get -y install gcc automake autoconf libtool make
$ apt-get -y install make* 
$ apt-get -y install zlib*
$ apt-get -y install openssl libssl-dev
$ apt-get install sudo
$ apt-get install wget

5.2 下载python

$ cd /usr/local/src

$ wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
# 或者
$ wget  http://npm.taobao.org/mirrors/python/3.9.10/Python-3.9.10.tgz

$ tar -zxvf Python-3.9.10.tgz 
$ mv Python-3.9.10 py3.9.10
$ cd py3.9.10

5.3 make编译安装

$ ./configure --prefix=/var/jenkins_home/python3 --with-ssl
$ make
$ make install

5.4 添加软链接

# 添加python3软链接
$ ln -s /var/jenkins_home/python3/bin/python3.9 /usr/bin/python3

# 添加pip3软链接 
$ ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3

5.5 添加环境变量

# 配置环境变量
$ vim /root/.bashrc
# 添加如下内容
export PATH=/var/jenkins_home/python3/bin:$PATH 

# 配置文件生效
$ source /root/.bashrc

5.6 测试

$ python3 --version
Python 3.9.10
5.7 python依赖安装
# 首先在python项目的根目录下生成一个requirement.txt文件
$ pip3 freeze > requirements.txt  

# 然后将requirement.txt上传到主机,从主机复制到容器内指定位置
$ docker cp requirements.txt jenkins:/usr/local/src

# 最后安装项目所需的第三方库
$ pip3 install -r requirements.txt
$ pip3 install  -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 注意如果你想手动在服务器运行代码,需要指定你的Python环境地址安装库
pip3 install --target=/var/jenkins_home/python3/lib/python3.9/site-packages -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# 注意: --target指定的是之前创建Python环境的目录,我们需要将库安装在此目录下,因为我们的Python环境使用
# 的是该路径,如果只是执行pip3 install的话,会将库装在全局环境,但我们的Python环境又使用的不是全局环境
# 执行Python代码时会报错,找不到库
# 如果找不到pip3命令执行安装
apt -y install python3-pip

6、安装allure

$ cd /usr/local/src

$ wget https://github.com/allure-framework/allure2/releases/download/2.22.1/allure-2.22.1.zip

# 也可以去https://github.com/allure-framework/allure2/releases下载安装包
# 然后上传到docker容器
$ docker cp allure-commandline-2.13.3.zip jenkins:/usr/local/src

# 解压
$ unzip allure-2.22.1.zip

# 授权
$ mv allure-2.22.1 allure
$ chmod -R 777 allure

# 环境变量配置
$ vim /root/.bashrc
# 添加如下内容
export PATH=/usr/local/src/allure/bin:$PATH

# 配置文件生效
$ source /root/.bashrc

# 验证
$ allure --version
2.22.1

7、全局配置Allure Commandline

7.1 安装Allure插件

在这里插入图片描述

安装完之后进行重启。

7.2 配置全局Allure

在这里插入图片描述

7.3 项目中进行配置

在这里插入图片描述

7.4 查看

运行 jenkins,查看生成的报告。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

由于代码中并没有单元测试,所以生成的报告中为0。

8、Jenkins打包前端

安装 NodeJS插件。

在系统设置->全局工具配置中进行插件配置。

在项目中执行打包脚本。

9、Jenkins更改时区

在这里插入图片描述

在这里插入图片描述

10、钉钉机器人通知

10.1 安装DingTalk插件

在这里插入图片描述

10.2 钉钉创建机器人

钉钉群 -> 智能群助手 -> 添加机器人 -> 自定义。

获取到 webhook 的地址:

https://oapi.dingtalk.com/robot/send?access_token=57af98ce4ce5f5w5a66cb829df72c539ere0e8fe65e9093c6a254114ecf555f8

加签:

SEC5d2ad5bd4cea2c4cf6430145472cdd7q8dda5b8bea67a029fbdcbd84f7db7534

10.3 Jenkins中进行钉钉配置

进入系统管理:

在这里插入图片描述

点击钉钉,进行如下配置:

在这里插入图片描述

在这里插入图片描述

点击测试,成功,钉钉中会收到一条消息。

在这里插入图片描述

10.4 任务中添加机器人

在这里插入图片描述

10.5 运行打包

在这里插入图片描述

在这里插入图片描述

11、Jenkins打包go程序

安装插件

在这里插入图片描述

在系统设置->全局工具配置中进行插件配置

在这里插入图片描述

在项目中执行打包脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue修饰符(Vue事件修饰符、Vue按键修饰符)

目录 前言 Vue事件修饰符 列举较常用的事件修饰符 .stop .prevent .capture .once Vue按键修饰符 四个特殊键 获取某个键的按键修饰符 前言 本文介绍Vue修饰符&#xff0c;包括Vue事件修饰符以及按键修饰符 Vue事件修饰符 列举较常用的事件修饰符 .stop: …

【Linux基础IO篇】深入理解文件系统、动静态库

【Linux基础IO篇】深入理解文件系统、动静态库 目录 【Linux基础IO篇】深入理解文件系统、动静态库再次理解文件系统操作系统内存管理模块&#xff08;基础&#xff09;操作系统如何管理内存 Linux中task_struct源码结构 动态库和静态库动静态库介绍&#xff1a;生成静态库库搜…

IDEA安装配置SceneBuilder

1、下载 SceneBuilder 地址&#xff1a; Scene Builder - Gluon ​​​​​​​ Scene Builder | JavaFX中文官方网站 选择符合自己系统版本&#xff0c;JAVA版本的下载 2、安装SceneBuilder 执行下载的 SceneBuilder 安装程序&#xff0c;并按照安装向导的指示进行…

Pikachu漏洞练习平台之CSRF(跨站请求伪造)

本质&#xff1a;挟制用户在当前已登录的Web应用程序上执行非本意的操作&#xff08;由客户端发起&#xff09; 耐心看完皮卡丘靶场的这个例子你就明白什么是CSRF了 CSRF(get) 使用提示里给的用户和密码进行登录&#xff08;这里以lili为例&#xff09; 登录成功后显示用户…

(Matalb时序预测)GWO-BP灰狼算法优化BP神经网络的多维时序回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码展示&#xff1a; 四、完整代码数据说明手册下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于M…

SSH-远程连接服务器

一、理论知识 目前远程连接服务器的主要类型&#xff1a; 文字接口明文传输&#xff1a;Telnet、RSH 等为主&#xff0c;目前非常少用。文字接口加密&#xff1a;SSH 为主&#xff0c;已经取代上述的 Telnet、RSH 等明文传输方式。图形接口&#xff1a;XDMCP&#xff08;X Di…

Neo4j数据库介绍及简单使用

图数据库介绍 图数据库是一种专门设计用于存储和管理图形数据的数据库类型。在图数据库中&#xff0c;数据以图的形式表示&#xff0c;其中节点表示实体&#xff0c;边表示实体之间的关系。这种表示方式非常适合处理具有复杂关系的数据&#xff0c;如社交网络、推荐系统、网络…

安装部署PowerDNS--实现内网DNS解析(use)

使用PowerDNS实现内网DNS解析_powerdns-admin-CSDN博客 https://www.cnblogs.com/guangdelw/p/17348982.html 一、概念介绍 PowerDNS是一个域名解析服务&#xff0c;官网提供了三个组件&#xff1a;Authoritative、Recursor、dnsdist&#xff0c;分别用来作为权威服务器、域名递…

Leetcode——岛屿的最大面积

1. 题目链接&#xff1a;695. 岛屿的最大面积 2. 题目描述&#xff1a; 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都…

ssh脚本找不到命令或者执行无效的解决办法

如图&#xff1a;今天在编写脚本时发现的这个问题&#xff0c; 在排除脚本语法错误、编码格式等情况下&#xff0c;仍然出现“bash 。。未找到命令”的字样 解决办法&#xff1a; 给每台虚拟机的环境变量source一下&#xff1a; 命令如下 source /etc/profile或者输入 vim ~…

【数据结构】直接选择排序(你知道最不常用的排序算法有哪些吗?)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

【2023云栖】黄博远:阿里云人工智能平台PAI年度发布

本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;黄博远 | 阿里云计算平台事业部资深产品专家、阿里云人工智能平台PAI产品负责人 演讲主题&#xff1a;阿里云人工智能平台PAI年度发布 AIGC是我们这个时代的新机遇 今年云栖大…

单相过压继电器DVR-G-100-1 0~500V AC/DC220V 导轨安装

系列型号 DVR-G-100-1X3数字式过压继电器&#xff1b; DVR-G-100-3三相过压继电器&#xff1b; DVR(H)-G-100-1单相过压继电器&#xff1b; DVR-Q-100-3三相欠压继电器&#xff1b; DVR(H)-Q-100-3三相欠压继电器 一、用途 主要应用于电机、变压器等主设备以及输配电系统的继…

人工智能与大数据:驱动现代业务转型的双引擎

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和大数据已成为驱动业务和技术创新的关键力量。它们的结合不仅重塑了传统行业&#xff0c;也催生了新的商业模式和服务方式。 AI与大数据在零售行业的应用 在零售行业&#xff0c;AI和大数据的应用已经成为提…

代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和

LeetCode T1143 最长公共子序列 题目链接:1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 动规五部曲分析 1.确定dp数组的含义 这里dp数组的含义是结尾分别为i-1,j-1的text1和text2的最长公共子序列长度 至于为什么是i-1,j-1我之前已经说过了,这里再…

电池故障估计:Realistic fault detection of li-ion battery via dynamical deep learning

昇科能源、清华大学欧阳明高院士团队等的最新研究成果《动态深度学习实现锂离子电池异常检测》&#xff0c;用已经处理的整车充电段数据&#xff0c;分析车辆当前或近期是否存在故障。 思想步骤&#xff1a; 用正常电池的充电片段数据构造训练集&#xff0c;用如下的方式构造…

重生奇迹mu圣导师加点

重生奇迹mu圣导师加点&#xff1a;要攻击高可以加力量&#xff0c;平衡系建议加点力量600~800&#xff0c;智力200~400&#xff0c;敏够装备要求&#xff0c;统帅1000&#xff0c;其余加体力。 圣导师靠加力量培养高攻圣导师不现实&#xff0c;建议玩家练魔&#xff0c;低级圣…

【随手记录】Llama Tutorial 大语言模型实践 手把手系列带实践源码

这个tutorial的契机是yy突然看到了一个workshop 所以类似于一周大作业的形式&#xff0c;输入command输出使用了自动驾驶哪些模块&#xff0c;代码在这里 所以就干一干&#xff0c;顺便写一个tutorial给大家参考和教程 引申更多的应用 参考资料&#xff1a; https://github.c…

【软考篇】中级软件设计师 第三部分(二)

中级软件设计师 第三部分&#xff08;二&#xff09; 二十四. 概念设计阶段24.1 E-R模式24.2 E-R图 二十五. 网络和多媒体25.1 计算机网络分类25.2 OSI/RM参考模型25.3 网络互联硬件25.4 TCP/IP分层模型 二十六. IP地址26.1 子网划分26.2 特殊IP26.3 IPv626.4 冲突与和广播域26…

使用html2canvas插件进行页面截屏

使用纯html实现过程 <!DOCTYPE html> <html><head><title>使用html2canvas生成网页截图</title><script src"https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script> </head><body><h1>…