Jenkins 安装

目录

1、部署 Jenkins

安装配置 Jenkins

解锁 Jenkins

安装 Jenkins 插件

创建管理员账号

手动安装插件

2、Jenkins 从 GitLat 拉取代码

安装 Jenkins 插件

在 node-16 上生成密钥对

把公钥配置到 gitlab 上

把 root 用户私钥配置到 jenkins 上

Jenkins 创建一个任务

Jenkins 测试拉取代码

3、将代码发布到 Web 服务器上

部署服务,配置免密、提权

创建自动上传web的脚本

把脚本添加到 Jenkins 中

测试构建

4、实战:更新Gitlab代码触发Jenkins自动构建

配置身份验证令牌

Jenkins 上配置触发器

在gitlab项目 配置 webhook

综合测试:同步远程web项目

5、使用 Build Pipeline 插件显示流程图

安装 Build Pipeline 插件

给项目添加视图

查看视图


1、部署 Jenkins
安装配置 Jenkins

阿里:jenkins-redhat-stable安装包下载_开源镜像站-阿里云

清华软件站:Index of /jenkins/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

# 安装依赖包
yum install -y fontconfig java-11-openjdk

# 安装 jekins 
yum install -y jenkins-2.387.3-1.1.noarch.rpm

# 修改配置文件
vim /etc/sysconfig/jenkins 
JENKINS_USER="root" #修改默认运行账号

# 启动 jenkins 
systemctl start jenkins 
systemctl enable jenkins 
systemctl status jenkins

# 查看端口:Jenkins 默认使用 8080 端口
netstat -antup | grep 8080

# 更改 jenkins 插件下载地址
# 更改 jenkins 插件下载地址为清华源,加快下载速度
sed -i 's/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && \
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json 


systemctl restart jenkins
解锁 Jenkins

访问Jenkins:192.168.137.116:8080

4f9fbaced802496ca0bc57d53bda347a
安装 Jenkins 插件

选择默认即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装。

注意:如果在这里安装插件需要连网才能下载插件。

创建管理员账号

这里创建一个账号,如果点击的是使用 admin 账号继续,那么 admin 的密码就是刚才的激活密码。

手动安装插件

国内源 https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

修改默认插件地址为国内源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

2、Jenkins 从 GitLat 拉取代码
安装 Jenkins 插件

需要安装以下插件:

Credentials Plugin

签名证书管理插件(默认已经安装)

Gitlab Plugin

安装后从 gitlab 获取代码

Git Plugin 和 Git Client Plugin

用于 jenkins 在 gitlab 中拉取源码

GitLab Hook

gitlab 触发 jenkins 构建项目

Gitlab Authentication

gitlab 和 jenkins 认证相关的插件

SSH Plugin

进程执行 shell 脚本

Publish Over SSH

用于通过 ssh 部署应用

① 安装 GitLab 插件

② 安装 Git 插件

Git 插件默认也已经安装,不用管

③ 安装 SSH 插件

在 node-16 上生成密钥对

把公钥配置到 gitlab 上
cat .ssh/id_rsa.pub

测试发现不需要密码就可以直接 clone 项目,免密 clone OK!

把 root 用户私钥配置到 jenkins 上

root 公钥在 gitlab,root 私钥在 jenkins,这样 jenkins 就可以直接拉取 gitlab 上的代码。

全局凭证(不受限制)

Jenkins 创建一个任务

分支要么是*/master,要么是*/main

注意如果设置git仓库出现如上错误,请拷贝主机的 known 文件到 jenkins 用户家目录下

cp .ssh/known_hosts /var/lib/jenkins/.ssh/known_hosts
Jenkins 测试拉取代码

3、将代码发布到 Web 服务器上

可以通过执行命令或脚本的方式进行代码发布,我使用 root 用户在各个 web 服务器上发布代码。大家也可以建立一些普通用户如果 www 或 apache 来发布。 如果使用普通用户发布代码,要保持所有服务器上的用户 id 一致,这样没有权限 的问题。 我们这里直接使用 root 用户来发布。

部署服务,配置免密、提权

部署 apache 服务

# 在node-17、16上安装apache
yum install -y httpd 
systemctl start httpd

配置 免密登录

需要 jenkins 自动发布代码的服务器都需要配置免密认证

