【DevOps】Jenkins持续集成流水线(上)

10 篇文章 0 订阅
5 篇文章 0 订阅

目录

前言

一、启动Jenkins

1、前置条件

2、插件安装

3、配置 

二、持续集成 - CI(GitLab+Maven+Nexus)

1、先创建一个任务

 2、配置凭据

3、继续配置剩余配置项

4、构建任务

5、自动触发构建(CI)

三、集成自动化部署(Linux)

1、配置SSH

2、配置构建任务

3、构建任务


前言

 

一、启动Jenkins

1、前置条件

Wins10上已经通过Jenkins.msi预安装了Jenkins,同时如果要启动Jenkins有以下两种方法:

第一种:在Jenkins安装目录下执行这条命令,该模式以后台服务的方式启动Jenkins。该办法好处是在于每次可以指定不同http端口(特别针对缺省8080被占用),不好的地方是每次重启都要在命令中显式指定端口。

java -jar jenkins.war --ajp13Port=-1 --httpPort=8082

第二种:在Jenkins安装目录下把Jenkins.xml文件的属性httpPort改为其他未被占用的端口,并必须使用以下命令启动Jenkins。此时如果直接使用命令java -jar jenkins.war,你会发现启动的jenkins服务还是用的默认端口8080。

#启动jenkins服务
net start jenkins

2、插件安装

第一步:初始登录,需要从/secrets/initialAdminPassword中获取初始密码
第二步:进入安装插件界面
第三步:基本插件正在安装

 

部分失败,但是后面可以重新下载
创建第一个用户

2.2 如果在安装期间部分插件安装失败,可以通过两种办法重新安装。

第一种:可以通过更改源,然后重新安装。

http://updates.jenkins-ci.org/update-center.json

替换为清华的镜像源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

第二种:在网上下载Deploy Plugin插件,下载文件为deploy.hpi

 

3、配置 

3.1 为了实现自动化构建,首先安装以下插件:

- Deploy to container(自动化部署插件)

- Maven Integration(Maven集成插件)

- Publish Over SSH(SSH远程连接插件)

- GitLab(该插件允许Gitlab触发Jenkins构建并把构建结果展示在Gitlab UI上)

- Gitlab Hook(该插件能够使用web hook去触发在gitlab项目上进行SCM polling)

- Gitlab Authentication(Gitlab的权限校验插件)

3.2 在全局工具配置中设置Maven、JDK、git、GitLab

Maven + JDK:

maven setting + JDK

Maven + Git:

maven home
git run path setup

GitLab:

配置GitLab
在GitLab中的【User Setting】中生成access token
添加access token
配置完后,测试连通性是否正常

 

3.3 设置邮件通知(SMTP协议)

126邮箱相关服务器服务器信息如下,具体其他如QQ邮箱,foxmail等请咨询相应客服。

126免费邮客户端设置POP3和SMTP地址

第一步
第二步
第三步

二、持续集成 - CI(GitLab+Maven+Nexus)

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建来验证,从而尽早地发现集成错误。因此,整个持续集成应该包含三步:编译、发布、自动化测试。

1、先创建一个任务

创建Job
设置通用项
标题

 2、配置凭据

首先,在git bash中找到对应的公钥和私钥。

justyman@DESKTOP-7GNOQPJ MINGW64 ~/IdeaProjects/callcenter (master)
$ git config user.name
root

justyman@DESKTOP-7GNOQPJ MINGW64 ~/IdeaProjects/callcenter (master)
$ git config user.email
justyman@126.com

justyman@DESKTOP-7GNOQPJ MINGW64 ~
$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1ycsffweAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASSBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBvFUlscXERQK4hhHH9YcAxgr6c8rDrhCdiXJZwsmME/aPF5qTOF09YiIvozFlFGNpFm1cIO7wdgCnlZNEj5MdLx2aboiz7FZDafYb3KtNTPS0zI8GwwFVrO6nLMI6uYIyEKNlACv/3yWpZ7XRlJv0+SgIQbXzJyp/FTViilu71JRUqaJ justyman@126.com

justyman@DESKTOP-7GNOQPJ MINGW64 ~
$ cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA0qWxiOW0t+KFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
sssssssssssssssssssssssssssssssssssssssssssssssssssssswQ==
-----END RSA PRIVATE KEY-----

 接着,把公钥保存到GitLab的SSH Keys中。

标题

然后,把私钥保存到Jenkins的凭据中,类型选择“SSH Username with private key”,Username 填写git bash设置的用户名。

标题

 

标题

3、继续配置剩余配置项

当成功添加完凭据后,在【Source Code Management】项中就可以选择刚才的凭据。

另外,针对下图的【Version】,可以通过以下命令查询,即得到版本号为11.7.6,但是只需要填两位,即11.7。

[root@localhost ~]# rpm -qa|grep gitlab
gitlab-ce-11.7.6-ce.0.el7.x86_64

4、构建任务

从上图可以看到,构建任务执行成功并生成对应的jar包到Jenkins的工作空间D:\Tools\Jenkins\workspace下面。如果是需要构建成功后把包上传到Nexus进行制品管理的话,请参考我的另外一篇文章:Nexus制品库安装使用指南

如果需要实现参数化构建(如基于Tag进行构建),请参考我的另外一篇文章:Jenkins任务基于Tag进行构建

5、自动触发构建(CI)

该部分我会单独另外一篇文章专门介绍【这里留个随意门】。

三、集成自动化部署(Linux)

整个相对完整的持续构建环境(即CI)基本搭建完后,后续就要搭建持续部署。这里的目的是把上面构建的包自动上传到目的服务器进行部署。

1、配置SSH

前提: 已经安装了【publish over ssh】插件

第一步:把Jenkins服务器的公钥保存到目标服务器的目标登录用户的.ssh/authorized_keys文件中;(具体在linux中如何生成RSA 公私钥这里不再详述)

第二步:把Jenkins服务器的私钥保存到以下地方,并同时配置目标服务器IP、登录用户即目标文件夹。

2、配置构建任务

在上面配置过的构建任务中配置构建步骤。

第一步:在【Pre Steps】选择maven及设置对应的Goals为‘clean package’

第二步:在【Post-build Actions】中选择‘Send build artifacts over SSH’ 

第三步:配置以下信息:

 Name:选择刚才新配置的服务器- SIT_Server;

Source files:指定要上传的文件,这里指定里以jar结尾的包。其中**/指的是Jenkins的工作目录(本机Jenkins的工作目录为D:\Tools\Jenkins\workspace)

Remove prefix:指去掉source files处填写的jar包所在的工作Jenkins目录之后(即D:\Tools\Jenkins\workspace)和*.jar包之前的那几层文件夹(即target文件夹)。否则,到时传到SIT服务器上的文件为带target文件夹的*.jar包。

3、构建任务

 从下图构建日志可以看到,对应构建完的callcenter-1.0.0.jar都被上传到SIT服务器上的对应目录/tmp/onboard/中。

另外,当构建成功后,会收到系统发出来的类似以下的一封邮件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值