ぷ行走de猫げ

在快乐中成长,在快乐中学习!

Jenkins安装部署与配置

 

前言
Jenkins 是一个开源的自动化服务器,用于持续集成和持续交付/持续部署 (CI/CD)。它支持自动构建、测试和部署软件项目,帮助开发团队快速检测和解决问题,提高开发效率和软件质量。

Jenkins 的主要功能

  1. 持续集成 (CI):
    1. 自动化构建和测试代码。
    2. 及时发现和修复代码问题,减少集成风险。
  2. 持续交付/持续部署 (CD):
    1. 自动将构建好的应用程序部署到测试环境或生产环境。
    2. 确保软件可以随时发布,缩短发布周期。
  3. 插件支持:
    1. Jenkins 有丰富的插件生态系统,可以集成各种工具和平台,如 Git, Maven, Docker, Kubernetes 等。
    2. 插件使 Jenkins 可以扩展其功能,以适应不同的需求。
  4. 分布式构建:
    1. 支持分布式构建,可以通过多台机器来分担构建任务,提高构建速度和效率。
  5. 可视化:
    1. 提供友好的用户界面,可以直观地查看构建状态、测试结果和部署情况。
    2. 支持创建和管理各种类型的作业和流水线。

Jenkins 的工作流程

  1. 代码提交:
    1. 开发人员将代码提交到版本控制系统(如 Git)。
  2. 触发构建:
    1. Jenkins 监控版本控制系统的变化,当检测到代码提交时,会自动触发构建。
  3. 构建和测试:
    1. Jenkins 根据配置的构建脚本,编译代码并运行自动化测试。
  4. 生成构建结果:
    1. Jenkins 将构建结果(成功或失败)报告给开发人员,并生成构建工件(如可执行文件、Docker 镜像等)。
  5. 部署:
    1. Jenkins 可以自动将构建好的工件部署到测试环境或生产环境。

一. 环境准备

IP:10.1.15.131

IP:10.1.15.132

二. 安装JDK

# 创建目录
mkdir /usr/local/java/

# 解压文件到目录
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/

# 设置环境变量
vim /etc/profile

# 在末尾添加
export JAVA_HOME=/usr/local/java/jdk-17.0.5
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 使环境变量生效
source /etc/profile

# 添加软链接
ln -s /usr/local/java/jdk-17.0.5/bin/java /usr/bin/java

检查 Java 版本:

三. 安装Jenkins

3.1  官方下载安装包

https://mirrors.jenkins-ci.org/redhat/

# 离线安装

rpm -ivh jenkins-2.401.3-1.1.noarch.rpm

# 启动

systemctl daemon-reload
systemctl start jenkins

# 设置开机启动

systemctl enable jenkins

3.2 Jenkins服务配置

# 查看jenkins服务状态

systemctl status jenkins

 # 修改用户和组为root;修改启动端口号。

vim /usr/lib/systemd/system/jenkins.service

# 修改目录权限

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

# 重启jenkins服务

systemctl restart jenkins

3.3 访问Jenkins管理网站

 出现这个界面说明安装成功,查看Jenkins密码进行下一步。

 点击安装推荐插件,下一步。

 # 创建第一个管理员用户

# 配置Jenkins管理网站地址

 # 完成基础配置

 # Jenkins 管理界面

3.4  Jenkins 插件安装

# Jenkins实现发布过程,需要关联很多组件,而这些组件都可以通过jenkins插件管理进行下载和配置。

#  系统管理》插件管理

 

# 修改获取插件地址

http://10.1.15.132/pluginManager/advanced

升级站点的https改为http之后提交

 

# 重启jenkins,我们可以直接在网站上执行重启命令,无需登录服务器进行重启。

http://10.1.15.132/restart     

# 下载汉化插件

# 安装完成后重启jenkins,可以看到系统编程中文界面。

 

# 根据需要,我们可以安装以下插件:

序号 插件名称 描述
1 Job Import Plugin 同步插件
2 Version Number 版本号插件
3 NodeJS vue插件
4 GitLab API Plugin gitlab源代码插件
5 Role-based Authorization Strategy jenkins权限管理插件
6 MSBuild Plugin jenkins Shell命令插件
7 SonarQube Scanner 代码审查插件

 

 

 

 

 

 

 

 

3.5  Jenkins 组件配置

3.5.1 Maven 安装与配置

配置Maven本地仓库适用于Java代码的发布

# 官网下载地址:
https://maven.apache.org/download.cgi

# 安装 

# 创建目录
mkdir -p /usr/local/maven/

# 解压
tar -zvxf apache-maven-3.8.1-bin.tar.gz -C /usr/local/maven/

# 添加环境变量
vi /etc/profile

export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.1
export PATH=$MAVEN_HOME/bin:$PATH

# 执行生效
source /etc/profile

# 查看版本
mvn -v 

# 配置本地仓库

# 创建一个本地仓库存储目录

mkdir -p  /usr/local/maven/repository

# 修改settings.xml配置文件

vim  /usr/local/maven/apache-maven-3.8.1/conf/settings.xml

 # Jenkins 配置

系统管理 > 全局工具配置

3.5.2 Jenkins配置Gitlab凭据

# 我们从gitlab生成GitLab API令牌

# Jenkins 配置凭据

3.5.3 Jenkins同步工具配置

使用Job Import Plugin插件,可以很轻松将一个Jenkins发布项目的脚本同步到另外一个Jenkins

3.6  Jenkins任务的创建与发布

# 构建一个自由风格的软件项目

 # 保持构建的天数,最大个数

#  构建触发器

# 定时构建语法

五颗星,中间用空格隔开
* * * * *
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

例子
1.每30分钟构建一次:
H/30 * * * *
2.每2个小时构建一次
H H/2 * * *
3.每天早上8点构建一次
0 8 * * *
4.每天的8点,12点,22点,一天构建3次
0 8,12,22 * * *       (多个时间点,中间用逗号隔开)

 

这时候会看到一个提示分散负载应该用 H 10 * * * 而不是 0 10 * * *,这个意思是让我们尽量用H 10 * * *
那么前面的H是什么意思呢? 
为了允许定期计划的任务在系统上产生负载,应在可能的情况下使用符号H ( for"哈希") 。
例如对于十几个日常工作,使用 0 0 * * * 将导致午夜的大峰值。 相反,使用H * * * 每天仍然会执行每一次作业,但同时使用有限的资源,更好地使用有限的资源。 
所以这里改成H 10 * * *

# 配置Gitlab源代码地址和凭据

 # 拉取指定的分支,已经拉取该分支下制定的目录文件夹。

 # 配置自动生成版本号变量,用于构建docker镜像使用

 # 构建一个vue项目,发布到K8S

 # 构建一个.net core项目

 # 点击立即构建,我们可以查看控制台输出日志

 

 

 

 

posted @ 2024-08-21 10:01  李天翔  阅读(193)  评论(0编辑  收藏  举报