自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 python 学习 -- 推导式

总的来说,推导式提供了一种简洁高效、可读性好和灵活性强的方法来处理列表数据。它是Python中强大而常用的特性之一,为开发者提供了更好的编码体验和效率。集合推导式与字典推导式的区别在于结果表达式是单一结果,不是key-value形式。字典推导式与前两种推导式的区别。

2023-11-13 21:26:52 59

原创 Junit 单元测试体系持续集成

新增构建后执行步骤:选择Junit test result report,报告匹配格式为**/*.xml。新增构建步骤:从根目录切换到代码目录,执行删除构建(删除已有内容重新构建)Jenkins上已安装JUnit Report 插件。运行JUnit 单元测试节点。部署Java + Maven。Jenkins 服务。

2023-11-13 21:01:51 71

原创 静态扫描体系集成

所以跳过构建测试: mvn clean install -D skipTests -D 是增加参数 skipTests跳过测试。新建构建步骤(切换到代码目录中,执行构建命令,因为代码里已经有静态扫描工具,所以在执行过程中会自动运行静态扫描)添加构建后操作(选择静态分析结果,findbugs,报告文件模式选择默认的**/findbusXml.xml)设置拉取位置(在节点根目录下新建iWeb_2目录来存储拉取的代码)Java 项目的静态代码扫描工具。

2023-11-11 17:19:43 60

原创 JenKins api接口调用

Jenkins 对外暴露的动作交付入口为外部程序提供入口,可以控制Jenkins支持协议 - HttpApi 接口支持用户名、密码认证Jenkins Api支持的典型功能:运行Job、查看任务状态、返回任务编号…等。

2023-11-11 17:15:43 348

原创 JenKins 节点配置

配置好节点后,需要让从节点的主机执行以下命令来链接到主节点;远程工作目录 是节点所使用的机器上的目录;

2023-11-11 17:13:43 200

原创 JenKins 邮件告警设置

邮件通知需要的SMTP服务器,SMTP认证密码等需要登录邮箱,在邮箱设置中获取;通常使用26 或 465 端口;Jenkins Location 管理员邮件地址需要与后续邮件通知配置的地址一致。凭据同样使用email账户和之前获取的SMTP认证密码。Jenkins job 构建结果的提取并通知相关人士。

2023-11-11 17:11:19 36

原创 JenKins maven 插件配置

【代码】JenKins maven 插件配置。

2023-11-11 17:08:57 72

原创 JenKins 参数化配置

同一个项目需要在不同环境下测试。

2023-11-11 17:08:07 214

原创 JenKins 指定节点运行

指定节点运行Job的路径 选择一个Job -> 配置 -> General -> 限制项目的运行节点(Restrict where this project can be run )工作中通常会使用指定节点来运行Job,例如windows来执行ui测试。指定节点运行Job配置。

2023-11-11 17:07:13 505

原创 JenKins 节点环境变量设置

Jenkins在构建的时候,如果使用节点构建可能存在一些个性化环境变量,此时需要在节点中单独管理节点环境变量配置节点工具配置节点环境变量配置节点工具配置节点工具的使用顺序 节点工具 > 全局工具节点工具配置方式 先配置全局工具,后配置节点工具全局工具路径 Dashboard -> 系统管理(Manage Jenkins) -> 全局工具配置(Global Tool Configuration)

2023-11-11 17:05:57 179

原创 JenKins 环境变量设置

Jenkins 环境变量就是通过 env 关键字暴露出来的全局变量,可以在 Jenkins 文件的任何位置使用。用户自定义环境变量新增。

2023-11-11 17:04:54 274

原创 JenKins 凭据管理

凭据管理的作用:管理ssh、邮箱、git等认证信息凭据管理入口Dashboard -> 系统管理(Manage Jenkins) -> Manage Credentials。

2023-11-11 17:03:55 40

原创 JenKins结构配置

当触发构建但未构建完成时,如果有新的构建触发,正常会进入队列,等待上一个构建任务完成后再构建,即串行构建,当勾选并发后,当存在构建任务时出现新构建任务,会并发执行构建;勾选后会设置静默时间,当触发构建后,会先等待够设置的静默时间,之后再执行构建;当当前构建是项目中的一环,而上游环节正在执行构建时,当前环节无法构建;当当前构建是项目中的一环,而下游环节正在执行构建时,当前环节无法构建;2. 保持构建最大数量 即保存最近构建的x个包,之前的包将会被清理;勾选参数化构建后,在构建包时将会使用参数化的内容来构建;

