自动化部署-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 思路 和往常一样,先使用暴力求解,想到了回溯算法,选择了当前数字,就跳到下一个数字,形成一个树形结构来遍历所有结果集合,但是没有找到优化算…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境
如何结合 Conda 任意创建和配置不同 Python 版本的双轨隔离的Poetry 虚拟环境? 在 Python 开发中,为不同项目配置独立且适配的虚拟环境至关重要。结合 Conda 和 Poetry 工具,能高效创建不同 Python 版本的 Poetry 虚拟环境,接下来…...
第21节 Node.js 多进程
Node.js本身是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。 每个子进程总是带有三个流对象:child.stdin, child.stdout和child.stderr。他们可能会共享…...
