当前位置: 首页 > news >正文

jenkins搭建笔记

文章目录

    • 一、一些jenkins的使用说明
      • 1)有些环境环境无法通过插件完成搭建
      • 2)发布任务方式:
        • (1)在管理页面点击触发
        • (2)配置远程API触发
      • 3)jenkins分布式部署
      • 4)docker方式安装jenkins
    • 二、jenkins发布流程配置
      • 1)新建发布任务
      • 2)任务配置:下载代码
      • 3)任务配置:编译代码
      • 4)任务配置:远程部署程序
      • 5)配置任务自动触发
    • 三、jenkins使用docker进行软件编译
      • 1)环境准备:
      • 2)docker运行docker方案
      • 3)希望旧的jenkins容器改成docker编译方式的方式的话(不希望重新配置jenkins任务的话)
      • 4)实现docker编译
        • (1)制作用于编译软件的docker镜像
        • (2)存储制作的镜像
        • (3)使用docker镜像进行编译软件
    • 四、jenkins部署实战
      • 1)环境准备

一、一些jenkins的使用说明

1)有些环境环境无法通过插件完成搭建

做法:在服务器上安装好编译环境,通过Shell命令执行编译
在这里插入图片描述

2)发布任务方式:

(1)在管理页面点击触发

在这里插入图片描述

(2)配置远程API触发

在这里插入图片描述
若使用git存储代码的话,可以在git web仓库配置Web hook,在执行一些Git操作时,自动触发对应的jetkins发布任务

3)jenkins分布式部署

作用:多个服务器节点自动抢占任务
在这里插入图片描述

4)docker方式安装jenkins

在这里插入图片描述

二、jenkins发布流程配置

  • 配置分布任务一般分为下面几步
    ①新建任务
    ②下载代码
    ③编译代码
    ④远程部署程序
    ⑤配置任务自动触发

1)新建发布任务

在这里插入图片描述
新建发布一般采用freestyle方式

在这里插入图片描述
若是创建与有发布任务类似的任务,直接在创建任务时填写需要复制的任务名称
在这里插入图片描述

2)任务配置:下载代码

jenkins默认支持git,配置源码地址
在这里插入图片描述
①若使用svn,需要安装额外插件
②jenkins默认只支持一个git仓库配置,若需要下载多个git仓库代码,需要安装Multiple SCMS插件
下载这个插件后,源码管理会出现新的选项
在这里插入图片描述

下载的代码或编译生成的文件可以在发布任务后,在workspace查看
在这里插入图片描述

3)任务配置:编译代码

原则:一般是推荐shell指令去编译
在这里插入图片描述
在jenkins环境上安装相关编译环境后,通过shell指令编译软件
在这里插入图片描述

jenkins会捕捉输出日志方便用户查看
在这里插入图片描述
jenkins官方推荐使用插件完成编译
在这里插入图片描述

大杂烩软件编译推荐调用docker的方式进行编译
在这里插入图片描述

4)任务配置:远程部署程序

推荐shell指令完成
在这里插入图片描述
可是使用scp、ssh完成文件发送、远程指令执行

如果担心代码泄露问题,可以使用jenkins的Publish Over SSH插件完成这一步骤
在这里插入图片描述
安装好Publish Over SSH插件后,需要先在全局的系统配置中添加好远程服务器

在这里插入图片描述
然后在发布任务中就可以选择对应的远程服务器

在这里插入图片描述
在这里插入图片描述

5)配置任务自动触发

①生产环境:重要的运行环境,如生产环境,手动点击触发任务比较好
在这里插入图片描述
②开发、测试环境:推荐自动触发任务(例如新代码上传)
在这里插入图片描述

配置自动触发:
在这里插入图片描述

但是这个API通常是调用不通的,除非配置了允许不登陆即可使用Jenkins,所以还需要再用户地址中设置用户名和用户token
①用户token需要手动创建:
在这里插入图片描述

②获取到完整的APItoken后即可在具体的GIT仓库的WebHook中进行配置
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、jenkins使用docker进行软件编译

  • 备注
    将项目代码和对应的docker编译镜像保存在同一个Git仓库,也就是同时备份代码和对应的编译环境,这样就不会出现光有代码但无法还原编译环境的困境

1)环境准备:

  • 准备
    ①在jenkins服务器上安装docker

1)若服务器是单纯给jenkins使用的,且jenkins不是以docker方式安装的,则直接在服务器上安装docker即可
2)如果喜欢将git、jenkins、文档资料都部署在同一台服务器且使用docker运行这些服务的话,则需要在docker运行的jenkins中再内嵌docker,防止污染宿主机docker环境

2)docker运行docker方案

