Jenkins 使用
Jenkins 使用
文章目录
- Jenkins 使用
- 一、jenkins 任务执行
- 二、 Jenkins 连接gitee
- 三、Jenkins 部署静态网站

一、jenkins 任务执行
jenkins 创建 job
job的名字最好是有意义的
restart_web_backend
restart_web_mysql

[root@jenkins ~]# ls /var/lib/jenkins/
config.xml nodeMonitors.xml
hudson.model.UpdateCenter.xml nodes
hudson.plugins.git.GitTool.xml plugins
identity.key.enc queue.xml.bak
jenkins.install.InstallUtil.lastExecVersion secret.key
jenkins.install.UpgradeWizard.state secret.key.not-so-secret
jenkins.model.JenkinsLocationConfiguration.xml secrets
jenkins.telemetry.Correlator.xml updates
jobs userContent
logs users
[root@jenkins ~]# ls /var/lib/jenkins/jobs/
guan_jenkins_job
[root@jenkins ~]# ls /var/lib/jenkins/jobs/guan_jenkins_job/
builds config.xml






[root@jenkins ~]# ls /var/lib/jenkins/workspace/guan_jenkins_job
guan12319.txt

清理工作空间之后,可以发现workspace目录下没有内容了
[root@jenkins ~]# ls /var/lib/jenkins/workspace/
二、 Jenkins 连接gitee
ssh协议连接方式
获取仓库地址
git@gitee.com:sound-of-birds-chirpingg/test_git.git
目的:用户在jenkins服务器上去Gitee(码云)下载代码,然后把代码下载到jenkins服务器上

常见报错
jenkins 没有安装git
yum install -y git
没有做免密

