一、持续集成与持续交付
持续集成与持续交付是敏捷开发中的一种术语:https://dwz.cn/9S3L1oAY
持续集成Continuous Integration,简称CI;
开发人员将会频繁地向提交代码,并需要经过编译和自动化测试进行代码验证,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警;
持续交付Continuous Deployment,简称CD;
通过自动化的构建、测试和部署循环来快速交付高质量的产品;
Jenkins是目前最流行的一款持续集成及自动化部署工具;
官网: https://jenkins.io
二、Jenkins运行环境
Java语言开发的一款开源的持续集成和持续交付工具;
Github源码:https://github.com/jenkinsci/jenkins
国内镜像源码:https://gitee.com/mirrors/jenkins
1、Jenkins运行环境准备
1、安装JDK
2、安装Git :yum install git -y
3、安装Maven 配置maven 环境变量
4、安装Tomcat
部署jenkins
1、快速运行 java -jar jenkins.war (建议部署到Tomcat下运行)
2、部署到tomcat,把jenkins.war部署到 ./webapps 目录下
第一次启动会创建一个admin的用户,密码会生成到在下面画红框的文件里面;
看到如下日志,表明jenkins启动成功;
3、开放8080端口的防火墙:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重新加载防火墙配置:firewall-cmd --reload
查询已经开放的端口: firewall-cmd --list-port
4、访问:http://127.0.0.1:9200/jenkins/
可以选择“安装推荐的插件”,也可以有选择地去安装插件,这个插件下载很慢,而且很容易安装失败;
插件安装失败也没有关系,因为需要的插件我们可以在后续再进行安装;
打×的插件是由于网络原因导致的安装失败,后面再重新安装即可;
安装插件时受到网络状况的影响有可能会失败,可以多试几次,直到成功;
2、Jenkins修改默认路径
jenkins 安装后默认在用户目录下创建一个 .jenkins 文件夹,存储安装、配置、插件等信息,比如我的目录是 /root/.jenkins;
插件安装位置:/root/.jenkins/plugins/
由于安装完jenkins后,默认的主目录在用户目录下/root/.jenkins,如果使用默认路径,会导致出现空间不够用的情况,建议修改一下默认位置:
1、修改/usr/local/apache-tomcat-9.0.31/bin/catalina.sh
在第二行添加 export JENKINS_HOME=“/opt/.jenkins”
2、将原有工作空间移动到新路径下面,如果不移动之前生成的文件,则会重新进行安装配置;mv /root/.jenkins /opt/jenkins‘
三、Jenkins插件
Jenkins镜像站网络连接状态检查:http://mirrors.jenkins-ci.org/status.html
插件的更新站点建议改为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
同时将 .jenkins/updates/default.json
的文件更换清华源:
查找default.json该文件所在位置:
find / -name "default.json"`
执行文件内容的替换:
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /root/.jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /root/.jenkins/updates/default.json
插件:https://plugins.jenkins.io 搜索进行下载,上传安装;
配置Tomcat Manager
Jenkins到时候要自动部署到tomcat,则需要配置tomcat用户,通过tomcat配置的用户名和密码去上传war包到tomcat上,在Tomcat的/conf/tomcat-users.xml
文件中的<tomcat-users>
标签里面需添加如下内容
<!-- 修改配置文件,配置tomcat的管理用户 -->
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<user username="tomcat" password="123456" roles="manager-gui,manager-status,manager-script,manager-jmx"/>
说明:
manager-gui — Access to the HTML interface.
manager-status — Access to the "Server Status" page only.
manager-script — Access to the tools-friendly plain text interface that is described in this document, and to the "Server Status" page.
manager-jmx — Access to JMX proxy interface and to the "Server Status" page.
说明文档:
{tomcat_home}/webapps/docs/manager-howto.html
修改webapps/manager/META-INF/context.xml文
件:
<!-- 将Valve标签的内容注释掉,保存退出即可 -->
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
四、Jenkins自动构建
手动触发:
手动去点击自动构建的连接,Jenkins 使用天气状况来表示构建。(实际项目中一般使用较多)
定时触发:
通过配置定时任务触发构建,具体参考视频演示;
自动触发:
每次提交代码自动触发构建(实际项目中一般不使用)