Jenkins + Git + Maven + Tomcat集成环境搭建(2)


Jenkins + Git + Maven + Tomcat集成环境搭建


 

Jenkins + Git + Maven + Tomcat集成环境搭建


 

这些插件主要涉及到:ssh、Git、GitLab、Maven,已经后面我们需要提到的“deploy”插件。管理员可以根据需要选择性的安装需要的plugins。

安装完之后,重启jenkins。

5、 系统配置

在jenkins的“系统管理”-->“系统设置”页面,来设定master全局的配置,其中重要的2个选项位JDK和Maven,我们需要告知master它们安装在何处。

1)JDK:


Jenkins + Git + Maven + Tomcat集成环境搭建

2)Maven:


Jenkins + Git + Maven + Tomcat集成环境搭建

6、Build与发布

我们接下来创建一个job,这个job将从GitLab上下载源码到本地,然后使用Maven build和打包,并发布到tomcat上。这个过程正是我们常用的。 

1)“Deploy to container plugin”:这个插件我们在上述已经看到,如果还没有安装,请首先安装;它主要用来将“war”文件“deploy/redeploy”到web容器中,比如tomcat、jboss等。有了这个插件,我们可以在maven build之后,立即将war发布到tomcat中,而不需要手动操作或者写shell脚本来copy文件。

首先,我们需要准备一个tomcat,用来部署我们的web application,过程略。此tomcat的端口为8080,部署在master宿主机器上。

因为Deploy插件是通过外部(http)方式“deploy/redeploy”,所以需要在tomcat上进行用户授权。编辑tomcat-users.xml,增加如下配置:

Java代码 

<tomcat-users> 

    <role rolename="manager"/> 

    <role rolename="admin"/> 

    <user username="deployer" password="deployer" roles="standard,manager,admin,manager-script" /> 

</tomcat-users> 

增加一个“deployer”用户,我们可以通过tomcat manager机制来部署war。参见稍后讲解。

2)新建Item:

授权与验证:master需要ssh访问slave机器(部署、启动,发送文件等),以及从git上下载代码,所以我们在开始之前,需要指定这些。“jenkins”-->“Credentials”-->“Add Credentials”添加一个SSH验证规则:


Jenkins + Git + Maven + Tomcat集成环境搭建


 

我们创建一个Global范围的SSH无密码登陆,这个可以在此后master与slave通讯有用。前提是master与slave已经交换了public key。“From the Jenkins master ~/.ssh”即使用master宿主机器“~/.ssh”目录下的公私钥。

然后,我们“新建”:


Jenkins + Git + Maven + Tomcat集成环境搭建

因为我们是基于Maven构建项目,所以选择第二项,如果你已经创建过类似的item,可以选择“复制已有的item”,输入item的名字,那么它相应的配置就会导入,就像模板一样,我们无需每次都重复填写配置表单。

在创建item时,我们还需要指定,这个item的job运行结果最终保存在哪个“节点”上,例如web项目最终发布在哪个server上,在jenkins中,master和slaver都称为“节点”。


Jenkins + Git + Maven + Tomcat集成环境搭建


 

指定Git库的地址,并配置master与GitLab通讯的SSH验证机制:


Jenkins + Git + Maven + Tomcat集成环境搭建

因为master、slave均需要使用Git从远端下载代码,在这个模块中,“Credentials”选择刚才我们添加的“root”,这样jenkins使用Git下载代码时将会把SSH的秘钥发过去。此外,我们还需要在GitLab中目标项目中增加“deploy key”:


Jenkins + Git + Maven + Tomcat集成环境搭建


 

我们将master、slave两个机器的public key添加到GitLab项目的“deploy key”中。如果你的item无法正确访问Git,比如“验证被拒绝”,你应该尝试通过shell登录到master、slave机器上,使用git命令尝试下载项目代码,可能因为jenkins无法跳过ssh的“授权确认”导致。

当代码从Git下载之后,启动Maven build阶段:


Jenkins + Git + Maven + Tomcat集成环境搭建


 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1263c6e59c25a868d7c3f6d685843471.html