自动化部署-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 思路 和往常一样,先使用暴力求解,想到了回溯算法,选择了当前数字,就跳到下一个数字,形成一个树形结构来遍历所有结果集合,但是没有找到优化算…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Tauri2学习笔记
教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...
