jenkins从入门到实战(持续更新中)

安装jeninks

  • Jenkins的安装三种方式 docker kubernetes rpm
  • 这里安装docker的方式进行安装Jenkins,但是docker现在访问的时候镜像加速器一定要选好不然无法下载镜像,(Jenkins是基于Java语言开发的)
1、 拉去镜像  
docker pull   jenkins/jenkins:2.470-jdk17

创建目录
 	mkdir -p /data/jenkins/jenkins_home
 	chmod  777 -R  /data/jenkins/jenkins_home
2、使用docker命令启动Jenkins
docker run  -itd --name  jenkins  \
-p 8080:8080 \
-p 50000:50000 \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/
Shanghai'" \
--privileged=true \
-v /data/jenkins/jenkins_home:/var/jenkins_home  jenkins/jenkins:2.470-jdk17
#注意这里挂载目录的 /var/jenkins是docker启动的目录  rpm为 /var/lib/jenkins

3、使用docker  logs  -f  jenkins  看到 jenkins 激活秘钥
7bdf6df02d1e46f5af3bb8ce512f70b9

image-20240803170457255

选择自定义插件,然后全部不勾选到最后选择最后两条进行勾选中文社区,因为安装太多跟你网络有关系,如果网不好的情况下安装会十分缓慢这里建议 不安装那么多

image-20240803170657372

image-20240803170810906

是否要更改jenkins镜像源

image-20240803171009759

创建jenkins agent端

image-20240803172408000

image-20240803172446319

这里是固定节点,动态类似于kubernetes的pod随时删除和创建

image-20240803172801281

image-20240803172844112

在本机服务器上安装 agent 端

[root@Centos7 ~]# cd  /data/jenkins/
[root@Centos7 jenkins]# ls
jenkins_home
[root@Centos7 jenkins]# mkdir jenkins_agent
[root@Centos7 jenkins]# pwd
/data/jenkins

image-20240803173122453

jdk11安装(客户端需要)

echo d95d4e99a4852f6b7824c4c84545d06edf42c6eacd417c958ab587e5f68efc38 > secret-file
curl -sO http://10.0.0.5:8080/jnlpJars/agent.jar
java -jar agent.jar -url http://10.0.0.5:8080/ -secret @secret-file -name build01 -workDir "/opt/jenkins"
启动Jenkins-agent 端

image-20240803181028551

注意这里的agent启动是在前台进行启动的所以我们需要调入到后台去运行,编写一个脚本进行运行

#!/bim/bash 
nohup java -jar agent.jar -url http://10.0.0.5:8080/ -secret @secret-file -name build01 -workDir "/opt/jenkins" &

jenkins数据目录

  • jenkins采用本地文件的数据存储方式
  • jenkins的所有数据都得存储在JENKINS_HOME变量定义的数据目录下;
  • 默认JENKINS_HOME的值是/var/lib/jenkins

jenkins项目类型-Pipeline

  • 参数化构建:为流水线参
    • String字符参数
    • Choice选项参数
  • 历史构建管理
    • 丢弃历史:保留5天内10个构建
  • 并行构建控制

jenkins项目构建方式

  • 定时构建
  • API触发构建
  • 与其他系统联动
    • Gitlab提交代码后通过webhook触发构建(主动)
    • Jenkins轮询Gitlab检测到代码变更触发构建(被动)
创建第一个Pipeline流水线

安装流水线工具

image-20240804194237947

创建第一个流水线作业

image-20240804194346674

image-20240804194903792

注意这里写的参数化构建,选项参数和字符参数,需要手动进行运行这个流水线,也可以使用命令行的方式去运行,运行这个构建的项目可以参考上一级的目录有几种方式进行构建

image-20240804195439267

image-20240804195510622

image-20240804195556937

构建流水线使用服务器进行传参

image-20240804195736588

这里使用两种方式可以可以的

#直接触发
curl  -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/build?token=devops&VERSION=3.3.3"
#传递参数
curl  -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/buildWithParameters?token=devops&VERSION=3.3.3"

JENKINS_URL/job/demo-pipeline/build?token=TOKEN_NAME
JENKINS_URL/job/demo-pipeline/buildWithParameters?token=TOKEN_NAME
http://10.0.0.5:8080/job/demo-pipeline/build?token=devops
curl  -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/buildWithParameters?token=devops&VERSION=3.3.3"
curl  -udevops:admin "http://10.0.0.5:8080/job/demo-pipeline/buildWithParameters?token=devops&VERSION=3.3.3"

image-20240804200822673

image-20240804200845123

image-20240804200909362

image-20240804200921081

image-20240804201029209

image-20240804201106993

image-20240804201132513

jenkins项目归类

  • view视图
  • floder文件夹
  • 根据团队、业务类型等方式进行分类
视图应用

视图主要应用于类似于相同的业务在同一个视图里面,更好去区分(类似于北京的业务,上海的业务)

image-20240804201507149

image-20240804201533194

创建有关相关项目的视图

image-20240804201648629

image-20240804201754740

创建完视图之后,就会出现有关于demo01所有的流水线

image-20240804201829276

image-20240804201901278

注意流水线的位置会发生变化,所有中有关的流水线是一个位置,在视图中又是一个位置

image-20240804202307819

image-20240804202353070

floder文件夹

image-20240804202523380

image-20240804202603571

image-20240804202646467

jenkins用户管理

  • 用户来源

    • 本地存储数据库

    • 其他认证系统[gitlab/ldap/github]

    • 用户操作

      • 增删改查禁用

Jenkins授权管理-RBAC

  • 插件:Role-Based Strategy
  • Role类型
    • Global roles 全局角色
    • Iterm roles 定义一类项目
  • Role授权

需要安装插件Role

image-20240805093244985

image-20240805093702807

这里会多出来一个 Manage and Assign Roles

image-20240805093729398

jenkins凭据管理

  • 用途:存储构建需要与其他系统认证所使用的账户或者密码信息。
  • 类型
    • ssh-key
    • secret-text
    • secret-file
    • usernme/password

凭据主要是解决明文密码的,在Jenkins中如果想要调用凭据可以根据它的Id去调用

image-20240806083019635

image-20240806083112921

Jenkins备份管理

  • 备份方式
    • 编写备份脚本,通过Crontab脚本备份;
    • 通过jenkins插件进行定时备份
  • 备份排除范围
    • workspace目录
  • 备份触发时间
    • 每天凌晨1-2点,保留最近3、5天的备份

通过插件进行备份,如ThinBackup

image-20240806084541373

image-20240806091644723

注意新版本的ThinBackup

image-20240806094822056

image-20240806094845790

在容器内部就可以看到,是否备份成功

image-20240806094919633

因为我们设置的是容器映射

image-20240806095036838

image-20240806104938127

image-20240806104957840

jenkins版本升级

  • 不要跨太高的版本
  • 数据目录要使用同一个
  • 升级前进行数据目录备份
  • rpm部署: rpm -uvh
  • Docker部署:替换新版本镜像

BlueOcean

  • Jenkins可视化页面
  • 美观 简洁

Pipeline简介

  • Pipeline是jenkins2.0版本推出的核心功能
  • Pipeline可以实现以代码的方式定义工作流程
  • 商业价值
    • 组织级别及团队间工作流复用
    • 便于Pipeline开发与维护
    • 减少人工WEB页面操作

Pipeline的组成

  • Jenkinsfile: 概述Pipeline的代码文件
  • Agent:Pipeline的运行节点
  • Stage:Pipeline的阶段
  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值