ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • 操作系统

  • 虚拟化服务

    • Docker笔记

    • Kubernetes笔记

    • Jenkins笔记

      • Jenkins介绍与部署
        • Jenkins
          • 介绍
          • 部署
          • 配置
          • 相关概念
      • Jenkins作业项目配置
    • K3S笔记

  • 数据库服务

  • 监控服务

  • Web服务

  • 数据处理

  • Ops
  • 虚拟化服务
  • Jenkins笔记
Hoshinozora
2024-06-24
目录

Jenkins介绍与部署

# Jenkins

# 介绍

Jenkins是一个开源的、使用Java编写的自动化的工具,专门用于持续集成和持续交付(CI/CD)的自动化,它能够自动化完成应用程序的构建、测试、部署,以减少相关的重复性工作。以下是Jenkins的一些核心特征:

  1. 社区支持与插件生态:Jenkins是一个开源项目,由一个活跃的社区支持,提供庞大的插件生态系统,可以适应几乎任何CI/CD的需求。
  2. 跨平台性:Jenkins支持在Windows、Mac OS和Linux等操作系统上运行,因为它由Java Servlet开发。
  3. 灵活的构建方式:Jenkins支持多种构建工具(Python、Java等)、构建环境(Git、SVN等)、构建策略(定时构建、触发构建、手动触发等)。
  4. 易于配置:Jenkins提供一个易于使用的Web管理界面,支持各种任务配置方式。
  5. 持续集成和持续部署:Jenkins可以监控代码仓库中的变更,并自动触发构建、测试和部署过程,帮助团队快速发现并解决问题。它也支持流水线(Pipelines),通过可编程的方式来定义和实现CI/CD的流程,使其更加灵活和强大。
  6. 分布式构建架构:Jenkins支持分布式架构,可以通过多台机器分散构建负载,加快构建速度并处理并发构建。
  7. 监控和日志:Jenkins提供详细的构建日志和监控功能,帮助用户追踪构建历史和诊断问题。
  8. 安全性:Jenkins支持多种安全机制,包括角色基权限管理、LDAP集成以及基于令牌的身份验证方法等。

# 部署

  1. # 环境准备

运行Jenkins首先需要安装JDK,可以参考Tomcat文章的JDK安装过程,目前Jenkins支持的Java版本为:11、17、21。

  1. # 下载Jenkins包

在官网下载页面中单击Stable (LTS)下的**Generic Java package (.war)**来下载Jenkins稳定版的war包。

下载链接:https://www.jenkins.io/download/

image-20240624163711960

  1. # 运行Jenkins

将下载的war包移动到存放Jenkins的目录,然后运行即可。

# 安装相关依赖:libfreetype.so.6和fontconfig
yum install -y freetype fontconfig

# 移动war包
mkdir -p /data/apps/jenkins/
mv ./jenkins.war /data/apps/jenkins/

# 创建Jenkins启动脚本(run.sh)和停止脚本(stop.sh)
cat>/data/apps/jenkins/run.sh<<EOF
#!/bin/bash
JENKINS_DIR=\$(cd \$(dirname "\$0"); pwd)
cd \$JENKINS_DIR
nohup java -DJENKINS_HOME=\$JENKINS_DIR/data -jar \$JENKINS_DIR/jenkins.war --httpPort=8080 &>> ./app.log &
EOF
cat>/data/apps/jenkins/stop.sh<<EOF
#!/bin/bash
JENKINS_DIR=\$(cd \$(dirname "\$0"); pwd)
JENKINS_PID=\$(ps aux | grep "[j]ava -DJENKINS_HOME=\$JENKINS_DIR/data -jar \$JENKINS_DIR/jenkins.war" | awk '{print \$2}')
echo "process killing: \$JENKINS_PID"
kill \$JENKINS_PID
EOF
chmod 774 /data/apps/jenkins/{run,stop}.sh

# 运行Jenkins
/data/apps/jenkins/run.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  1. 初始化配置Jenkins
  • 首先获取初始化管理员密码。
# 查看初始管理员密码,例如:2bfa592ccd264ca289af55c5a0c8487b
cat /data/apps/jenkins/data/secrets/initialAdminPassword
1
2
  • 放行8080端口防火墙。
