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 插件

给项目添加视图

查看视图

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

命名空间(namespace)

定义 在C中,命名空间(Namespace)是一个特性,用于封装代码并避免名称冲突。命名空间可以看作是一个容器,其中可以包含类、函数、变量、常量、其他命名空间等。通过使用命名空间,我们可以更好地组织代码&…

面试经典150题 -- 回溯 (总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 17 . 电话号码的字母组合 1 . 先创建一个下标 与 对应字符串映射的数组,这里使用hash表进行映射也是可以的 ; 2 . 对于回溯 ,…

python数据类型及转换

一、数据类型 数据类型分为数值型、布尔型、字符串型等 1.1数值类型 数值类型可以分为整数类型、浮点数类型、复数类型 1.1.1整数类型 (1)概念:整数类型指数值是没有小数部分的,包含正整数、负整数和0 (2)进制种类:十进制--->234、5…

【网站项目】139选课排课系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Redis 群集

简介 在现在的互联网大潮中,NoSQL可谓家喻户晓,Redis作为NoSOL大军中极其重要的一员,是我们走向架构道路的一条必经之路。 Redis介绍 Redis 数据库是一个非关系型数据库,在正式学习Redis之前,我们先来了解关系型数据库…

算法沉淀——动态规划之完全背包问题(leetcode真题剖析)

算法沉淀——动态规划之完全背包问题 01.【模板】完全背包02.零钱兑换03.零钱兑换 II04.完全平方数 完全背包问题是背包问题的一种变体,与01背包问题不同,它允许你对每种物品进行多次选择。具体来说,给定一个固定容量的背包,一组物…

TCPDump 使用教程

每次服务器网络不通的时候,总会听到一个声音,你去抓包啊,那这里就来介绍下TCPDump,一款强大的网络分析工具,可以捕获网络上的数据包,并进行分析。这款工具在网络管理员和安全专家中非常受欢迎。 一、安装 …

防火墙:网络防御的第一道防线

目录 引言 一、安全技术与防火墙 (一)安全技术 (二)防火墙的主要功能与分类 1.防火墙的主要功能 2.防火墙的分类 二、Linux防火墙的基本认识 (一)Netfilter (二)防火墙工具…

单调队列(347. 前 K 个高频元素239. 滑动窗口最大值)

单调队列和单调栈其实差不多,就是维护一个区间单调的队列或者是栈,单调队列就是我们所说的大顶堆小顶堆, //升序队列 小顶堆 great 小到大 priority_queue <int,vector<int>,greater<int> > pri_que; //降序队列 大顶堆 less 大到小 默认 priority_qu…

【AI视野·今日NLP 自然语言处理论文速览 第八十一期】Mon, 4 Mar 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 4 Mar 2024 Totally 48 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Mitigating Reversal Curse via Semantic-aware Permutation Training Authors Qingyan Guo, Rui Wang, Junlia…

Fisher矩阵与自然梯度法

文章目录 Fisher矩阵及自然梯度法Fisher矩阵自然梯度法总结参考链接 Fisher矩阵及自然梯度法 自然梯度法相比传统的梯度下降法具有以下优势&#xff1a; 更好的适应性&#xff1a;自然梯度法通过引入黎曼流形上的梯度概念&#xff0c;能够更好地适应参数空间的几何结构。这使…

LCR 134. Pow(x, n)

解题思路&#xff1a; 分治 快速幂 Java中向下取整n/2即可 需要结合下图理解&#xff0c;算法就是实现的该过程 class Solution {public double myPow(double x, int n) {if(x 0.0f) return 0.0d;long b n;double res 1.0;//例如:2^-5(1/2)^5if(b < 0) {x 1 / x;b -b…

【Python】Python教师/学生信息管理系统 [简易版] (源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

京东商品优惠券API获取商品到手价

item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,i…

MATLAB环境下基于区域椭圆拟合的细胞分割方法

使用图像分割技术可以找到图像中的目标区域&#xff0c;目标区域可以定义为具有特定值的单个区域&#xff0c;也可以定义为具有相同值的多个区域。目前图像分割已经融入到生活中的方方面面&#xff0c;在遥感领域&#xff0c;它应用于航拍图中的地形、地貌的分割&#xff1b;在…

智慧城市的创新实践:全球案例分享

一、引言 在全球化和数字化的时代&#xff0c;智慧城市已经成为城市发展的前沿趋势。智慧城市运用先进的信息技术&#xff0c;如大数据、物联网、云计算和人工智能等&#xff0c;提升城市管理的智能化水平&#xff0c;增强公共服务效率&#xff0c;优化居民生活质量。本文将通…

第四十九回 吴学究双掌连环计 宋公明三打祝家庄-Python与HTTP服务交互

吴用请戴宗从梁山请来铁面孔目裴宣、圣手书生萧让、通臂猿侯健、玉臂匠金大坚来帮忙。又告诫扈家庄的扈成&#xff0c;打起来不要去帮祝家庄。 孙立把旗号改成“登州兵马提辖孙立”&#xff0c;来祝家庄找峦廷玉&#xff0c;被热情接待。 第三天&#xff0c;宋江派小李广花荣…

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍

1.简介 学习音视频开发&#xff0c;首先从做一款播放器开始是比较合理的&#xff0c;每一章节&#xff0c;我都会将源码贴在最后&#xff0c;此专栏你将学习到以下内容&#xff1a; 1&#xff09;音视频的解封装、解码&#xff1b; 2&#xff09;Qtopengl如何渲染视频&#…

Docker实战——容器

目录 Docker 容器的基本概念与操作1.使用“docker create”创建容器。这里基于Nginx的镜像创建了一个容器&#xff0c;名字为mycontainer。2.使用“docker ps -a”命令查看所有的容器&#xff0c;这时的容器不一定是运行状态。3.使用 “docker start” 命令可以启动容器。4.使用…

优化zabbix对Docker API的监控

启用Zabbix Agent 2对Docker API的监控&#xff0c;通常不需要直接编辑/etc/zabbix/zabbix_agent2.d/下的文件&#xff0c;因为针对Docker容器的监控是通过内建的插件实现的。以下是大致步骤&#xff1a; 确认Agent版本与配置&#xff1a; 确保你安装的是支持Docker监控的Zabbi…