Jenkins改进(1)--介绍与安装

本文介绍了Jenkins作为持续集成工具的重要性和优势,包括其兼容性、插件集成、权限管理和负载均衡功能。详细阐述了Jenkins的安装配置管理,包括环境准备、yum安装、初始化配置等步骤,并探讨了Freestyle与Pipeline Job的区别。Jenkins通过提供直观的界面和灵活的job管理,促进了开发与运维的协同工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jenkins介绍

Jenkins作为业内运维运用最为广泛的工具,在于把传统意义上的运维工作与开发工作完美地结合在一起,作为传统意义的从事运维工作的相关人员很多工作都在命令和脚本间游走但工作内容就成了黑盒,如何管理如何协同是我们需要考虑的问题,Jenkins在运维工作中起到了承上启下的工作,它的前台界面方便我们直观的收集执行的job的所有相关信息,最终实现高效、可扩展、全自动的部署平台

  • Jenkins是一个开源持续集成工具,提供了软件持续集成开发的服务,支持很多的主流软件配置管理工具与其配和实现软件配置管理持续集成功能
  • 开发工具:Java
  • 功能:提供了软件开发的持续集成服务
  • 特点:支持主流软件配置管理,配合实现软件配置管理,持续集成功能

jenkins的优势和应用场景

优势:

  • 是主流的运维开发集成平台,兼容所有主流开发环境,可以将平时开发、测试、部署、基础运维浓缩到每一个job当中配合其强大的兼容性匹配目前大中小工作当中所有的开发环境,无论是Linux下的centos、Redhat、Windows、docker虚拟机都可以在这些平台下搭建Jenkins系统这样Jenkins就可以完全涵盖所有的主流开发环境,保证我们不同的开发环境都能在Jenkins上正常运转
  • 插件市场可海量业务主流开发工具实现集成,Jenkins内嵌强大的插件平台,能够与海量业务主流开发工具实现集成,方便将不同类型的数据在开发工具中调用处理,Jenkins之所以称之为持续集成系统工具优势在于能够利用其强大的内嵌插件市场平台下的集成插件与主流开发工具实现系统工具间的数据调用,帮助我们将不同工具的功能通过API或者命令行的形式在Jenkins下运转执行,例如我们可以调用gitlab或者GitHub的插件去与其进行git的数据交互实现克隆、抓取、推送等操作可以利用插件给Jenkins传入仓库地址,去(??)在实现代码静态扫描,最终生成的报告可以检查代码的语法是否不规范、是否有bug、缺陷等有助于开发人员提高代码质量,通过meavn插件传入对应的参数对代码实现编译、测试、打包并最终上传到代码仓库
  • Jenkins job为配置单位与日志管理,使运维与开发人员能协同工作 #Jenkins以job为配置单位及日志管理打开了运维与开发人员间的黑盒,所有人都可以通过对某一个job的操作配置得到自己想要获取的信息,作为开发或者测试人员,在Jenkins平台可以无需关注如何搭建这个平台以及job配置部署如何实现,只需要将项目所需要的参数传给Jenkins下对应项目的具体job,Jenkins就会帮助完成所有的部署,这样就能让开发测试人员更多的关注到项目代码的实现与项目测试当中无需花费时间到部署工作中,作为运维人员就可以关注具体的平台搭建工作,通过监控Jenkins系统的相关指标保证Jenkins在一个健康状态下运转以及关注项目部署过程中出现的权限、参数配置、工作调用等问题,从而无需关注代码层面的问题
  • 权限管理划分不同job不同角色 #Jenkins严谨的权限管理功能,充分的划分了每个人在开发周期内对每一个job的不同角色,可以设定不同的用户登录系统后具有不同的权限,例如开发与测试j只能有job任务field以及查看日志的权限从而对代码日常的测试部署等操作,运维人员在开发人员的基础上对job任务具有写入的权限,从而进行日常的任务编写,这样就可以保证大家不会越权去操作别人的任务,提高项目的安全性
  • 强大的负载均衡功能,保证我们项目的可靠性 #Jenkins强大的负载均衡功能,可以让job游走在Jenkins集群当中,保证我们具体开发中的可靠性,Jenkins不仅仅是一个独立的系统,他可以在创建后作为一个master节点然后衍生出若干个子节点,从而组合到一起组成一个Jenkins集群,这个集群的优势在于可以将job任务随机或者手动指定到任意master或者子节点去执行,最终实现强大的负载均衡功能

Jenkins安装配置管理

  • 使用virtualbox创建测试服务器
  • 安装Jenkins前的环境准备(centos7)
  1. 添加Jenkins的yum仓库源,以及导入key保证我们可以利用centos7下的包管理工具直接在线安装Jenkins系统
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key #验证仓库安全性
  1. 保证系统java版本为8.0或8.0以上 #保证Jenkins可以调动本地java环境启动服务
yum -y install java
java -version #java 1.8以上
  1. 关闭系统防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 关闭SELINUX并重启系统
vim /etc/sysconfig/selinux
SELINUX=disabled

reboot
Jenkins安装与初始化配置
  1. yum源安装Jenkins最新版本
yum -y install jenkins
  1. 创建Jenkins系统用户
useradd deploy #作为Jenkins的系统服务用户,创建为Jenkins也可以

  1. 更改Jenkins启动用户与端口
JENKINS_USER="deploy" #系统服务用户
JENKINS_PORT="8080" #对外访问端口
chown -R deploy:deploy /var/lib/jenkins/ #更改文件权限
chown -R deploy:deploy /var/log/jenkins/
  1. 启动Jenkins
