自动化部署-01-jenkins安装
文章目录
- 前言
- 一、下载安装
- 二、启动
- 三、问题
- 3.1 jdk版本问题
- 3.2 端口冲突
- 3.3 库文件加载问题
- 3.4 系统字体配置问题
- 四、再次启动
- 五、配置jenkins
- 5.1 解锁
- 5.2 安装插件
- 5.3 创建管理员用户
- 5.4 实例配置
- 5.5 开始使用
- 5.6 完成
- 总结
前言
spingcloud微服务等每次部署到服务器上,都需要本地编译打包,然后将打好的包上传到服务器再启动。这样比较麻烦。我们可以使用自动化部署,自动在服务器上部署新代码。
jenkins部署版本是:2.462.3
我是使用的部署skywalking的虚拟机10.211.55.120,已经装好了open-jdk-21.0.2,但这个jdk版本安装jenkins有点问题。
一、下载安装
参考文档:
https://www.jenkins.io/doc/book/installing/linux/
https://pkg.jenkins.io/redhat-stable/
我的虚拟机是CentOS系统,所以执行:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
#安装
yum install jenkins
以下是详情
[root@localhost config]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2024-10-24 16:58:31-- https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io (pkg.jenkins.io)... 151.101.194.133, 151.101.66.133, 151.101.130.133, ...
Connecting to pkg.jenkins.io (pkg.jenkins.io)|151.101.194.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’/etc/yum.repos.d/jenkins.repo 100%[==============================================================================================>] 85 --.-KB/s in 0s 2024-10-24 16:58:33 (200 KB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85][root@localhost config]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
[root@localhost config]# yum install jenkins
Jenkins-stable 8.0 kB/s | 29 kB 00:03
Dependencies resolved.
=====================================================================================================================================================================================Package Architecture Version Repository Size
=====================================================================================================================================================================================
Installing:jenkins noarch 2.462.3-1.1 jenkins 89 MTransaction Summary
=====================================================================================================================================================================================
Install 1 PackageTotal download size: 89 M
Installed size: 89 M
Is this ok [y/N]: y
Downloading Packages:
jenkins-2.462.3-1.1.noarch.rpm 4.6 MB/s | 89 MB 00:19
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 4.6 MB/s | 89 MB 00:19
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing : 1/1 Running scriptlet: jenkins-2.462.3-1.1.noarch 1/1 Installing : jenkins-2.462.3-1.1.noarch 1/1 Running scriptlet: jenkins-2.462.3-1.1.noarch 1/1 Verifying : jenkins-2.462.3-1.1.noarch 1/1 Installed:jenkins-2.462.3-1.1.noarch Complete!
二、启动
执行:
sudo systemctl daemon-reload
sudo systemctl start jenkins
按照官方文档此时应该可以启动成功。
三、问题
3.1 jdk版本问题
解决:
1.下载jdk17版本,比如解压到/opt/java17目录。
2.修改jenkins启动脚本:
vim /usr/lib/systemd/system/jenkins.service
修改Java home directory
3.2 端口冲突
因为skywalking的端口也是8080,所以修改jenkins的启动端口。
解决:
1.修改jenkins启动脚本:
vim /usr/lib/systemd/system/jenkins.service
修改JENKINS_PORT
3.3 库文件加载问题
执行
#通过包管理工具(根据系统使用不同的命令)来安装 libfreetype6 依赖库
sudo yum install freetype
#安装完成后,验证 libfreetype 是否正确安装
ldd /opt/java17/lib/libfontmanager.so | grep freetype#如果出现
ldd: warning: you do not have execution permission for `/opt/java17/lib/libfontmanager.so'libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fd778362000)#再执行
sudo chmod +x /opt/java17/lib/libfontmanager.so
#是否还存在权限警告
ldd /opt/java17/lib/libfontmanager.so | grep freetype
3.4 系统字体配置问题
解决:
#安装必要的字体:Java应用程序通常依赖于fontconfig中的字体来正确渲染图形组件。在Linux系统中,可以通过以下命令安装一些基础字体
sudo yum install fontconfig dejavu-sans-fonts
#重新生成字体缓存:安装字体后,建议重新生成字体缓存,以确保更改生效
sudo fc-cache -fv
#确保Jenkins可以访问字体:确保Jenkins进程有访问字体和相关配置文件的权限。你可以通过以下命令查看是否能够列出系统中的字体
fc-list
四、再次启动
systemctl start jenkins
如果出现
就执行:
journalctl -xeu jenkins.service
发现日志正常,没有错误。
注意其中的密码
Oct 25 08:52:09 localhost.localdomain jenkins[61917]: Jenkins initial setup is required. An admin user has been created and a password generated.
Oct 25 08:52:09 localhost.localdomain jenkins[61917]: Please use the following password to proceed to installation:
Oct 25 08:52:09 localhost.localdomain jenkins[61917]: dc63794d88ba4141bd7b5ee928bca97b
Oct 25 08:52:09 localhost.localdomain jenkins[61917]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
再执行:
systemctl status jenkins
发现启动成功。
五、配置jenkins
浏览器打开:http://10.211.55.120:8089
5.1 解锁
输入上面日志中的密码后
5.2 安装插件
建议选择插件来安装,因为安装插件超慢,不如项目先启动起来后,通过别的方法下载安装插件。
5.3 创建管理员用户
5.4 实例配置
5.5 开始使用
5.6 完成
总结
后续使用jenkins实现自动化。
相关文章:

自动化部署-01-jenkins安装
文章目录 前言一、下载安装二、启动三、问题3.1 jdk版本问题3.2 端口冲突3.3 库文件加载问题3.4 系统字体配置问题 四、再次启动五、配置jenkins5.1 解锁5.2 安装插件5.3 创建管理员用户5.4 实例配置5.5 开始使用5.6 完成 总结 前言 spingcloud微服务等每次部署到服务器上&…...

AI工具大爆发,建议每个都使用收藏
2024年被誉为AI应用元年,这一年人们普遍意识到,未来占据主导地位的将是基于大模型的应用程序,而不仅仅是大模型本身。因此,在这一趋势的推动下,各式各样的AI应用如雨后春笋般涌现出来。 今天就聊聊这些好用的AI工具&a…...
Mybatis之参数处理
在MyBatis中,参数处理是非常关键的部分,它负责将传入的参数正确映射到SQL语句中 单个简单类型参数 简单类型对于mybatis来说都是可以自动类型识别的: 也就是说对于mybatis来说,它是可以自动推断出ps.setXxxx()方法的。ps.setSt…...

windows内核探索--打印windows的GDT表(全局描述符表)
x86 #include <windows.h> #include<stdio.h> #include "x86struct.h" void PrintSegmentDescriptor(ULONG64* sd, WORD Count); SegmentSelector GetSegmentSelector(USHORT Selector); int main() {printf("0环cs段寄存器 ");GetSegmentSel…...
【ChatGPT】让ChatGPT帮助进行头脑风暴与创意生成
让ChatGPT帮助进行头脑风暴与创意生成 在日常工作和生活中,创意和头脑风暴是解决问题、创新和推动项目的关键步骤。ChatGPT,作为一个强大的语言模型,不仅可以提供信息和答案,还可以成为强大的头脑风暴工具,帮助用户快…...

大数据处理随堂测试
HDFS MapReduce HBase Spark...

2024最新pycharm安装教程及基本使用(超详细,新手小白必看)
文章目录 前言一、官网下载二、安装步骤三、使用示范四、番外篇(汉)大纲 PythonPyCharm安装包领取方式戳‘这块里’ 前言 一、官网下载 1. 进入pycharm官网,点击下载 PyCharm: The Python IDE for data science and web development by J…...
三国杀钓鱼自动化
三国杀钓鱼脚本 前言 本来是想做必杀的,但是后来测试了大约400钓发现纯靠连点没有漏掉的鱼,所以必杀功能就舍弃了。 我pyinstaller打包后运行.exe居然黑屏了???可能是多进程报错处理没写好,反正还是用vsc…...

在pycharm中使用sqllite
在pycharm中使用sqllite sqllite 简介 SQLite 是一个开源的、轻量级的、关系型数据库管理系统(RDBMS),它设计用于嵌入到应用程序中,并且可以在无需外部服务器进程的情况下运行。SQLite 提供了完整的 SQL 语言支持,允…...

Linux——文件操作
前言 1)在Linux下面,一切皆文件,文件文件内容文件属性 2)在访问文件是,都得先将文件打开,修改文件的本质其实还是通过执行代码的形式修改。 3)文件是被进程打开的,一个进程可以打…...

数据结构 ——— 数组栈oj题:有效括号
目录 题目要求 代码实现 题目要求 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每…...

Character AI被起诉!14岁青少年自杀,AI陪伴何去何从
终于,AI在青少年心理问题方面,被推上了风口浪尖。 最近,美国佛罗里达州,一名14岁男孩Sewell Setzer的父母控告Character AI公司,声称孩子沉迷该公司的AI聊天机器人,最后走上了自杀的道路。 跟AI聊天还能致…...

CSS3 动画相关属性实例大全(三)(columns、filter、flex、flex-basis 、flex-grow、flex-shrink属性)
CSS3 动画相关属性实例大全(三) (columns、filter、flex、flex-basis 、flex-grow、flex-shrink属性) 本文目录: 一、columns属性(设置元素的列宽和列数) 二、filter属性(调整图像、背景和边…...

中国最厉害的思想家改名大师颜廷利:以诚信为基,塑企业信誉
跨文化融合,共筑包容性文化殿堂。尊重差异,促进团队合作,以诚信为基,塑企业信誉。融合《升命学说》智慧,推动员工多元化,践行社会责任,树立良好形象。创新不息,持续学习,…...
Python 代码实现用于进行水质模拟和优化加氯量
# -*- coding:utf-8 -*- import epamodule as em import epanetmsxmodule as msx import pandas as pd import numpy as np# 水质模拟,会产生一个rpt文件,但并不是返回这个文件。 def quality_simulation(inp_file,rpt_file,msx_file...

挖矿病毒来势汹汹
病毒来了, 我的个人站点使用了 wordpress, 它的不知哪个漏洞让黑客攻入了我的站点 使用 top 命令看到了有不明进程始终占据了 100% 的 CPU snapshot 1 snapshot 2 通过以下 "三板斧"可以查杀这个进程 先用 top (shiftp) 查找占据 CPU 最多的进程根据其进程号 pid 查看…...

国产数据库的蓝海在哪?
昨天有幸参加了 OceanBase2024年度发布会。在过去的几年中,OB 作为国内自主研发的分布式数据库,取得了令人瞩目的成就,特别是在金融行业,OB 通过不断的技术革新和优化,已经成为行业的领导者之一。OceanBase 展现了强大…...

MySQL~表的操作(创建表,查看表,修改表,删除表)
1.创建表 1.1.创建表 首先要选择需要操作的数据库,USE 数据库名,后续可以根据实际情况操作时添加。 USE fruitsales;建表语法: create table 表名( 字段名1 数据类型, 字段名2 数据类型, ); 实例:创建fruit_bak1表。 create t…...
多线程加锁与手搓智能指针实践
前缀知识 如何手搓智能指针 参考链接 如何多线程加锁,线程间通信 参考链接 注意: 在第一个链接中,重载赋值构造函数时,返回值类型为引用类型,仅适用于返回的这个对象, 在该函数调用前 (已经)存在了!!! 具体可参考 参考…...

3180. 执行操作可获得的最大总奖励 I
力扣刷题记录 dp 回溯 3180. 执行操作可获得的最大总奖励 I 思路 和往常一样,先使用暴力求解,想到了回溯算法,选择了当前数字,就跳到下一个数字,形成一个树形结构来遍历所有结果集合,但是没有找到优化算…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...
Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
无论是python,或者java 的大型项目中,都会涉及到 自身平台微服务之间的相互调用,以及和第三发平台的 接口对接,那在python 中是怎么实现的呢? 在 Python Web 开发中,FastAPI 和 Django 是两个重要但定位不…...