云原生pdf

核心提示一、Jenkins 安装1、背景Jenkins,之前叫做 Hudson,由 SUN 公司启动,2010 年 oracle 收购 SUN 导致 hudson 商标归 oracle 保留,hudson 的主要贡献者基于 hudson 更名为 j

I .詹金斯装置

1.背景

詹金斯,原名哈德逊,由太阳公司创办。2010年甲骨文收购SUN导致甲骨文保留hudson商标。哈德森的主要贡献者在哈德森的基础上改名为詹金斯,并不断更新。在很长一段时间里,lenkins和Hudson继续作为两个独立的项目,每个项目都将对方视为自己的分支。目前Hudson已经停止开发,最新版本发布于2016年,而Jenkins的社区和开发异常活跃。Jenkins是目前市场上使用最广泛的CICD工具。

Jenkins是一个基于Java开发的持续集成工具。

Jenkins是一个持续集成工具,持续集成是它的核心功能。在核心功能的基础上,可以扩展实现强大的CD功能。

2.特征

开源免费

易于安装

多平台支持

主从架构

提供web可视化配置管理页面

简单安装

插件资源丰富。

3.官网安装文件地址

https://www.jenkins.io/zh/doc/book/installing/

大家最好看官网文档进行安装。好的开源软件一般都是官网文档写得好的,否则很难火起来。

这里主要演示的是由docker安装Jenkins。没有安装docker或者不知道如何安装docker的同学可以先看我的文章《https://lanson Li . blog . csdn . net/article/details/124202180[云原生| docker]轻松学原理|架构|安装|加速》。安装Docker后,请继续阅读。

4.开始安装

注意:

Jenkinsci/jenkins没有blueocean插件,要自己安装。

詹金斯/蓝海:是的。

#建立自己的镜像运行时设置时区#如果是别人的镜像,docker hub,UTC;在容器运行时,-v/etc/local time:/etc/local time:ro

docker run -u root -d -p 8080:8080 -p 50000:50000 -v Jenkins-data:/var/Jenkins _ home -v/etc/local time:/etc/local time:ro -v/var/run/docker . sock:/var/run/docker . sock -restart = always jenkinsci/blue ocean

#/var/run/Docker.sock表示基于Unix的套接字,Docker守护程序通过该套接字进行监听。这种映射允许jenkinsci/blueocean容器与Docker守护进程通信,如果jenkinsci/blueocean容器需要实例化其他Docker容器,这是必要的。如果运行声明式管道,其语法包括docker对于代理部分;例如,代理{docker {...}}此选项是必需的。

#如果您的jenkins安装插件无法安装。用这面镜子【registry.cn-qingdao.aliyuncs.com/lfy/Jenkins:外挂-蓝海】。默认的访问帐户/密码是[管理员/管理员]

5.正在安装

6.安装完成。

7.页面访问

8.通过以下命令找到密码

方法1:

方法二:

9.安装默认的推荐插件并配置用户。

选择推荐的插件选项。

只需等待自动安装插件完成。

配置用户,点击右下角的保存。

完整安装

二、詹金斯实战

1.为测试准备一个git项目。

我们以gitee为例。github可能太慢了。安装gitee插件需要Idea。或者你可以自己熟悉手动命令。

简单解释一下,其实在这里用gitee,github或者gitcode都可以实现。学生可以选择使用哪一个。

步骤:

Idea创建了一个Spring Boot项目

VCS-创建git存储库

Gitee创建一个仓库,上传到本地仓库。

Idea向gitee提交内容

开发项目的基本功能,在项目中创建一个jenkinsfile文件。

创建一个名为devops-java-demo的管道项目,使用项目自己的管道。

詹金斯的工作流程

首先,定义一个管道项目,并指定项目的git位置。

管道启动

1.先转到git位置自动拉代码。

2.解析拉代码中的Jenkinsfile文件。

3.根据Jenkinsfile指定的流水线开始处理项目。

管道配置文件我写的不是很好。请参考官方文件,非常详细。

官网流水线文档:流水线

詹金斯,重要的是

1.jenkins的主目录/var/jenkins_home已经安装在我们的docker之外。

/var/lib/docker/volumes/Jenkins-data/_ data

2、WORKSPACE =/var/Jenkins _ home/WORKSPACE/Java-devo PS-demo

每个管道项目占据一个文件夹位置。

BUILD _ NUMBER = 5;当前构建是多少次?

WORKSPACE _ TMP =/var/Jenkins _ home/WORKSPACE/Java-devo PS-demo @ TMP

JOB _ URL = http://192 . 168 . 88 . 163:8080/JOB/Java-devo PS-demo/

3.如果没有常用的环境,jenkins在环境中配置了很多操作。

4、詹金斯网址:

http://192.168.88.163:8080/

小案例测试:

//写管道的脚本管道{ //所有的CICD进程都需要在这里定义。//任何代理可用时都可以执行。//定义一些环境信息。//定义管道的处理流程阶段{//管道的所有阶段。// 1、编译阶段{ steps {//Everything to do echo " compile ... "}} // 2、测试阶段{步骤{ //一切做回显“测试...”}//3、包阶段{步骤{ //所有要做的事情都回显“包...”}} // 4,部署阶段{步骤{ ///

2.远程构建触发器

预期效果:远程github代码提交,jenkins管道自动触发构造。

实施流程:

1.确保可以远程访问jenkins所在的主机。

可以在云平台上配置一个公共IP,让gitee远程访问。

2.jenkins中的远程触发需要权限,所以我们应该使用用户进行授权。

3.配置gitee/github,webhook就会触发。

测试成功。

发生前两个错误是因为我的地址没有用API令牌添加。下图显示了生成令牌的设置。

#远程构建即使配置了github的webhook,默认也是403。我们应该使用用户进行授权。

1.创建用户。

2.一定要登录激活一次。

3.生成apitoken

http://cheshi:11b 713938 DD 63 ea 6 DD 54 b 322 c 362642 a5c @ 192 . 168 . 88 . 163:8080/job/simple-Java-maven-app/build token = lanson Li

远程触发器:

Jenkins _ URL/job/simple-Java-maven-app/build token = token _ name只管问

以后直接提交推送代码就会触发自动构建,就不需要手动触发了。

测试官方推荐的gitcode是否也支持这个功能。

我用了阿里云的服务器,重新打造了詹金斯。下面是我的测试结果,其实可以用。

1.复制上面的测试代码,提交给gitcode。如果不知道如何使用gitcode,可以看看官方教程。

2.配置webhook以触发

有人讲apitoken的生成过程,我这里就略过了,因为都写的很详细,就不占篇幅再写了。

配置原理还是一样的。只需在这里写下网址,勾选下面的触发事件,点击提交即可生效。

3.见证测试结果。

多次失败后,我一度怀疑gitcode是否能用。结果是我多虑了,肯定能用。失败是因为我复制的网址有问题,所以大家测试的时候一定要注意细节。

 
友情链接
鄂ICP备19019357号-22