2023-11-11 17:03:15 24

原创 JenKins 安全配置管理

Jenkins拥有良好的扩展性,如远程执行、接口调用等,但需要考虑到网络安全的因素,所以Jenkins将这些功能配置化,按需设置。

2023-11-11 16:56:35 119

原创 JenKins 授权策略配置

插件:Role-based Authorization Strategy。选择Role-Based Strategy。全局角色 Global roles。全局角色 Global roles。项目角色 Item roles。节点角色 Node roles。项目角色 Item roles。节点角色 Node roles。

2023-11-11 16:54:02 16

原创 JenKins安装

war 包启动-通过 jar 包(多用于调试)下载对应的 dmg 或 exe 文件。war 包启动-通过 tomcat。通过 Docker 安装-前提条件。通过 Docker 安装-步骤。初始化 Jenkins 应用。Jenkins 安装。

2023-11-11 16:50:06 16

原创 持续集成体系

自动化测试的时间比较长,占用资源比较多,适当减少集成次数。所有的过程单元都运行在同一管道的上下文中,代码基线相同。当持续集成服务器发现有新的代码时,会创建新的一个管道。为不同的构建测试套件建立不同的 CI 循环周期。单元测试运行时间短,反馈较快,所以可以频繁进行。持续集成到下一步,将集成后到软件交付给用户。所有的过程单元都在这一个管道中运行。每个单元产生的产物也在该管道中有效。将新功能集成到产品主干中。设计、开发、测试、交付…支撑平台- Jenkins。将构建与测试分离以节省时间。

2023-11-11 16:49:31 16

原创 容器学习 --K8S入门

k8s中的最小单元:podpod:是一组业务强相关容器的组合,这些容器间以container模式连接,共享网络和目录,这种模式成为side car模式;side car模式可以方便我们进行故障注入测试,例如:在pod中新增一个容器,然后对新增容器进行断网操作,因为pod中的容器共享网络,所以其他容器的网络也会断掉,来达成网络故障的注入;每个pod中都会存在一个默认的sendbox容器,该容器用k8s命令查看时无法查看到,但是确实存在,其作用是提供基础的网络环境;

2023-10-30 16:39:41 39

原创 容器学习 -- 容器隔离与镜像仓库搭建

两个对讲机(进程)要互相通信就需要调整到相同的频段上(namespace), namespace 用来做容器的。当我们需要将一个镜像推送到私人仓库时,该镜像需要有host和port,所以在推动到私人仓库前,需要先将要推送的镜像打tag,以符合规范;这种方式,其实这种方式中省略了仓库地址和路径的部分,而当我们需要上传镜像时,这部分则不可以省略,namespace 是 linux 中用来隔离进程的手段。第二步: 在本期启动registry搭建一个本地的镜像仓库。第三步:将镜像推动到本地仓库。

2023-10-30 16:34:52 33

原创 容器学习 -- 故障注入原理

当进入容器的网络名称空间后,操作的就不再是宿主机的网络设置,而是容器的网络设置,但除网络之外的其他内容仍然是宿主机的配置,如果想退出容器空间,使用exit退出;当我们进到容器的网络名称空间之后,就可以使用iptables/tc等命令对容器进行故障入住了;找到源信息后切换到进程目录中的ns目录就可以查看到容器中各项空间信息了;-t : 指定进程 后边加进程PID。2.使用命令查看容器源信息。在源信息中查找容器的pid。-n:进入网络名称空间。

2023-10-30 16:31:49 77

原创 Docker 镜像分层设计 & 联合文件系统

在使用dockerfile构建镜像时,docker会进行分层构建,每个镜像层代表了一个Dockerfile中的instruction(指令),每一个指令都会在原有层的基础上添加新的一层,这些镜像层可以被重复使用,包括在不同的镜像中使用,包括在不同的镜像中使用,可以有效的节省存储空间;当我们制作镜像时,就是把基础镜像层和我们的容器层做了合并,然后将容器层指向基础镜像层,这样就行程了一个两层的镜像;

