惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 热门话题
T
The Blog of Author Tim Ferriss
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
Netflix TechBlog - Medium
D
Docker
Engineering at Meta
Engineering at Meta
阮一峰的网络日志
阮一峰的网络日志
Recent Announcements
Recent Announcements
雷峰网
雷峰网
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
美团技术团队
C
Cisco Blogs
V2EX - 技术
V2EX - 技术
N
News and Events Feed by Topic
Latest news
Latest news
博客园 - 三生石上(FineUI控件)
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
C
CERT Recently Published Vulnerability Notes
S
Secure Thoughts
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
W
WeLiveSecurity
The Register - Security
The Register - Security
T
Tenable Blog
J
Java Code Geeks
The Cloudflare Blog
有赞技术团队
有赞技术团队
博客园 - 聂微东
P
Palo Alto Networks Blog
Security Latest
Security Latest
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
SegmentFault 最新的问题
H
Hacker News: Front Page
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
S
Security @ Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hacker News: Ask HN
Hacker News: Ask HN

Sehnsucht

记一次博客换图床的过程 观《花束般的恋爱》 读《活过》 东京 旅行篇 亲人逝去 我为什么想养鱼 防止AI爬取你的博客 「monthly 」博客重构 游戏全成就 好看的小说 人生的每一步都不会是浪费-2024年终 「weekly」星期五综合征 「weekly」听播客 杂谈 读《美丽新世界》 「weekly」社交媒体 恶性事件 新世界 「weekly」认知觉醒 美丽新世界 follow 「weekly」独立博客9问题 双十一买书 读《惊呆了!原来这就是社会学》 一次聊天与自我建设 2024-09月记 补番《relife》 树状数组简单理解 lvm简单使用 博客自动发布方案 某公众号废案 fail2ban基本使用 Podman 环境使用 Nginx Proxy Manager 最佳实践 2024-07同学聚会 vps使用podman部署freshrss Gitlab CICD 实践,思考与记录 装备升级:新的PC gitlab局域网搭建流程 FastMail迁移至GMail+Cloudflare Email Routing 读《黑客与画家》 leetcode 第 391 场周赛 Astro添加过渡后DarkModeToggle按钮失效 nuxt3使用echarts5渲染中国地图 人生刻度 又到凤凰花朵开放的时候 2023-05-10 实习结束 2023-04-26 广州博物馆游记 YOASOBI「たぶん」官方音乐视频 风灵玉秀-发如雪 带我的老哥离职了 从p10k转向Starship lunarvim国内安装踩坑记录 什么是对称加密非对称加密、密钥交换、数字签名、证书 强调体验的一种思考时间的方式 ArchLinux使用vscode编写latex报错The font "FontAwesome" cannot be found ArchLinux安装(移动硬盘)流程 yay一个或多个文件没有通过有效性检查! 2022年终 hugo建站伊始 clash设置relay前置代理(校园网破解改进记录) 群青 · YOASOBI · Ayase 华为 matepad pro 11使用体验 Nginx使用acme.sh免费安装ssl证书 永远属于你的安娜 在线 童年趣事 童心,是比野心更难得的梦想 2021年终总结 基于jeeSite的软件测试课程作业 流程记录 Linux不同用户安装不同版本jdk Wifi4更换Wifi6路由器的使用体验 Flask 上传图片并灰度显示 玩客云刷机debain个人记录 jython 简单入门 在Web项目中配置Log4j --指南-- Codeforces Round 753 (Div. 3) ABCDE 浅谈fork函数 JavaWeb servlet 使用Cookie记录用户访问次数 Codeforces Round Educational Codeforces Round 114 (Rated for Div. 2) ABC 2021牛客多校7 I xay loves or 2021牛客多校9 H Happy Number 2021牛客多校8 D OR 2021牛客多校5 B Boxes 2021牛客多校5 H Holding Two 2021牛客多校2 D Er Ba Game 2021牛客多校1 F Find 3-friendly Integers 2021牛客多校1 B Ball Dropping 记人生第一次投简历和笔试 原型模式 2021-2-20 雨时随记 关于一维差分数组的例子 halo个人建站 关于手机ping电脑和电脑ping手机 泛型类简单理解 CodeForces - 849C From Y to Y 2020牛客国庆集训派对day3 Leftbest 约瑟夫环问题---2020牛客国庆集训派对day2 AKU NEGARAKU mysql 5.7 忘记密码如何更改 CF 1099B Squares and Segments CF 998A Balloons CF 998B Cutting 链表应用之多项式相加 CF 1150A Stock Arbitraging CF 1199A City Day CF 1199B Water Lily CF 982A Row CF 934A A Compatible Pair CF 629B Far Relative’s Problem 651A Joysticks 651B Beautiful Paintings
Jenkins 个人搭建流程记录 集成邮件系统(qq邮箱),gitlab服务器,freestyle风格
2021-11-18 · via Sehnsucht

