微服务CI/CD实践系列:
微服务CI/CD实践(一)环境准备及虚拟机创建
微服务CI/CD实践(二)服务器先决准备
微服务CI/CD实践(三)Jenkins部署及环境配置
微服务CI/CD实践(四)Jenkins + Dokcer 部署微服务前端VUE项目
微服务CI/CD实践(五)Jenkins + Dokcer 部署微服务后端项目
Jenkins是一个可持续集成、持续交互、持续部署的自动化工具。Jenkins拥有如下特点:
- 友好完善的操作界面,简单学习、简单配置,方便开发者快速上手使用
- 活跃的社区、开源且拥有众多的plugins
- 丰富的集成方式,可与gitlab-runner、k8s、argo、rancher以及公有云厂商等完美集成
- 自动化
- 支持市面主流操作系统以及多种安装方式,包括war包安装、yum安装、docker安装等
Jenkins成为众多中小型团队实施CI/CD可持续化项目交付流程的首选工具。下面开始jenkins的安装部署流程。
一、服务器环境配置
1.1 软件先决配置
使用war包安装,Jenkins不同版本对于JDK版本依赖均不相同,具体参考官网版本说明
- JDK,我们使用Jenkins 2.470版本安装,该版本最低支持JDK17。
- Maven,Java后端服务打包工具,Maven3.8.1
- node,vue项目打包工具,node 18
- docker,容器构建工具
- git,远程拉取代码工具
上述工具的安装参考微服务CI/CD实践(二)服务器先决准备
1.2 防火墙配置
需要开启Jenkins运行端口,以便浏览器可以远程访问jenkins控制台。
# 启动并启用firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 关闭防火墙
sudo systemctl stop firewalld
# 放行TCP的80端口
sudo firewall-cmd --permanent --add-port=80/tcp
# 重新载入firewall规则以应用更改
sudo firewall-cmd --reload
# 查看防火墙状态
sudo firewall-cmd --state
二、Jenkins安装配置
2.1 安装Jenkins
step1 下载安装包
本地下载Jenkins 2.470.war并上传到服务器。
step2 部署
使用java命令行方式运行
nohup java -Djava.awt.headless=true -server -Xms1024m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -jar jenkins.war &
解释
在JDK17中永久代(PermGen space)已被元空间(Metaspace)所取代。因此,使用 -XX:PermSize 和 -XX:MaxPermSize 参数已不再适用。
nohup 后台方式运行命令并将日志输出到nohup.out
-Djava.awt.headless=true: 设置系统属性,告诉 JVM 运行在无头模式下。
-server: 使用 server 类型的 JVM,适用于长时间运行的应用程序。
-Xms1024m: 设置初始堆内存大小为 1024MB。
-Xmx2048m: 设置最大堆内存大小为 2048MB。
-XX:MetaspaceSize=256m: 设置元空间初始大小为 256MB。
-XX:MaxMetaspaceSize=512m: 设置元空间最大大小为 512MB。
# 验证运行结果
[root@k8s-rancher-master /]# netstat -lnp|grep 8080
tcp6 0 0 :::8080 :::* LISTEN 12448/java
注意事项:
- 确保你的系统有足够的内存来支持这些设置。
- 如果 Jenkins 启动后无法正常工作,检查日志文件以确定是否有内存相关的错误。
- 如果使用 Docker 容器启动 Jenkins,确保容器的内存限制足够大以容纳这些设置。
安装完成后访问控制台进行Jenkins初始化。
step1 浏览器访问[服务器ip]:8080,进入Jenkins初始配置界面:
根据页面提示,管理员密码设置在【/home/hka/.jenkins/secrets/initialAdminPassword】,使用cat命令查看:
[root@k8s-rancher-master /]# cat ./home/hka/.jenkins/secrets/initialAdminPassword
1154171ff706467596c01c8118df1819
step2.将密码粘贴到页面上,解锁Jenkins,并进入插件配置页面
点击【选择插件来安装】,进入插件选择页面(这里无需选择推荐插件,因为过多无用插件会对服务器本身带来压力,这里仅需要选择安装构建需要的插件)
2.2 配置Jenkins
2.2.1 升级站点源
左侧菜单树-》系统管理—》插件管理—》Advanced settings
http://updates.jenkins.io/update-center.json
或
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
2.2.3 插件管理
左侧菜单树-》系统管理—》插件管理—》可下载镜像(available plugins)
#需要下载的插件
Localization: Chinese (Simplified)
Publish Over SSH
Git client
Git Parameter
SSH plugin
Pipeline
NodeJS
SSH server
Workspace Cleanup Plugin
Jenkins List Git Branches
# jenkins Pipeline withMaven 构建依赖插件
Maven Integration Plugin
Pipeline Maven Integration Plugin
Maven Release Plugin
Maven Dependency Plugin
其他的插件在实际构建和部署环节可以根据构建需求进行添加。
2.2.3 用户管理
左侧菜单树-》系统管理—》用户管理
添加jenkins用户
2.2.4 全局系统配置
左侧菜单树-》系统管理—》全局系统配置
step1 maven项目配置
配置maven_opts为服务器安装地址
step2 全局环境变量配置
添加 JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8 配置,有效解决Jenkins在构建过程遇到的中文乱码问题。
step3 SSH remote hosts