2023-10-30 16:30:00 55

原创 容器学习 -- 镜像制作

使用docker commit方法来制作镜像时,首先要先启动一个容器,然后在启动的容器中部署好所需要的服务和进程等,然后使用 docker commit 容器名 镜像名:版本(可以不带) 来制作出镜像,这样制作出来的镜像就会有容器中之前已经部署好的各种服务了;使用该方法创建镜像时,会将工作目录下的所有文件都发送到docker damon,所以当前目录下存在其他文件,尤其是大文件时会大大降低效率,因此dockerfile文件都会单独保留在某一目录下;设置好dockerfile文件后,执行上述命令来制作镜像;

2023-10-27 15:50:35 43

原创 Linux与SQL基础使用

【代码】Linux与SQL基础使用。

2023-10-26 16:53:52 36

原创 容器学习 --分布式UI环境部署及docker compose使用

Docker-compose 是用于定义和运行多容器的 Docker 应用程序的工具。通过Compose,可以使用 YAML 文件来配置应用程序的服务。Compose 的使用一般分为三步:使用 Dockerfile 定义应用程序的环境,以便可以在任何地方复制它。在 docker-compose.yml 中定义组成应用程序的服务,以便它们可以在隔离的环境中一起运行。运行 docker-compose up,然后 Compose 启动并运行您的整个应用程序。

2023-10-25 22:17:11 131

原创 容器学习 --docker网络模式

用于容器和容器之间通信时使用,--link存在的缺点是:需要将另一个容器的网络设置为环境变量写入,当另一个容器的网络出现变化时,当前容器的环境变量也同样更新;容器直接使用宿主网络,一般用在因为网络原因,只有宿主机可以访问服务,而容器无法访问时,使用该模式,创建容器时使用 --net=host 关键字;使用方法:启动第二个容器时使用关键字 --container:容器名 / 容器id。创建容器时默认的网络模式;

2023-10-25 21:44:45 25

原创 容器学习 -- docker与虚拟机区别及使用场景

左侧为虚拟机,右侧为docker,可以看到docker创建的容器是没有内核的,所有容器都共用宿主机的内核,也就是说docker没有隔离内核,所以在创建容器时privileged默认为Flase,因为如果某个容器的内核挂掉,所有容器就全挂掉了。对内核有要求的场景适合虚拟机,而不适合docker,例如部署测试;

2023-10-25 21:18:22 46

原创 容器学习 -- 服务搭建

原理是将另一个容器的相关信息以环境变量的形式写入到当前容器中,这样当前容器便可以获取到另一个容器的信息;--privileged=true: 给docker开启特权模式,因为需要使用到docker out docker,即在容器中调用容器外的docker;-v 目录挂载:将指定文件挂载到容器目录中,实现容器对文件的使用, -v 宿主文件位置:容器文件位置;-p 端口映射:将宿主机端口和容器端口映射,实现容器和外界相互访问, -p 宿主端口:容器端口;-e:为容器设置环境变量:例如上边的。

2023-10-25 17:44:58 75

原创 容器学习 -- 常用镜像管理命令

当直接使用docker pull image_name时,默认拉取最新版本的镜像,如果需要指定镜像版本,则使用:docker pull image_name:xx.xx。应用场景:当某些场景无法连接外网时,可以将需要的镜像打包后传入该场景,然后解包,使用镜像;该命令用于将镜像推送到镜像仓库中;打包镜像:docker save image_name > xxx.tar;删除镜像时需要注意:镜像需要处于未被使用状态,否则会报错;解包镜像:docker load < xxx.tar;

2023-10-25 16:17:57 31

原创 容器学习-- 常用Docker容器管理命令

该命令会打印当前容器的logs并输出,如果想要持续打印容器日志,可以添加-f关键字:docker logs -f 容器名称 / 容器id。docker exec -it 容器名称 / 容器id bash: 该命令执行后会进入容器并打开bash命令行,可以在命令行输入命令来让容器执行;被kill杀死容器,进入stopped状态被重新start后,会开启新的进程号;被stop停掉的容器,再次被重新start后,进程号不变,还是原来的。docker rm 容器名称 / 容器id;

2023-10-25 15:24:15 44

原创 容器学习 -- Docker安装与配置

Linux 发行版 CentOS 安装方法。

