
持续集成,Continuous Integration,简称CI,是一种软件开发实践,在实践中指只要代码有变更,就自动运行构建和测试。
Jenkins 是一个开源的、提供友好操作界面的持续集成 CI 工具。
部署流程。
用户提交代码到 Git 仓库;
Jenkins 服务器从指定 Git 仓库拉去代码,使用 maven 编译打包。
Jenkins 服务器 ssh 连接应用服务器,将打包好的 war 或者 jar 包传送到应用服务器指定位置,例如 tomcat/webapps。
资源准备并传输到 linux 虚拟机。
// linux 虚拟机新建文件夹cd /mkdir jenkinsoft// mac 传输文件到虚拟机。maven、tomcat、git、jenkins 的 linux 版本需要自己下载;plugins 是 jenkins 的插件,包含 git、Deploy to container等。scp /Users/ly/Downloads/持续集成/apache-maven-3.6.3-bin.tar.gz root@10.36.144.110:/jenkinsoftscp /Users/ly/Downloads/持续集成/apache-tomcat-8.5.57.tar.gz root@10.36.144.110:/jenkinsoftscp /Users/ly/Downloads/持续集成/git-2.10.0.tar.gz root@10.36.144.110:/jenkinsoftscp /Users/ly/Downloads/持续集成/jenkins.war root@10.36.144.110:/jenkinsoftscp /Users/ly/Downloads/持续集成/plugins.zip root@10.36.144.110:/jenkinsoft
安装 Jenkins。
解压 tomcat 并将 jenkens.war 放入 tomcat/webapps。
修改 tomcat 的8081ip、8015shutdown、8019AJP。
cd jenkinsoft// 解压tar -zxf apache-tomcat-8.5.57.tar.gz// 移动mv jenkins.war apache-tomcat-8.5.57/webapps// 修改端口号等vi apache-tomcat-8.5.57/conf/server.xml// 启动 tomcatapache-tomcat-8.5.57/bin/startup.sh// 关闭 tomcat// apache-tomcat-8.5.57/bin/shutdown.sh// 停止 docker 的 tomcat,免得干扰docker stop $(docker ps -aq)// 浏览器访问, ip地址改成自己的。ip ahttp://10.36.144.110:8081/jenkins// 运行浏览器页面显示的命令拿到密码cat /root/.jenkins/secrets/initialAdminPassword// 浏览器里粘贴密码 然后 continue// 输入用户名 admin,密码。// 关闭tomcat 重新打开,刷新浏览器就进入 jenkins 管理界面// 不要选择安装插件
安装 Git。https://mirrors.edge.kernel.org/pub/software/scm/git/。
// 解压tar -zxf git-2.10.0.tar.gz// 安装 Git 所需要的组件yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-develyum install -y gcc perl-ExtUtils-MakeMaker//删除系统的 Git,这行命令一定要执行yum remove gitcd git-2.10.0// 编译make prefix=/usr/local/git all// 安装make prefix=/usr/local/git install// 配置环境变量vim /etc/profileexport GIT=/usr/local/gitexport PATH=$JAVA_HOME/bin:$GIT/bin:$PATHsource /etc/profile// 测试git --version
安装 Maven。
tar -zxf apache-maven-3.6.3-bin.tar.gz// 配置环境变量vim /etc/profileexport MAVEN_HOME=/jenkinsoft/apache-maven-3.6.3export PATH=$JAVA_HOME/bin:$GIT/bin:$MAVEN_HOME/bin:$PATHsource /etc/profile// 测试mvn --version// 配置阿里云私服vi apache-maven-3.6.3/conf/settings.xml<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url></mirror>
Manage Jenkins -> 全局安全配置,取消认证。

Manage Jenkins -> 插件管理,安装 git 插件。由于网络或版本原因,安装不成功。可以直接拖安装好的插件。

// 当前 yum 是否安装了 zip/unzipyum list | grep zip/unzip// 安装zip 根据提示输入 y 允许安装yum install zip// 安装unzip 根据提示输入y允许安装yum install unzip// 解压unzip plugins.zip// 删除已有的插件rm -rf /root/.jenkins/plugins// 移动mv plugins /root/.jenkins
关闭 tomcat 服务,重新打开。多试几次。然后刷新 jenkins 管理界面。全局工具配置里出现 git 代表成功。

创建 java 测试项目并 gitee 管理。
配置 git 路径。添加 gitee 的用户名和密码。


配置 Maven 构建命令。

准备部署服务器。配置 tomcat 用户。
vi apache-tomcat-8.5.57/conf/tomcat-users.xml// 用户名和密码都是 tomcat,可更改<role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>// 注释或删除 Value 标签vi apache-tomcat-8.5.57/webapps/manager/META-INF/context.xml
Jenkins 项目点击构建。

查找构建的 war 包地址。


配置项目远程发布。


Jenkins 项目再次构建。
浏览器中输入 http://10.36.144.110:8081/demo1/ 测试是否构建成功。
配置自动构建项目。
配置 jenkins 的构建 token,地址就是http://10.36.144.110:8081/jenkins/job/jenkins_demo1/build?token=123
更改代码并上传gitee,浏览器中输入地址运行。等构建完成后刷新 http://10.36.144.110:8081/demo1/ 测试。

在 gitee 项目仓库点击最右侧管理,点击 webhooks。由于现在是本地服务器地址,所以要进行内网穿透。
使用 natapp 设置内网穿透。
登录申请一个免费的隧道,记住 token。


下载 natapp mac客户端。双击,在系统偏好设置 -> 安全性与隐私里放行。
chmod 777 natapp// token 为 natapp 隧道 token。./natapp -authtoken=token
自动弹出该页面,记住域名,并且不要关闭该页面。

webhooks 里配置。

设置Jenkins跨域。

更改代码并上传gitee,等构建完成后刷新 http://10.36.144.110:8081/demo1/ 测试。