目的

学习持续集成的概念与基本知识

配熟悉gitlab的基本操作

选择一个被测试的web应用系统

环境

  • windows安装jenkins(127.0.0.1:8091)

  • 虚拟机安装gitlab服务器(192.168.211.5:8092)

  • 配置的邮箱直接用qq邮箱

centos版本7.8

jenkins版本2.303.3

gitlab服务器版本13.1.2

jdk版本1.8

敏捷开发与持续集成简述

  • 增量(举例:房地产商每次增加一栋楼)
  • 迭代(举例:造火箭小火箭到大火箭)

每次迭代都是完整的软件开发周期

好处:

  • 早期交付(降低成本,例如卖10栋楼,建完一栋先卖一栋)
  • 降低风险(建完10栋楼卖不出去,建完1栋卖不出去然后改进或者停建)

持续集成:持续集成指的是,频繁地(一天多次)将代码集成到主干

持续集成的好处:

  • 降低软件故障风险,不断的构建可以很早发现问题
  • 对系统持续性的检查,减少问题
  • 减少重复性的工作
  • 持续部署,提供可部署单元包?
  • 持续交付可供使用的版本
  • 增强团队信心

安装gitlab服务器

Centos7安装Gitlab13.1.2

我是在虚拟机上安装的,然后改一下网络配置让本地电脑也可以通过ip连接到虚拟机,参考这个即可:如何使用Xshell连接VMware上的Linux虚拟机

可能出现的问题,安装失败,大概率是内存不够的问题,我虚拟机内存开到了8g,2g根本不够,或者你要开启swap分区,可以查看:创建swap分区,解决阿里云CentOS 8.3内存不足问题

一直502可以参考:Linux—gitlab访问出现502问题安装调试gitlab/gitlab-ce容器时遇到的502 Whoops, GitLab is taking too much time to respond

我不知道为什么出现了端口冲突,换了一个端口才好

记得更改防火墙设置之后要重启防火墙,更改了gitlab配置之后也要重新配置然后再重启

可能需要:

安装jenkins

Windows环境下安装Jenkins

可能的报错:

win10安装jenkins报错0x8007052e -Error logging on

邮件服务器

选择了qq

首先QQ邮箱要开启POP3/SMTP服务

jenkins配置qq邮箱

image-20211115152928401

怎么看成不成功?里面有测试,可以向邮箱发送邮件判断

image-20211115161107217

最后:

smtp协议与pop3协议

在日常构建后,需要及时将构建结果发送给相应的人员。这时就可以使用jenkins自带的邮件配置系统。

整合gitlab和jenkins

https://www.bilibili.com/video/BV1pF411Y7tq?p=12&spm_id_from=pageDriver

我看的是这个视频,gitlab的简单使用

一般给服务器的都是公钥,如果我们要clone代码的时候,服务器就可以用我们给它的公钥来匹配我们本地的私钥,如果匹配就能下载

SSH,公钥,私钥的理解

ssh-keygen -t rsa ,即生成公钥私钥的命令

步骤

我用的是自由风格的jenkins项目

1. 配置本地的公钥到gitlab

目的:让本地可以提交代码到远程gitlab上面

过程略

2. 配置jenkins的公钥并存放到gitlab所在的服务器

