jenkins

jenkins

jenkins

课程大纲
1.什么是Jenkins?
2.为什么要用Jenkins?
3.Jenkins的安装配置?
4.jenkins的插件管理?
 1)在安装插件过程中如何进行加速?
 2)通过Web页面上传.hpi文件进行插件安装。 yum localinstall
 3)导入之前服务器已安装的插件 (离线安装)。
5.Jenkins的目录结构。
6.Jenkins FreeStyle基本使用?

内容大纲

1.Jenkins如何集成gitlab
  1.Jenkins为什么要集成Gitlab
  2.Jenkins如何集成Gitlab
  3.Jenkins与Gitlab集成思路
  4.Jenkins与Gitlab集成实践
2.Jenkins实现项目自动化发布
3.Jenkins实现项目tag方式发布
4.Jenkins实现项目tag发布与回退
5.Jenkins解决项目能重复发布问题

jenkins介绍

jenkins就是一个调度平台

jenkins安装

安装方式有好多种 (支持各大平台 linux windows macos )

​ 1.yum方式 或 rpm包

​ 2.直接部署war包

​ 3.使用docker安装

yum install java -y 	#依赖 (上传rpm包)
rpm -ivh jenkins-2.176.1-1.1.noarch.rpm

jenkins目录结构

[root@jenkins ~]# rpm -ql jenkins
/etc/init.d/jenkins				启停脚本
/etc/logrotate.d/jenkins		日志切割配置文件
/etc/sysconfig/jenkins			主配置文件
/usr/lib/jenkins				
/usr/lib/jenkins/jenkins.war	jenkins的主程序包
/usr/sbin/rcjenkins				
/var/cache/jenkins				jenkins缓存目录
/var/lib/jenkins				jenkins的家目录
/var/log/jenkins				jenkins的日志目录

启动jenkins

systemctl enable jenkins
systemctl start jenkins

jenkins的访问url 10.0.0.120 jenkins.oldxu.com

1573608960773

1573609158967

1573609172567

1573609205649

1573609291602

jenkins插件

4.jenkins的插件管理?
 1)在安装插件过程中如何进行加速?
 2)通过Web页面上传.hpi文件进行插件安装。 yum localinstall
 3)导入之前服务器已安装的插件 (离线安装)。

1573610738079

默认的插件下载地址: https://updates.jenkins.io/update-center.json

国内提供的插件下载地址: https://mirror.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

systemctl stop jenkins

tar xf jenkins_plugins_new.tar.gz
\cp -rp plugins/* /var/lib/jenkins/plugins/
systemctl start jenkins

1573611288420

jenkins自由软件风格

1573611852355

1573612350832

jenkins不要随便更新:

​ 1.因为jenkins更新了 插件没有更新,会导致插件失效

​ 22.插件不要随便升级, 插件升级了 jenkins没有升级 无法支持该插件

jenkins集成gitlab

将gitlab上项目代码拉取到jenkins本地

​ 0.先创建好gitlab相关的仓库 (分配好对应的权限)

​ 1.开发 开发项目 --》编写源代码

​ 2.提交源代码至gitlab仓库

​ 3.jenkins拉取gitlab仓库中指定的代码 (git相关的插件)

​ 4.jenkins点击构建,检查代码是否被拉取至本地

1573613809479

jenkins自动部署html

​ 1.准备好环境 nginx + 2web节点 建议Ansible实现| 公司都是现成的环境

​ 2.手动实现一次代码的上线 (提炼步骤)

​ 1.git 克隆代码

​ 2.给代码进行打包 web web_2019xx.tar.gz

​ 3.使用scp推送到web集群

​ 4.登录web集群机器,创建代码存放的目录,然后解压

​ 5.执行软连接操作

​ 6.需要重载服务

tar czf /opt/web_monitor_$(date +%F).tar.gz ./*
for host in {7..8};do scp /opt/web_monitor_2019-11-13.tar.gz  root@172.16.1.${host}:/opt ; done      #建议做免密

cd /opt
mkdir web_monitor_2019-11-13
tar xf web_monitor_2019-11-13.tar.gz -C web_monitor_2019-11-13/
rm -rf /code/web/
ln -s /opt/web_monitor_2019-11-13 /code/web
systemctl restart nginx

​ 3.将步骤写成SHell脚本

​ 4.将jenkins项目加入该脚本

​ 5.实现gitlab提交代码,自动触发构建(自动发布代码)

​ 6.jenkins实现tag包的方式进行发布代码

​ 1.首先开发需要更新tag的包

​ 2.jenkins要拉取指定的tag名称

​ 7.jenkins实现代码回退

​ 1.根据tag版本,来进行回退

​ 2.删除web集群的软连接,重新创建软连接

img

jenkins作业:

​ 1.购买一台云主机,搭建gitlab服务 按需付费即可 (按组为单位)

​ 2.实现多人团队协同工作 (邮箱能用 只需要root创建用户即可)

​ 3.实现代码的 部署和回退 基于tag的方式

​ 测试环境: 实现全自动

​ 线上环境: 点击触发构建 可以基于tag 也可以不基于tag

​ 4.可以尝试一下部署php的项目 带数据库

posted @   老王教你学Linux  阅读(349)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示