前言
在测试行业打滚了四年了,还没有接触过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。
备注:jdk8和git是事先在服务器中安装完成的。
新建
点击新建按钮,填写项目名称并选择maven项目,进入配置界面,并配置为下图所示如下所示:
说明:
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插件,并且获取对应用户的公钥。
3.配置SonarQuebe Scanner,需要下载相关组件,并且需要配置好sonar服务器。
3.1jenkins插件下载:Sonargraph Integration Jenkins Plugin、Sonargraph Plugin和SonarQube Scanner for Jenkins。
3.2在sonar官网 下载安装包,解压后,配置$SONAR_HOME/conf/sonar.properties文件,我只是配置了数据库,启动服务 $SONAR_HOME/bin/linux-x86-64/sonar.sh start。
3.3 访问http://ip:9000 就会看到sonar的界面了,点击登陆,输入admin/admin后,进入配置,marketplace,安装Chinese pack。
3.4到此,sonar的服务端算是搞掂了,然后回到taskcheck作业的配置界面,配置execute sonarqube scanner。PS:如果projectVersion从pom.xml获取变成参数会更佳。
4..项目构建后部署到tomcat中,需要配置具有部署权限的tomcat user。
最大的坑
由于TaskCheck的架构是Spring+Springmvc+mybatis+mysql,而mybatis的映射文件放在源码某个包中,导致打包时没有把映射文件*.xml放入相应的文件。
网上是有不少方法,但这个项目是配置在某个包下,而不是编译路径,导致我花费了不少的时间去尝试,最后的解决方法也很简单。
展示
写在最后
由于本人也是刚接触jenkins,如有错漏,请指出,我会尽快修改过来。如有疑问,欢迎交流。