用ssh-keygen 生成公私要,然后上传公钥到gitee上,进行免密登录
[root@jenkins ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC6ATb8WL+zTOhYNkwJKr+xfaZ5QbfLBxyaRYtcO977T6ySDv1MDmBXC0ELBOE0x/Pyac3u5IB+NjLsKM63iYzSXrqk0TzjgrCXM85ZdnJ3mqCwaOa0xt2xFYeu0Pxz5o6CO+bffgfoInEIBHn44UaiJLM1qUdyoIxm8vKEaWF5ZZeDvyl8s952du0NgAQeRr70aISqRFTfZM5rYtkJeQ1r/3O0fuv5VbbklJprOid+viXwPIATLnste4TMFeN0dWW752WSfYpxR/XbPWLeZ0rTu3frIhLCsTOpPZyoLvRwJ7SpqLyPpLxC3mTYysPe66/VmSB6AkOebz9bDHWdsCiyHF6yV8Rl6MPHiilYW+nzWV48Mj5mVO7JMA5euFNMsgNqF908HS9czjD89nOjWjeSjlMn/+TweGulVHopP6n0puC+g2PFPLCfULm9J+JpRJNRCFXoEZ3MW1B3okHZ/Kq9zJNLQs7TjrHhCE8zR2wWULCybLrwqbsHXGRarW6QJvE= root@jenkins




[root@jenkins ~]# cat ~/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
- 在jenkins服务器上配置好git,生成公私钥发给gitlab
- 在jenkins服务器里做好配置,和凭证,写入私钥
Https 协议连接方式
1.获取仓库地址
https://gitee.com/sound-of-birds-chirpingg/test_git.git

2.安装gitee插件,并在安装完成之后重启jenkins服务



添加凭据




此时,gitee仓库更新内容,而jenkins还是之前的内容,没有同步

这个时候,只需要在jenkins 服务器上在构建一次,就完成了代码仓库的同步更新

[root@jenkins guan_jenkins_job]# ls
git.txt guan12319.txt guan.txt hello.txt
[root@jenkins guan_jenkins_job]# ls
git.txt guan12319.txt guan.txt hello.txt README.md
[root@jenkins guan_jenkins_job]#
三、Jenkins 部署静态网站
自动化部署静态站点
1.手动或自动部署一个nginx集群
2.开发提交代码到代码托管平台,gitee
3.运维开发shell脚本,交给jenkins去执行这个脚本,jenkins再去获取代码,推送到nginx集群下

实验准备:使用了2台服务器,一台是运行jenkins服务,另一台运行web服务
1.在web服务器部署一个nginx web 集群
yum install -y nginx
2.修改nginx的配置文件
[root@web ~]# vim /www/server/nginx/conf/nginx.confserver{listen 888; //修改端口server_name phpmyadmin;index index.html index.htm index.php;root /www/server/phpmyadmin;location ~ /tmp/ {return 403;}
创建页面
[root@web ~]# cd /www/server/phpmyadmin
[root@web phpmyadmin]# ls
[root@web phpmyadmin]# echo "hello guan12319" > index.html
[root@web phpmyadmin]# ls
index.html
在浏览器访问页面

[root@web phpmyadmin]# cat index.html
hello guan12319 ----> 你好,世界
在网页文件输入中乱码

解决办法,在网页文件加入如下内容
[root@web phpmyadmin]# cat index.html
<meta charset=utf8>
hello guan12319 ---- 你好,世界

模拟开发推送代码带gitee或者gitlab或者GitHub
- 开发将代码提交到仓库
- 运维通过jenkins从gitee或gitlab拉取代码,然后在jenkins通过使用shell部署到nginx服务器上。




- 在jenkins上创建心的job,然后填入内容,用于执行一个脚本
sh -x /scripts/deploy_nginx.sh
- 在jenkins服务器上部署好脚本
[root@jenkins ~]# mkdir /scripts/
[root@jenkins ~]# touch /scripts/deploy_nginx.sh
[root@jenkins ~]# cat /scripts/deploy_nginx.sh
#1,进入代码目录,打包传输
DATE=$(date +%Y-%m-%d-%H-%M-%S)
#web_server="154.9.228.143 154.9.228.144 154.9.228.145"
web_server="154.9.228.143"# 定义部署的功能函数
# $WORKSPACE 是 jenkins 特有的变量,取得当前job的工作绝对路径
get_code(){cd $WORKSPACE && \ tar czf /opt/web-${DATE}.tar.gz ./*
}# 2.代码发送给web集群组
scp_web_server(){
for hosts in $web_server
do# jenkins执行如下命令,将自己本地代码压缩文件,scp发送给nginx服务器scp /opt/web-${DATE}.tar.gz root@$hosts:/opt/ # jenkins服务器,利用ssh命令,远程执行命令ssh root@$hosts "mkdir -p /nginx_web_html/web-${DATE} && \tar -zxf /opt/web-${DATE}.tar.gz -C /nginx_web_html/web-${DATE} rm -rf /nginx_web_html/web && \ ln -s /nginx_web_html/web-${DATE} /nginx_web_html/web"done
}
# nginx 服务器上的网页根目录是: /nginx_web_html/web# 3.函数执行
deploy(){get_codescp_web_server
} # 4.执行入口
deploy#给脚本赋予执行权限
[root@jenkins ~]# chmod 777 /scripts/deploy_nginx.sh
脚本直接执行,如果权限不够,可能是因为jenkins这个服务是jenkins用户运行的,像要操作目录权限不够,所以需要修改jenkins的用户为root

[root@jenkins ~]# grep root /etc/sysconfig/jenkins
JENKINS_USER="root"

[root@jenkins opt]# ssh-copy-id root@154.9.228.143
构建成功之后即可,访问网页了

相关文章:
Jenkins 使用
Jenkins 使用 文章目录 Jenkins 使用一、jenkins 任务执行二、 Jenkins 连接gitee三、Jenkins 部署静态网站 一、jenkins 任务执行 jenkins 创建 job job的名字最好是有意义的 restart_web_backend restart_web_mysql[rootjenkins ~]# ls /var/lib/jenkins/ config.xml …...
使用go-zero快速构建微服务
本文是对 使用go-zero快速构建微服务[1]的亲手实践 编写API Gateway代码 mkdir bookstore && cd bookstorego mod init bookstore mkdir api && goctl api -o api/bookstore.api syntax "v1"info(title: "xx使用go-zero"desc: "xx用…...
Java开发 - Redis事务怎么用?
前言 最近博主感觉捅了Redis窝,从Redis主从,哨兵,集群,集群原理纷纷讲了一遍,不知道大家都学会了多少,想着送佛送到西,不如再添一把火,所以今天带给大家的博客是Redis事务ÿ…...
Windows Server 2019安装使用PostgreSQL 15
主要是参考这篇文章来做的: Windows11安装配置PostgreSQL(图文详细教程)_win11安装postgres 并管理工具_return strxi的博客-CSDN博客 1. 下载的是postgresql 15.3 windows x64-86版本 Community DL Page 2. 安装时一定要右击安装exe文件…...
中科驭数亮相DPU峰会,分享HADOS软件生态实践和大数据计算方案,再获评“匠芯技术奖”
又是一年相逢时,8月4日,第三届DPU峰会在北京开幕,本届峰会由中国通信学会指导,江苏省未来网络创新研究院主办,SDNLAB社区承办,以“智驱创新芯动未来”为主题,沿袭技术创新、生态协同的共创效应&…...
chrome、edge、Firefox关闭音量提醒控件显示
文章目录 1. Chrome2. edge3. firefox 1. Chrome 在地址栏输入: chrome://flags/#hardware-media-key-handling 将Hardware Media Key Handling的状态设为Disabled 2. edge 在地址栏输入 edge://flags/#hardware-media-key-handling 将Hardware Media Key Handling的状态…...
3.7v升压5v4A芯片用什么型号
问:我需要一个能够将3.7V锂电池的电压升压到5V,并且能够提供4A的电流输出的芯片。请问有什么推荐的型号吗? 答:小编为您推荐AH6922B芯片,它具备以下特点来满足您的需求: 1. 输入电压范围适配:…...
鉴源实验室丨SOME/IP协议安全攻击
作者 | 张昊晖 上海控安可信软件创新研究院工控网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 引 言 随着汽车行业对于数据通信的需求不断增加,SOME/IP作为支持汽车以太网进程和设备间通信的一种通信协议应…...
什么?200?跨域?
情景复现 今天我遇到了一件很奇怪的事情就是,当我请求后端网关,然后通过网关去请求相应的服务,都进行了跨域处理 但是,奇怪的是我在请求的时候,回来的响应码是200,但是报错了,报的还是200的同…...
【数据结构与算法——TypeScript】算法的复杂度分析、 数组和链表的对比
【数据结构与算法——TypeScript】 算法的复杂度分析 什么是算法复杂度(现实案例)? ❤️🔥 前面已经解释了什么是算法? 其实就是解决问题的一系列步骤操作、逻辑。 ✅ 对于同一个问题,我们往往有很多种解决思路和方法&#x…...
搜索综合训练
搜索综合训练 选数详细注释的代码 小木棍详细注释的代码 费解的开关详细注释的代码 选数 详细注释的代码 #include <iostream> #include <vector>using namespace std;// 判断一个数是否为素数 bool isPrime(int num) {if (num < 1)return false;// 判断从2到s…...
snowboy+新一代kaldi(k2-fsa)sherpa-onnx实现离线语音识别【语音助手】
背景 本系列主要目标初步完成一款智能音箱的基础功能,包括语音唤醒、语音识别(语音转文字)、处理用户请求(比如查天气等,主要通过rasa自己定义意图实现)、语音合成(文字转语音)功能。 语音识别、语音合成采用离线方式实现。 语…...
APT80DQ20BG-ASEMI快恢复二极管80A 200V
编辑:ll APT80DQ20BG-ASEMI快恢复二极管80A 200V 型号:APT80DQ20BG 品牌:ASEMI 芯片个数:双芯片 封装:TO-3P 恢复时间:≤50ns 工作温度:-55C~150C 浪涌电流:600A*2 正向电流…...
Go的任务调度单元与并发编程
摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 本文主要介绍Go语言、进程、线程、协程的出现背景原因以及Go 语言如何解决协程的…...
PDFbox教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 PDFBox是一个开源Java库,支持PDF文档的开发和转换.使用此库,您可以开发用于创建,转换和操作PDF文档的Java程序.除此之外,PDFBox还包括一个命令行实用程序,用于使用可用的PDF对PDF执行各种操作Jar文件. PDFB…...
Node.js-模块化理解及基本使用
模块化的定义 讲一个复杂的程序文件按照一定的规则拆分成多个独立的小文件,这些小文件就是小模块,这就是模块化。 每个小模块内部的数据是私有的,可以暴露内部数据给外部其他模块使用。 模块化优点 减少命名的冲突提高复用性提高可维护性按需…...
arguments 和 剩余参数
加油 !! 💕 文章目录 前言一、arguments二、arguments转成array三、箭头函数不绑定arguments四、剩余参数 ... 前言 其实在es6之后不推荐使用 arguments , 建议使用剩余参数 一、arguments arguments 是一个 对应于 传递给函数的参数 的 类数…...
【BASH】回顾与知识点梳理(十二)
【BASH】回顾与知识点梳理 十二 十二. Linux 文件与目录管理12.1 目录与路径相对路径与绝对路径相对路径的用途绝对路径的用途 12.2 目录的相关操作cd (change directory, 变换目录)pwd (Print Working Directory, 显示目前所在的目录)mkdir (make directory, 建立新目录)rmdir…...
本地构建包含java和maven的镜像
目录 1.前提条件 2.下载 2.1.创建Dockerfile 3.构建镜像 参考文章 1.前提条件 本地环境需要的系统和软件 win10 Docker Desktop Powershell 图1 Win10安装Docker后,直接在Powershell使用Docker命令 有些Developer不习惯win10系统,却想要使用Lin…...
Programming abstractions in C阅读笔记:p76-p83
《Programming Abstractions In C》学习第42天,p76-p73总结。 一、技术总结 1.数组和指针 在C语言中,数组和指针非常相似,相似到必须将它们同时考虑,当看到数组就应该想到指针,当看到指针就应该想到数组。示例…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
