美文网首页
jenkins持续部署CD

jenkins持续部署CD

作者: benshell2009 | 来源:发表于2017-11-14 10:58 被阅读0次

    前言

    在测试行业打滚了四年了,还没有接触过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。

    JDK和GIT的配置 MAVEN的配置

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

    新建

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

    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插件,并且获取对应用户的公钥。

    用户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。

    sonar.properties部分配置

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

    安装中文包

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

    sonar配置

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

    tomcat-user.xml部分配置

    最大的坑

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

    tomcat报错

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

    在项目的pom.xml配置resource

    展示

    项目构建内容 SonarQube扫描结果 访问应用程序

    写在最后

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

    相关文章

      网友评论

          本文标题:jenkins持续部署CD

          本文链接:https://www.haomeiwen.com/subject/gpvzmxtx.html