jenkins持续部署CD

前言

在测试行业打滚了四年了,还没有接触过cicd的东西,刚好有时间就学习起来了,因此有了这篇学习笔记。简单地介绍本文的内容,这边文章主要记录了本人从环境准备,到sonarqube简单集成,最后达到简单的持续部署的实践过程。

一、安装

使用vmware安装centos7虚拟机,安装过程就省略了。

配置桥接模式:

1.在虚拟机设置-网络适配器,选择桥接模式,并勾选 “复制物理网络连接状态”

2.检查vmware中是否有桥接网络,在vmware的菜单-编辑->虚拟网络编辑器,查看桥接类型的网络是否存在。若不存在,需要点击桥接模式,选择本地物理网卡,点击添加网络即可

安装jenkins:

1.打开虚拟机的终端,切换到root,运行以下命令:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

rpm –import https://pkg.jenkins.io/redhat/jenkins.io.key

yum install jenkins

2.由于使用这种方式安装,jenkins会自动注册成linux服务,可以通过systemctl start jenkins 或systemctl stop jenkins 启动或停止服务

3.确认jenkins服务启动后,打开浏览器localhost:8080 就可以见到老头了。如果在别的机器上无法访问,十有八九是防火墙的问题。使用systemctl stop firewalld 关闭防火墙即可

4.初始登录密码可以在/var/lib/jenkins/secrets/initialAdminPassword中找到。如果不知道这个文件放哪里,可以运行以下命令找到JENKINS_HOME,然后再找到首次密码文件

[root@localhost secrets]# ps -ef |grep jenkins

jenkins 11083 1 1 16:54 ? 00:00:26 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war –logfile=/var/log/jenkins/jenkins.log –webroot=/var/cache/jenkins/war –daemon –httpPort=8080 –debug=5 –handlerCountMax=100 –handlerCountMaxIdle=20

5.选择了安装建议的插件,完成后就可以看到首页了。

创建项目

工具准备

点击系统管理->Global Tool Configuration,配置JDK Git和Maven。

《jenkins持续部署CD》 JDK和GIT的配置
《jenkins持续部署CD》 MAVEN的配置

备注:jdk8和git是事先在服务器中安装完成的。

新建

点击新建按钮,填写项目名称并选择maven项目,进入配置界面,并配置为下图所示如下所示:

《jenkins持续部署CD》 taskcheck的配置界面

说明:
1.在配置ssh方式git的服务器时,需要注意权限问题。我这里是先用组gituser下的xiemb用户创建一个文件夹,然后运行以下命令,设置该目录以及该目录下的文件对于组gituser下的用户都是rwx。

$mkdir TaskCheck.git

$chmod g=rwx TaskCheck.git

$ su root

# setfacl -m d:g:gituser:rwx /newdata/TaskCheck.git

2.配置git用户时,需要事前安装SSH Credentials Plugin插件,并且获取对应用户的公钥。

《jenkins持续部署CD》 用户xiemb的ssh公钥

3.配置SonarQuebe Scanner,需要下载相关组件,并且需要配置好sonar服务器。

3.1jenkins插件下载:Sonargraph Integration Jenkins PluginSonargraph PluginSonarQube Scanner for Jenkins

3.2在sonar官网 下载安装包,解压后,配置$SONAR_HOME/conf/sonar.properties文件,我只是配置了数据库,启动服务 $SONAR_HOME/bin/linux-x86-64/sonar.sh start。

《jenkins持续部署CD》 sonar.properties部分配置

3.3 访问http://ip:9000 就会看到sonar的界面了,点击登陆,输入admin/admin后,进入配置,marketplace,安装Chinese pack。

《jenkins持续部署CD》 安装中文包

3.4到此,sonar的服务端算是搞掂了,然后回到taskcheck作业的配置界面,配置execute sonarqube scanner。PS:如果projectVersion从pom.xml获取变成参数会更佳。

《jenkins持续部署CD》 sonar配置

4..项目构建后部署到tomcat中,需要配置具有部署权限的tomcat user。

《jenkins持续部署CD》 tomcat-user.xml部分配置

最大的坑

由于TaskCheck的架构是Spring+Springmvc+mybatis+mysql,而mybatis的映射文件放在源码某个包中,导致打包时没有把映射文件*.xml放入相应的文件。

《jenkins持续部署CD》 tomcat报错

网上是有不少方法,但这个项目是配置在某个包下,而不是编译路径,导致我花费了不少的时间去尝试,最后的解决方法也很简单。

《jenkins持续部署CD》 在项目的pom.xml配置resource

展示

《jenkins持续部署CD》 项目构建内容
《jenkins持续部署CD》 SonarQube扫描结果
《jenkins持续部署CD》 访问应用程序

写在最后

由于本人也是刚接触jenkins,如有错漏,请指出,我会尽快修改过来。如有疑问,欢迎交流。

    原文作者:benshell2009
    原文地址: https://www.jianshu.com/p/1a20472878ed
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