systemctl start Jenkins
lsof -i:8080
  1. 实验需要,添加本地主机hosts解析

Jenkins 网页操作

  • 根据提示登录
    在这里插入图片描述

  • 让Jenkins自动安装需要的插件,可能会比较慢
    在这里插入图片描述

  • 修改管理员密码
    在这里插入图片描述

  • 布局

新建任务 #创建一个新的Jenkins job任务
用户 #创建Jenkins用户
构建历史 #查看所有的build的构建的log记录
系统管理 #管理系统的配置选项
我的视图 #和新建视图可以理解为自定义创建一个视图界面,自定义管理界面的布局
凭据 #添加ssh key公钥或者比如gitlab的密码
新建视图
构建列表 #显示所有的构建,当有若干个任务需要等待执行的时候,所有的任务都在在这里排队等待
构建执行状态 #正在执行的任务都会在这里显示

在这里插入图片描述

Jenkins系统管理
  • 系统设置定义全局参数配置

    • 比如,系统消息,系统时间格式,系统内嵌的gitlab、shell、pipeline、email邮件通知等插件参数配置
  • 全局安全配置,配置全局的账户安装

    • 可以设定用户是否可以注册以及用户注册的权限策略、代理设置等相关选项
    • 项目矩阵授权策略,配置Jenkins用户对job的读写,视图查看等权限配置
      在这里插入图片描述
  • 管理插件,在线更新安装第三方插件

  • 系统信息,查看Jenkins本机相关的信息如环境变量、插件列表等相关信息

  • 系统日志,获取Jenkins的实时运行数据,出现问题时可以debug追踪

  • 负载统计,查看动态坐标图查看当前任务负载情况,从而获取Jenkins健康状况

  • 管理用户,创建,删除,修改Jenkins的用户
    在这里插入图片描述

Jenkins job介绍

  • 代表一个任务或者项目,Jenkins做一个持续集成工具,其实是由若干个job任务或者project项目构成了一个强大的运维开发平台系统,可以将平时的开发、测试、基础运维工作相关任务通过创建一个任务或项目保存在Jenkins任务列表中,方便我们在Jenkins平台下进行日常运维开发工作
  • 可配置与可执行,在Jenkins平台下我们的工作可以利用其内嵌模块或者特定语法将我们的工作抽象陈Jenkins job,在这个任务里通过配置相关的任务参数以及工具模块从而作为一个可执行的任务,最终共享保存到我们的Jenkins平台下,供我们的日常工作中有不同权限的人员重复build构建执行,这样就可以将单机图形界面或者命令行脚本去配置执行我们的任务迁移到Jenkins这个共享平台下去进行统一化的任务配置执行,就简化了工作流程,方便日常进行统一的维护管理工作
  • 执行后的记录称之为build,每一次执行完结果的记录称为build构建,通过查看build构建获取到结果信息
  • 日志监控与记录,job任务执行完后build的构建信息会保存在Jenkins上作为build log日志,可以通过查看不同时间的log记录,从而debug追踪构建任务中出现的各种问题,Jenkins后台也会通过build log的数量、大小从而监控当前Jenkins的健康状况
  • 所有文件集中保存,Jenkins下所有的任务构建后的所有相关文件,例如克隆的仓库代码maven打包生成的编译包,我们配置的参数文件都会保存在Jenkins的主目录workspace下以我们当前命名的一个目录作为我们这个的job workspace工作区域进行保存,查看这个区域下的相关文件去定位日志信息无法获得的问题细节

Jenkins Freestyle与pipeline job区别

  • Freestyle job:

    优点:

    1. 通过在其任务配置界面添加相应的模块配置项与任务参数就可以构建一个工作需求,Jenkins默认在任务界面布局所有模块以及参数配置项,我们只需要点击即可创建一个任务项
    2. 使用逻辑简单,无需花费额外成本去研究实现一个功能

    不足:

    1. 每个freestyle job只能实现一个功能,只能在job里做一件事,这样就降低了任务执行效率

    2. freestyle job配置只能通过前台手动完成,无法通过编写一段代码去实现freestyle job的功能,创建配置起来会很直观但是不利于job迁移到其他Jenkins系统上,

    3. 默认的Jenkins没有一套审计机制去记录和保存所有人的配置历史,无法知道谁曾经动过代码
      在这里插入图片描述

  • pipeline job:

  • 实现匹配持续集成与持续交付概念

  • 持续集成:CI,通过代码仓库与Jenkins集成使我们开发人员的每一次代码提交都能够在Jenkins上自动build构建,帮助开发团队第一时间发现解决问题

  • 持续交付:CD,在持续集成的基础上将构建好的软件版本通过Jenkins的自动化测试部署等多个程序持续安全快速的交付的用户手中

  • Jenkins下的所有模块,参数配置都可以在pipeline下体现为一个脚本语句,非常方便就可以调用一个pipeline模块去编写业务逻辑

  • Jenkins可以编写多个stages作为项目集成部署过程中的每一个阶段构成一整套管道工作集,串联所有工作

  • pipeline所有配置都可以体现为一个代码,方便job任务的配置迁移及对所有改动进行版本控制,将所有项目脚本改动都可以定位到代码层面上,方便后期的审计工作

  • 使用者需要学习pipeline脚本语法
    在这里插入图片描述

freestyle方便配置但不便于管理维护,pipeline方便项目管理但相对需要一些学习成本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值