在这里插入图片描述
但是默认情况下jenkins 官方镜像不支持远程使用docker,需要在jenkins容器中安装docker client才能远程使用docker

在这里插入图片描述

需要配置网络代理,不然会构建失败

在这里插入图片描述

建议去掉dockerfile里面的jenkins用户
在这里插入图片描述
不然容器不能使用apt安装其他软件

3)希望旧的jenkins容器改成docker编译方式的方式的话(不希望重新配置jenkins任务的话)

  • 做法
    ①将旧的jenkins容器中的jenkins_home文件夹拷贝出来 替换到新的jenkins容器中并重启重启

在这里插入图片描述

  • 特点
    这种方式适合新旧容器中的jenkins版本相近情况,所以dockerfile构建镜像时,最好以对应版本的jenkins 镜像作为基础镜像

4)实现docker编译

(1)制作用于编译软件的docker镜像
  • 步骤
    ①基于Ubuntu等基础镜像启动容器
    ②编写启动容器启动的脚本:脚本是启动此镜像对应的容器时自动执行相关编译命令
    ③将容器打包成镜像
  • 步骤说明
    ①代码下载交给jenkins完成
    ②代码文件以挂载的方式将其引入容器
    ③启动脚本只写编译程序的命令(默认情况下jenkins会将代码下载在此任务的workspace目录下,容器启动时会将workspace挂载到容器中的/Code目录,启动脚本会将代码编译,编译后的程序可以放在/Code目录中,这样jenkins就可以在workspace目录下获取编译后的文件)
    在这里插入图片描述
    ④推荐使用Git服务集中存储这些编译镜像,将代码和对应的编译镜像保存在同一个仓库
    在这里插入图片描述
(2)存储制作的镜像

在jenkins容器中,登陆Git服务的命令
在这里插入图片描述
gitlab可以看到docker登陆和更新镜像命令
在这里插入图片描述
一个git仓库可以存储多个版本的编译镜像
在这里插入图片描述

(3)使用docker镜像进行编译软件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Jenkins使用docker编译的官方说明文档
https://www.jenkins.io/doc/book/installing/docker/

四、jenkins部署实战

1)环境准备

①安装所需库
在这里插入图片描述
②基于docker-compose进行安装,确保以下两个目录存在

1)/opt/jenkins/jenkins_home目录
2)/usr/local/apache-maven-3.6.3目录

在这里插入图片描述
在这里插入图片描述

③第一次登陆可以看到密码
在这里插入图片描述

④安装插件
在这里插入图片描述

⑤安装后添加管理员账号进入jenkins后台
在这里插入图片描述

https://www.bilibili.com/video/BV1Kuu3zJEY2?spm_id_from=333.788.videopod.episodes&vd_source=27ec8b3b09d2a66ceeb9dbe961a247d3&p=3

http://www.dtcms.com/a/278547.html

相关文章:

  • .gitignore文件中的各种写法详解
  • JMeter 连接与配置 ClickHouse 数据库
  • JavaScript 高级封装方法指南
  • 将CSDN文章导出为PDF
  • RabbitMQ的介绍与安装
  • 嵌入式小记
  • 亚马逊自养号技术栈解析:从环境隔离到AI行为模拟的实战指南
  • C++编程语言:标准库:内存和资源管理(Bjarne Stroustrup)
  • 对偶原理与蕴含定理
  • UART寄存器介绍
  • 解决安装 make 时 “configure: error: C compiler cannot create executables” 报错
  • 用于监测线性基础设施的分布式声学传感:现状与趋势
  • week3
  • 阿里云ODPS多模态数据处理实战:MaxFrame的分布式AI数据管道构建
  • ISO 15765-2TP传输协议
  • 迁移学习之图像预训练理解
  • 【双链表】【数组】
  • ubuntu(22.04)系统上安装 MuJoCo
  • 计算机网络(基础概念)
  • 网络协议和基础通信原理
  • qt-- 编译工具-Cmake的使用
  • 一文读懂循环神经网络(RNN)—语言模型+读取长序列数据(2)
  • Python----NLP自然语言处理(NLP自然语言处理解释,NLP的发展历程)
  • QT——文件操作类 QFile和QTextStream
  • 【同等学力-计算机-真题解析】离散数学-图论(握手定理、欧拉公式)
  • ARMv8.1原子操作指令(ll_sc/lse)
  • #Paper Reading# Apple Intelligence Foundation Language Models
  • 【Linux网络】:HTTP(应用层协议)
  • 深入解析 Transformer:开启自然语言处理新时代的革命性模型
  • uni-app在安卓设备上获取 (WIFI 【和】以太网) ip 和 MAC