- 博客(43)
- 收藏
- 关注
原创 Jenkins+Gitlab webhook触发自动构建项目
效果:只要Gitlab仓库代码更新,Jenkins自动拉取代码,自动完成构建任务。无需手动点击“立即构建”或者"参数化构建"需求场景:1、项目代码的更新迭代较多,运维很有可能不在场,每次点击比较麻烦 2、更新的可能不是代码,可能是一些资源(比如:静态文件等) Jenkins版本:2.303.1 Gitlab版本:12.6.3。
2025-03-20 22:07:22
765
原创 Jenkins构建CI/CD
Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交给Jenkins,Jenkins通过给定的代码地址URL(代码仓库地址),将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到Tomcat容器中。是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建的一些定时执行的任务。
2025-03-20 22:06:43
898
原创 gitlab管理代码
GitLab 是一个综合性的 DevOps 平台,主要用于代码存储和项目管理。它集成了 Git 仓库管理、持续集成和持续交付(CI/CD)、项目管理、安全性等多种功能。
2025-03-20 22:05:26
604
原创 脚本学习shell
Shell 也是一种程序设计语言,它有变量,关键字,各种控制语句,有自己的语法结构,利用shell程序设计语 言可以编写功能很强、代码简短的程序。shell是外壳的意思,就是系统的外壳,我们可以通过shell的命令来控制和操作操作系统,比如linux中的shell命令就包括ls、cd、pwd等等,总结来说shell就是一个命令解释器,他通过接收用户输入的shell命令来启动、停止程序的运行或者对计算机进行控制。
2025-03-20 22:03:46
806
原创 cart_tools
action_str = input("请输入对名片的操作:1: 修改/ 2: 删除/ 0: 返回上级菜单")print("成功添加 %s 的名片" % card_dict["name"])" % find_dict["name"])find_name = input("请输入要搜索的姓名:")print("姓名\t\t电话\t\tQQ\t\t邮箱")print("姓名\t\t电话\t\tQQ\t\t邮箱")print("没有找到 %s" % find_name)print("3. 查询名片")
2025-03-20 21:57:24
338
原创 cart_input
return: 如果用户输入了内容,就返回内容,否则返回字典中原有的值。# 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果。# 3. 如果用户没有输入内容,返回 `字典中原有的值`:param tip_message: 输入的提示文字。:param dict_value: 字典中原有的值。# 1. 提示用户输入内容。
2025-03-20 21:56:44
141
原创 函数进阶版
必须保证带有默认值的缺省参数在参数列表末尾所以,以下定义是错误的!有时可能需要一个函数能够处理的参数个数是不确定的,这个时候,就可以使用多值参数python中有两种多值参数:参数名前增加一个可以接收元组参数名前增加两个可以接收字典一般在给多值参数命名时,习惯使用以下两个名字*args—— 存放元组参数,前面有一个**kwargs—— 存放字典参数,前面有两个args是arguments的缩写,有变量的含义kw是keyword的缩写,kwargs可以记忆键值对参数print(num)
2025-03-20 21:53:10
704
原创 变量进阶(理解)
为了保证所有的函数都能够正确使用到全局变量,应该将全局变量定义在其他函数的上方a = 10b = 20demo()c = 30注意由于全局变量 c,是在调用函数之后,才定义的,在执行函数时,变量还没有定义,所以程序会报错!代码结构示意图如下。
2025-03-20 21:51:37
934
原创 综合应用 —— 名片管理系统
在文件的顶部增加一个列表变量# 所有名片记录的列表注意所有名片相关操作,都需要使用这个列表,所以应该定义在程序的顶部程序刚运行时,没有数据,所以是空列表。
2025-03-20 21:49:35
801
原创 高级变量类型
List(列表) 是Python中使用最频繁的数据类型,在其他语言中通常叫做数组专门用于存储一串 信息列表用[]定义,数据之间使用分隔列表的索引从0开始索引就是数据在列表中的位置编号,索引又可以被称为下标注意:从列表中取值时,如果超出索引范围,程序会报错Tuple(元组)与列表类似,不同之处在于元组的元素不能修改元组表示多个元素组成的序列元组在Python开发中,有特定的应用场景用于存储一串 信息数据之间使用分隔元组用()定义元组的索引从0开始索引就是数据在元组中的位置编号。
2025-03-20 21:43:58
766
原创 函数基础0
定义函数的格式如下:def 函数名():函数封装的代码……def是英文define的缩写函数名称应该能够表达函数封装代码的功能,方便后续的调用函数名称的命名应该符合标识符的命名规则可以由字母下划线和数字组成不能以数字开头不能与关键字重名。
2025-03-20 21:42:52
790
原创 判断(if)语句
如果条件满足,才能做某件事情,如果条件不满足,就做另外一件事情,或者什么也不做正是因为有了判断,才使得程序世界丰富多彩,充满变化!判断语句又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支。
2025-03-20 21:39:59
746
原创 11-CICD测试篇
Jenkins JNLP (Java Network Launch Protocol) 容器通常用于在Kubernetes或其他容器编排系统中运行的Jenkins环境中。连接到Jenkins主服务器:JNLP容器允许Jenkins代理(agent)连接到Jenkins主服务器(controller)。这种连接方式适用于动态代理节点,例如在Kubernetes集群中动态创建的容器。执行构建任务:一旦JNLP容器连接到Jenkins主服务器,它就可以接收和执行构建任务。
2024-12-03 19:55:30
701
原创 11-配置篇
管道语法 (jenkins.io)Pipeline 是 Jenkins 中的一套自动化流程框架,代表一系列工作流或活动流,作用是允许将单个Jenkins节点或者多个节点的任务组合连接起来,从而实现单个任务难以完成的复杂构建工作。Pipeline 的任务是通过代码来实现的,可以通过git来进行版本化控制,团队成员可以编辑迭代Pipeline 代码无论 Jenkins master 是在计划内或者非计划内重启,pipeline 任务都不会收到影响。
2024-12-03 19:55:00
973
原创 10-DevOp安装篇
-e JENKINS_HTTP_PORT_NUMBER=8080 -p 8080:8080 -p 50000:50000 容器对外暴露的端口其中 8080 端口为 Jenkins Web 界面的端口,50000 是 jnlp 使用的端口,后期 Jenkins Slave 需要使用 50000 端口和 Jenkins 主节点通信。#>>> 拉去jenkins镜像并启动容器(宿主机应提前安装docker)#>>> 客户端生工公钥(如果已经生成过,直接使用;
2024-12-03 19:54:19
640
原创 09-RBAC
安全始终是Kubernetes发展过程中的一个关键领域。从本质上来说,Kubernetes可被看作一个多用户共享资源的资源管理系统,这里的资源主要是各种Kubernetes里的各类资源对象,比如 Pod、Service、Deployment等。只有通过认证的用户才能通过Kubernetes的API Server查询、创建及维护相应的资源对象,理解这一点很关键。Kubernetes里的用户有两类:我们开发的运行在Pod里的应用;
2024-12-03 19:53:37
1048
原创 08-Kubernetes持久化文件存储
Kubernetes持久化文件存储简介:容器内部存储的生命周期是短暂的,会随着容器环境的销毁而销毁,具有不稳定性。如果多个容器希望共享同一份存储,则仅仅依赖容器本身是很难实现的。在Kubernetes系统中,将对容器应用所需的存储资源抽象为存储卷(Volume)概念来解决这些问题。Volume是与Pod绑定的(独立于容器)与Pod具有相同生命周期的资源对象。
2024-12-03 19:52:50
1039
原创 07Kubernetes配置管理ConfigMap
应用部署的一个最佳实践是将应用所需的配置信息与程序分离,这样可以使应用程序被更好地复用,通过不同的配置也能实现更灵活的功能。将应用打包为容器镜像后,可以通过环境变量或者外挂文件的方式在创建容器时进行配置注入,但在大规模容器集群的环境中,对多个容器进行不同的配置将变得非常复杂。二、configMap简介(缩写:cm)ConfigMap是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时,Pods可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap将你的环境配置信息和。
2024-12-03 19:51:18
796
原创 06-Kubernetes容器编排adm部署
Pod是Kubernetes中最重要的基本概念之一;每个Pod都有一个特殊的被称为“根容器”的Pause容器。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod都还包含一个或多个紧密相关的用户业务容器。为什么Kubernetes会设计出一个全新的Pod概念并且Pod有这样特殊的组成结构?为多进程之间的协作提供一个抽象模型,使用Pod作为基本的调度、复制等管理工作的最小单位,让多个应用进程能一起有效地调度和伸缩。Pod里的多个业务容器共享Pause容器的IP。
2024-12-03 19:49:44
747
原创 05-kubernetes 二进制高可用安装部署
⚠️: 如果ping不通且telnet没有出现 ^],则认为VIP不可以,不可在继续往下执行,需要排查keepalived的问题,比如防火墙和selinux,haproxy和keepalived的状态,监听端口等。# ⚠️:注意,如果不是高可用集群,192.168.107.66:8443改为master01的地址,8443改为apiserver的端口,默认是6443。#>>> 每个节点都必须要访问kubernetes的service:443和kube-dns的service:53。
2024-12-03 19:49:02
732
原创 04-HA自动扩缩容
垂直扩展(Vertical Scaling),根据负载调整单个 Pod 的资源请求和限制,如 CPU 和内存。:水平扩展(Horizontal Scaling),根据负载增加或减少 Pod 的副本数量。Horizontal Pod Autoscaler (HPA) 是 Kubernetes 中的一项功能,它能够根据 CPU 使用率或其他应用程序指标自动扩展或缩减应用程序的副本数量。HPA 有助于确保应用程序在负载增加时能够自动扩展以处理更多请求,在负载减少时则自动缩减以节省资源。
2024-12-03 19:48:10
582
原创 03-kubernetes服务发布
每个Pod都会获取到它自己的IP地址,但是这些IP地址不总是稳定和可依赖的,这样就会导致一个问题:在Kubernetes集群中,如果一组Pod(比如后端的Pod)为其他Pod(比如前端的Pod提供服务,那么如果它们之间使用Pod的IP地址进行通信,在Pod重建后,将无法再进行连接。于是Kubernetes引用了Service这样一种抽象概念:逻辑上的一组Pod,即一种可以访问Pod的策略。
2024-12-03 19:47:01
812
原创 02-Kubernetes基础资源
无状态服务是指每个请求都是独立的,服务不保留客户端的状态信息。无状态:服务不存储任何客户端的状态信息,每次请求都是独立的。易于扩展:由于每个实例都不需要单独挂载存储,横向扩展(增加实例)非常简单。高可用性:任何一个实例的故障不会影响整体服务的运行,只需通过负载均衡将请求分配到健康的实例上即可。简单管理:因为无状态服务不依赖于特定的实例,可以随时销毁和重新创建实例,维护和部署相对简单。无状态服务的典型示例包括Web服务器nginx、Tomcat、PHP等。Deployment。
2024-12-03 19:45:23
611
原创 01Kubernetes入门概念
Kubernetes也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。容器是打包和运行应用程序的好方式。在生产环境中, 你需要管理运行着应用程序的容器,并确保服务不会下线。例如,如果一个容器发生故障,则你需要启动另一个容器。如果此行为交由给系统处理,是不是会更容易一些?这就是 Kubernetes 要来做的事情!
2024-12-03 19:43:30
812
原创 nginx04
HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。近些年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来互联网发展的趋势。HTTPS是基于HTTP的安全版。保密性:通过SSL/TLS协议和加密算法。
2024-10-20 16:08:15
945
原创 nginx03
所有的 Nginx变量在 Nginx 配置文件中引用时都须带上 $ 前缀在 Nginx 配置中,变量只能存放一种类型的值,有且也只存在一种类型,那就是字符串类型nginx可以使用变量简化配置与提高配置的灵活性,所有的变量值都可以通过这种方式引用:$变量名nginx中的变量分为两种,自定义变量与内置预定义变量1、声明变量可以在sever,http,location等标签中使用set命令(非唯一)声明变量,语法如下set $变量名 变量值nginx 中的变量必须都以$开头。
2024-10-20 16:07:45
924
原创 nginx02
Nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块的支持,日志格式通过log_format命令来定义,日志对于统计和排错是非常有利的,下面总结了nginx日志相关的配置 包括access_logerror_log。# 设置访问日志access_log path 样式;2、作用域可以应用access_log指令的作用域分别有httpserverlocation。也就是说,在这几个作用域外使用该指令,Nginx会报错。该例子指定日志的写入路径为。
2024-10-20 16:07:02
946
原创 nginx01
HTTP协议是超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。TCP/IP协议的层次结构是一个分层的体系结构,通常被分为四个层次,从高到低分别是:应用层(Application Layer)、传输层(Transport Layer)、网络层(Network Layer)和链路层(Link Layer)。应用层。
2024-10-20 16:06:28
659
原创 docker01
官网:开发人员通过Docker将他们的想法变为现实将软件打包为标准化单元,用于开发、装运和部署容器是一个标准的软件单元,它封装代码及其所有依赖项,以便应用程序从一个计算环境快速可靠地运行到另一个环境。Docker容器镜像是一个轻量级、独立的可执行软件包,包括运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。容器镜像在运行时会变成容器,在Docker容器的情况下,镜像在Docker引擎上运行时会成为容器。
2024-10-20 16:04:27
1096
原创 elk01
1、⽣产环境出现问题后,需要查看各种⽇志进⾏分析排错2、日常运维工作,日志文件分散,运维工作繁琐。可以实现日志聚合3、开发⼈员没有登陆服务器的权限。开发人员可以通过web界面查看日志4、面对大量的访问日志,可以统计出各项指标,比如PV UVElasticSearch是一个开源分布式搜索服务。只搜索和分析日志特点:分布式,配置简洁,自动发现,索引自动分片,索引副本机制,多数据源等。它提供了一个分布式多用户能力的全文搜索引擎。
2024-10-20 16:03:48
847
原创 tomcat
├── bin # 包含了Tomcat服务器的可执行文件,如启动和关闭脚本、管理脚本等。├── BUILDING.txt # 包含了关于如何构建Tomcat服务器的说明文档。├── `conf # 包含了Tomcat服务器的配置文件,如服务器配置、日志配置、Web应用程序配置等。``├── CONTRIBUTING.md # 包含了关于如何向Tomcat项目贡献代码的说明文档。├── lib # 包含了Tomcat服务器运行所需的Java类库文件。
2024-10-20 15:59:17
370
原创 redis02
为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。
2024-10-20 15:58:42
991
原创 redis01
redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库,它支持多种数据结构,如字符串(strings)、散列(hashes)、列表注:域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地持久化技术只是解决了Redis服务故障之后,快速数据恢复的问题。宕机和数据恢复的过程中整个业务系统来说,还是有损失的,并没有根本上提升可用性问题,而且持久化技术对于Redis服务性能来说是有损的。我们需要的是保障。
2024-10-20 15:58:00
826
原创 rabbitmq
什么是消息队列MQ 全称为Message Queue, 消息队列。是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信。当下主流的消息中间件有RabbitMQ、Kafka、ActiveMQ、RocketMQ等Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目。Kafka主要特点是追求高吞吐量,一开始的目的就是用于日志收集和传输。
2024-10-20 15:56:54
1704
原创 负载均衡02
Keepalived是一种用于实现高可用性(High Availability)的软件,主要通过VRRP(Virtual Router Redundancy Protocol)协议来实现IP地址的热备份。它可以在两台或多台服务器之间进行故障切换,确保当一台服务器出现故障时,其他服务器能够接管其服务,从而提高系统的可用性和稳定性。VRRP(Virtual Router Redundancy Protocol)即虚拟路由冗余协议,是一种网络协议,主要目的是提高网络的可靠性和稳定性。工作原理。
2024-10-20 15:55:19
697
原创 负载均衡01
LVS(Linux Virtual Server)是一个开源的负载均衡器,用于实现网络服务的负载均衡和高可用性。它运行在 Linux 操作系统上,并利用操作系统的网络功能和内核支持来实现负载均衡。LVS 提供了一种低成本、高性能的负载均衡解决方案。高可用性:LVS 可以实现网络服务的高可用性,通过将负载分配到多个后端服务器上,并且提供故障转移和冗余机制,以防止单点故障,并确保服务的连续性。工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。
2024-10-20 15:54:26
623
原创 企业级iptalbes防火墙
应用层(http、ssh、ftp、https) 表示层 会话层 传输层(TCP、UDP) ip+port 网络层(icmp) 数据链路层 物理层 Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开源的,基于包过滤(对OSI模型的四层或者是四层以下进行过滤)的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。主要针对网络访问。
2024-08-31 11:04:37
1390
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人