# 按实际情况添加对应区域的端口放行规则
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
1
2
3
  • 然后访问Jenkins的WEB页面,输入我们刚刚获取的初始密码。

页面网址例如:http://192.168.10.21:8080/

image-20240625110045553

  • 单击选择插件来安装,然后先单击"无"取消所有选择,再搜索Chinese并勾选,然后单击安装即可。

image-20240625112602120

image-20240625112930305

  • 然后等插件安装完后,创建一个新的管理员用户,或者直接单击"使用admin账号继续"。

image-20240625113300381

  • 然后直接保存实例,完成安装。

image-20240625113356964

# 配置

  1. 基本设置

设置页面向下翻即可修改密码,语言和区域时间如果正确则不需要修改,账号名称是用于后台显示的名称,修改完后保存即可。

刚安装完语言包需要重启Jenkins才会生效。

image-20240625155905404

image-20240625155934642

  1. # 修改Jenkins插件镜像源为国内源

修改本地配置文件中的镜像源为清华源。

cp /data/apps/jenkins/data/updates/default.json{,.bk}
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /data/apps/jenkins/data/updates/default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /data/apps/jenkins/data/updates/default.json
1
2
3

最后访问重启页面并单击确定,来重启Jenkins即可。

重启页面地址:http://192.168.10.21:8080/restart

  1. # 插件管理

Jenkins的插件管理也可以通过图形界面方式,Updates用于展示需要更新的插件,Available Plugins用于展示可安装的插件,Installed plugins用于展示已安装的插件,Advanced settings用于导入本地插件或配置升级源。

插件管理页面地址:http://192.168.10.21:8080/manage/pluginManager/

注意:插件的安装、卸载、更新等操作都需要重启Jenkins才能生效。

例如:要安装Pipeline插件,则在插件管理的Available Plugins中搜索Pipeline,将其勾选并单击安装即可,它会同时安装与Pipeline相关的其他基本插件。安装时可以勾选"安装完成后重启Jenkins(空闲时)"以在安装后自动重启。

image-20240626102937384

# 相关概念

# 作业

作业(Job)在Jenkins中表示一系列自动化工作的过程。我们可以使用作业来自动化进行软件测试、构建、部署等。作业可以自动触发执行,也可以定时执行,以完成不同需求下的工作。

Jenkins中常用的作业类型有两种:Freestyle Jobs和Pipeline Jobs,它们都用于实现自动化流程,但在灵活性、可维护性和复杂性方面有所不同。

# Freestyle

Freestyle Jobs是Jenkins内置的最基础的作业类型,允许通过图形界面方式配置大部分任务。

它的优点是简单易懂,适合不需要复杂流程的小型或单一任务项目。缺点是不易于版本控制,难以扩展复杂的工作流,多项目之间的关联需手动配置。

# Pipeline

流水线(Pipeline)是一种更为高级的用于定义、执行、管理CI/CD过程的作业类型,它允许你通过Jenkinsfile代码来定义整个构建、测试和部署的流程。

它的优点是可以使用版本控制,易于复用,支持复杂的、多阶段的流程。缺点是相比Freestyle更为复杂一些。

Pipeline属于Jenkins初始化配置中推荐安装的插件,我们没有进行推荐安装因此需要手动安装。

# 两者区别
特征/类型 Freestyle Pipeline
配置方式 GUI配置 Jenkinsfile代码配置
版本控制 配置难以版本化 容易进行版本控制
复杂流程支持 有限,适用于简单流程 高度灵活,适合复杂和长期的流程
可视化 基本的作业可视化 详细的阶段和步骤视图
适用场景 小项目,单一任务 大型项目,需要详细流程控制的场景

# 源码管理

源码管理(SCM, Source Code Management) 用于定义Jenkins项目如何获取版本控制系统(Git/SVN等) 中的源代码。它能让Jenkins项目在作业过程中获取代码库中的代码及文件,来进行构建、测试等一系列自动化操作。

# 构建触发器

在Jenkins中,构建触发器(Build Trigger)是指定何时自动执行Jenkins作业的机制。我们可以配置Jenkins在特定条件满足时自动执行构建,如代码提交、定时计划、其他作业完成后等。

#Linux#Devlops#Jenkins
Volume资源配置
Jenkins作业项目配置

← Volume资源配置 Jenkins作业项目配置→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式