2023-10-25 14:29:25 34

原创 Git 学习 -- 分支管理

冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。冲突场景:多个分支代码合并到一个分支时。多个分支向同一个远端分支推送代码时。

2023-10-24 21:11:00 13

原创 Git 学习 -- IDE使用Git

PyCharm 配置 Git步骤:Settings/Preferences -> Version Control -> GitPyCharm 配置 GitHub步骤:Settings/Preferences -> Version Control -> GitHub 登录方式: 用户名密码方式登录。 Token 方式登录: GitHub 获取 token。 配置 Token 登录。 PyCharm 配置 Gitee安装 Gi

2023-10-24 20:04:40 28

原创 Git 学习 --常用命令

关联后需要先将远程仓库git pull拉取到本地,然后将本地仓库的内容git commit -a -m "comments"提交到最新拉取的仓库中;最后提交本地仓库,因为是首次提交,需要创建分支,所以使用命令git push --set-upstream origin main,完成同步;使用git remote add origin <url>将本地仓库和远程关联;进到要作为仓库的目录下,使用git init初始化仓库;

2023-10-23 22:36:34 22

原创 Git学习 -- 环境配置

Git 是一种分布式的版本控制工具;

2023-10-23 17:25:35 24

原创 python学习 -- 深拷贝与浅拷贝

【代码】python学习 -- 深拷贝与浅拷贝。

2023-10-22 18:48:10 30 1

原创 python 学习 --集合

symmetric_difference() 方法:返回一个新的集合,新集合中的元素为两个集合的交集之外的剩余元素,即其中的元素或属于原集合或属于 other 指定的其他集合,但不能同时属于两者,用法:xxx.symmetric_difference(other)# intersection() 方法:返回一个新的集合,新集合的元素为当前集合和others集合中的共有元素,同样others可以指定多个集合,即生成选中集合的交集,用法: xx.intersection(*other)

2023-10-22 18:38:39 36 1

原创 python学习 -- 字典

可以通过循环遍历字典的键或值,通过键进行搜索和更新数据,通过键值对的添加和删除来动态修改字典的内容。如果key已经存在于字典中,则更新key对应的值为value,如果key不存在于字典中,则创建一个新的键值对:key=value;然而,在Python 3.6及更早版本中,字典是无序的,无法保持键值对的顺序。这意味着当遍历字典或打印字典时,键值对的顺序是不确定的,可能与它们添加到字典中的顺序不同。字典提供了快速查找和访问数据的能力,通过键可以直接定位对应的值,而不需要遍历整个字典。数据做为key使用。

2023-10-22 17:10:57 33 1

原创 python学习 -- 元组和列表区别

对比元组列表定义(1, 2, 3)[1, 2, 3]修改不支持支持添加不支持支持删除不支持支持索引访问支持支持切片支持支持遍历支持支持应用场景固定的,不会被修改的数据不固定的,可以被修改的数据占用内存较小较大。

2023-10-22 15:03:42 264 1

原创 python学习 -- list

算法和数据结构中的应用:列表是一种重要的数据结构,广泛应用于算法和数据结构的实现中。通过遍历,可以逐个处理列表中的元素;由于列表的有序性、可变性和多样化的数据类型,它是一种非常常用和灵活的数据结构,常用于存储和处理一组相关的数据。存储一组相关的数据:列表是一种有序的数据结构,可以用于存储一组相关的数据,如学生的成绩、员工的信息、商品的价格等。使用构造方法定义列表时,参数只能是可迭代的对象,构造方法会将参数中的元素构造成为列表的元素。由于列表的可变特性,可以通过下标的方式,对列表中的元素进行修改。

2023-10-22 14:28:34 210 1

原创 python学习 -- 元组

index() 方法:在元组中查找指定value对应的index,找到一个对应值后即结束,可以指定查找范围,如果没有查找到,则报错,用法: x.index(value, start, end)当使用构造方法定义元组时,参数只能是可迭代的对象,构造方法会将参数中的元素构造成为元组的元素。同字符串一样,元组也可以使用下标形式引用元组中的元素,并且,下标不能超过元组的元素个数,否则会报错:下标越界。# count() 方法: 统计元组中的指定value值的个数,用法 xx.count(value)

2023-10-21 17:23:36 142 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除