大致流程:在jenkins所在的服务器生成公钥和私钥,然后把公钥copy一份

然后打开gitlab,在设置里面有个ssh keys(凭证管理),然后把公钥放到里面去,这样jenkins就可以直接从gitlab拉取项目

3. 设置jenkins的自动构建

我们在jenkins创建项目后,在源码管理那里点击git,然后输入对应的gitlab项目的url,并选择正确的ssh凭证

这时候点击build now就会从远程拉取代码

4. 设置jenkins的编译打包

在项目的设置里,有一个构建,这里我们可以用mvn命令进行构建

image-20211117164154754

5. 设置jenkins将本地打包好的jar包推送到远程服务器并运行

这里的远程服务器我用的是个人的阿里的云服务器

jenkins需要下载publish over ssh插件

可以看看这个:jenkins配置publish over ssh遇到的问题

和这个Jenkins部署war包和部署jar包的详细步骤

测试通过是下面这样

image-20211117164333371

手把手教你搭建Jenkins实现自动化部署Jar

我按照上面的博客进行配置但是还是出现了很多问题,改来改去的,大概是配置那里错了,我的配置就不重复放上来了,

sh ~/run.sh / 8081这条命令是我写在Exec command那里的,

下面是抄的run.sh模板(有一说一,这个模板挺好用的,但是需要改,可能你nohup没有用就是模板的问题)

Project_name=$1
Port_no=$2

#echo $Project_name
#echo $Port_no

. /etc/profile

# 进入到项目
cd projects/$Project_name

# 找到原进程,kill
pid=$(ps -ef | grep java| grep $Project_name|awk -F '[ ]+' '{print $2}')
kill -9 $pid

#启动jar
nohup java -jar $Project_name-1.0-SNAPSHOT.jar --server.port=$Port_no -server -Xmx1000m -Xms1000m -Xmn700m -XX:+UseParallelGC &

echo "starting service..."
sleep 20

#根据重启后是否有当前应用判断启动是否成功
pid=$(ps -ef | grep java| grep $Project_name|awk -F '[ ]+' '{print $2}')
#echo $pid
if [ -z $pid ];then
  echo "启动失败"
  exit 1
else
  echo $Project_name :  $pid  "SUCCESS"
fi

image-20211117193434962

但是这里不太行的是,构建完成之后就…程序关闭了,在linux上面是有文件的(而且jenkins显示构建成功),如果单纯在linux中进行sh run.sh是可以运行的,但是用jenkins的话nohup无效(我发现问题了,模板有个地方错了)

我命令执行的是两行

export BUILD_ID=dontKillMe
sh run.sh shendun 8081

网上最开始的解决方案就是加上export BUILD_ID=dontKillMe但是我没有解决,改了run.sh的模板才解决

集成邮件系统(踩坑大全)

使用qq邮箱

我根据网上的博客来写,但是很多不一样,也没管他

Jenkins的QQ邮箱配置

但是最后出现一个大问题,邮箱显示正常发送,但是实际上并没有接收到邮件(可以打开debug模式来进行调试查看错误信息+)

太多报错了,我是将新版的email插件卸载换成旧版的重新配置才好,但是中间其实发生了很多报错

最开始是2.85版本的Email Extension Plugin ,最开始的报错AuthenticationFailedException,有人说是版本的问题,有bug,回退2.84(相同的配置不同版本报错都不同),又报错,搜出来的和jenkins没关系,那我回退到2.10,太低了报错都很奇怪,现在是2.40的版本

MessagingException message: Can't send command to SMTP host

这里可以开启Use SMTP Authentication这个选项来开启,注意密码不是邮箱密码,是stmp的授权码,我之前的邮箱授权码是mfywusvkaxvmbagi1,看看太长和太短都不对

结果

前提,环境都配置好了,且可以正常运行

在IDEA中集成maven和git,推送到你部署的gitlab服务器上

image-20211118145109691

查看gitlab上面的项目,正常

image-20211118145154227

打开jenkins进行拉取和自动部署

image-20211118145347819

构建完成

image-20211118145603365

网站正常

image-20211118145626941

查看邮件

image-20211118145707173