ssh-copy-id root@192.168.137.117
ssh-copy-id root@192.168.137.116

配置 jenkins 用户 sudu 权限

[root@node-17 ~] visudo
jenkins ALL=(ALL) NOPASSWD: /usr/bin/ssh
创建自动上传web的脚本
# 创建自动上传 web 代码的脚本
vim deploy.sh 
#------------------------------------------------
#!/bin/bash 
echo $USER 
cd /var/lib/jenkins/workspace/web-test 
scp -r ./* root@192.168.1.12:/var/www/html/ 
scp -r ./* root@192.168.1.13:/var/www/html/ 
#------------------------------------------------

chmod +x deploy.sh

把脚本添加到 Jenkins 中

在 jenkins “增加构建步骤”写入上传代码脚本,方便 jenkins 使用脚本自动部署。

测试构建

4、实战:更新Gitlab代码触发Jenkins自动构建

实战场景:在公司的测试环境当中,当开发人员向 gitlab 仓库提交代码后,gitlab 自动通知 jenkins 进行构建项目、代码质量测试然后部署至测试环境,这里先暂时部署到测试环境。对于生产环境,后期使用手动部署代码。

配置身份验证令牌

需要安装的插件: Gitlab Hook Plugin(之前已经安装过)、Build Authorization Token Root 和 Build Token Trigger

# 生成身份令牌:在 jenkins 服务器上生成 Token,openssl rand 生成随机密码
[root@node-17 ~] openssl rand -hex 12 # 779a3654b0dbb0e71cf65659
  • -hex:输出结果为 16 进制数据; 数字 12 是指定生成的随机字符为 12 字节, 即 24 个 16 进制个数。
Jenkins 上配置触发器

在gitlab项目 配置 webhook

URL格式:http://jenkins 地址/buildByToken/build?job=jenkins 项目名&token=token 值

http://192.168.137.117:8080/buildByToken/build?job=test&token=779a3654b0dbb0e71cf65659

解决: 这是因为 gitlab 10.6 版本以后为了安全,不允许向本地网络发送 webhook 请求, 如果想向本地网络发送 webhook 请求,则需要使用管理员帐号登录,去修改配置。

综合测试:同步远程web项目

使用我们的 windows 客户端和 linux 客户端都可以,我这里使用 windows 客户端

5、使用 Build Pipeline 插件显示流程图
安装 Build Pipeline 插件

给项目添加视图

查看视图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/428091.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCSA时钟控制集成之时钟门控集成

1.4 时钟门控集成 高级时钟门控是使用每个时钟域的时钟控制器组件实现的。时钟控制器支持多个组件的时钟门控,并为每个组件提供一个Q-Channel接口。 大多数Arm组件都支持这种类型的时钟门控。大多数组件使用Q-Channel。一些较早的组件使用AXI LPI,但在…

2024全国护网行动HW行动招聘/收人!!!

2024全国护网行动HW行动招聘 溯蓉信创开始收人啦!!!现在开始收录2024HW简历,感兴趣的小伙伴扫码二维码添加微信 我们签约后,入场即预付款3k,签约后我们会在HW之前对我们的人员进行HW培训,保证上…

AI加速引擎PAI-TorchAcc:整体介绍与性能概述

作者:沈雯婷、黄奕桐、艾宝乐、王昂、李永 1、简介 PAI-TorchAcc(Torch Accelerator)是阿里云人工智能平台开发的Pytorch上的大模型训练加速框架。 PAI-TorchAcc提供了一套基于Pytorch的简洁、易用的接口,无需进行模型转换就可以无缝地接入HuggingFac…

HTTP笔记(五)

个人学习笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 目录 一:HTTP报文首部 (1)HTTP请求报文 (2&#xff09…

【C++庖丁解牛】默认成员函数

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 前言1. 构造函数1.1 …

Linux配置网卡功能

提示:工具下载链接在文章最后 目录 一.network功能介绍二.配置network功能2.1 network_ip配置检查 2.2 network_br配置2.2.1 配置的网桥原先不存在检查2.2.2 配置的网桥已存在-修改网桥IP检查2.2.3 配置的网桥已存在-只添加网卡到网桥里检查 2.3 network_bond配置检查 2.4 netw…

数据结构与算法-选择排序

引言 在计算机科学中,数据结构和算法是两个至关重要的基石。它们共同决定了程序的效率、可读性和可维护性。本文我们将聚焦于一种基础而直观的排序算法——选择排序,并探讨其内在的工作机制以及在实际应用中的优缺点。 一、什么是选择排序? …

LeetCode 刷题 [C++] 第763题.划分字母区间

题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 …

如何在Vue中实现事件处理?

Vue是一种流行的JavaScript框架,广泛应用于前端开发。在Vue中,事件处理是一个非常关键的概念,可以帮助我们实现用户与页面的交互,今天我们就来探讨一下如何在Vue中实现事件处理。 首先,让我们先了解一下在Vue中如何绑…

微信小程序开发:接入阿里云人像动漫化api接口

前面我已经把腾讯云的人像转动漫化接口接到了我的小程序里,但是和阿里云的对比后,发现阿里云的效果会更好一些,且支持更多特效,如下: 我比较喜欢这个3D特效风格,动画3D也可以,大家拭目以待。 话…

波奇学Liunx:信号的产生,保存,处理

信号的产生,信号的保存,信号的处理 在操作系统中进程接受到信号会保存,产生 进程必须识别和能够处理信号,处理信号是进程的内置功能 进程收到信号时不一定会立即执行,所以进程必然有一套识别,保存&#xff…

Nodejs 第四十四章(redis基本使用)

字符串的操作 SET key value [NX|XX] [EX seconds] [PX milliseconds] [GET]key:要设置的键名。value:要设置的值。NX:可选参数,表示只在键不存在时才设置值。XX:可选参数,表示只在键已经存在时才设置值。…

MySQL字符集和比较规则

MySQL字符集和比较规则 字符集和比较规则简介 字符集: 描述字符与二进制数据的映射关系 比较规则:比较指定字符集中的字符的规则 字符集 我们知道,计算机无法直接存储字符串,实际存储的都是二进制数据。字符集是有限的&#xff…

windos 批量自定义 重命名

有时候需要批量重命名,window全选重命名格式又不能自定义,所以写了一个批处理文件来完成,可以自定义文件名格式 1.使用用方法 echo off setlocal enableextensions enabledelayedexpansion set i1 for /f %%i in (cd) do set var%%i for /r …

Python打发无聊时光:13.用pywin32库制作电脑本地快捷应用

第一步:新建一个simple_app.py 装库pywin32库 pip install pywin32 新建一个simple_app.py,复制下面代码,或者可以自己设计内容给 import tkinter as tkclass AnimatedGUI:def __init__(self, root):self.root rootself.root.title(&quo…

HTTP/2、HTTP/3分别解决了什么问题

总的来说就是HTTP/1.1是请求-响应模型导致队头阻塞问题,HTTP2是TCP层面导致队头阻塞问题 HTTP/2 多路复用,解决了HTTP/1.1队头阻塞问题 HTTP/1.1 的实现是基于请求-响应模型的。同一个连接中,HTTP 完成一个事务(请求与响应&…

华为OD机试真题C卷-篇6

100分值题 宽度最小的子矩阵部门人力分配电脑病毒感染会议室占用时间段路口最短时间问题5G网络建设 宽度最小的子矩阵 给定一个n行 * m列的矩阵;给定一个k个整数的数组k_list;在n*m的矩阵中找一个宽度最小的子矩阵,该子矩阵包含k_list中所有…

【三维重建】VastGaussian:用于大场景重建的大3D Gaussian(CVPR 2024)

题目:VastGaussian: Vast 3D Gaussians for Large Scene Reconstruction 来源:清华大学;华为诺亚;中国科学院 链接:https://vastgaussian.github.io/ 总结:VastGaussian:基于3D GS的分块优化重…

2024年天津市安全员B证证模拟考试题库及天津市安全员B证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年天津市安全员B证证模拟考试题库及天津市安全员B证理论考试试题是由安全生产模拟考试一点通提供,天津市安全员B证证模拟考试题库是根据天津市安全员B证最新版教材,天津市安全员B证大纲整理…

【Linux】Linux原生异步IO:AIO

1、IO模型 1.1 简述 相信大家在搜索的时候,都会看到下面这张图,IO的使用场景:同步、异步、阻塞、非阻塞,可以组合成四种情况: 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可…