Jenkins+tomcat自动化部署+nginx+apidoc文档生成
集成自动化部署
Jenkins安装配置
安装相关环境
-
运行下面的命令配置Jenkins环境
# 下载添加key wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - # 添加Jenkins的apt仓库源 sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' # 更新仓库源 sudo apt-get update # 安装jenkins sudo apt-get install jenkins
在国内可能会访问不了上面的镜像源,可以改用清华源
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/debian-stable/jenkins_2.303.2_all.deb sudo dpkg -i jenkins_2.303.2_all.deb
如果安装失败,出现
dpkg: dependency problems prevent configuration of jenkins:
依次执行下面的命令
sudo apt-get install --reinstall python sudo apt-get -f install sudo dpkg -i jenkins_2.303.2_all.deb
-
安装 jdk8/jdk11
sudo apt install openjdk-11-jdk
-
安装maven
sudo apt install maven
-
安装git
sudo apt install git
-
安装tomcat,nginx
启动Jenkins
编辑 /etc/default/jenkins
文件,由于8080被占用,要换端口
# port for HTTP connector (default 8080; disable with -1)
HTTP_PORT=9090
如果有防火墙,检查9090端口是否打开
sudo systemctl daemon-reload
sudo systemctl restart jenkins
sudo systemctl status jenkins
配置Jenkins
查看/var/lib/jenkins/secrets/initialAdminPassword
内部的初始Jenkins密码
访问your_ip:9090
或者localhost:9090
进入管理界面
选择推荐的插件,会开启自动下载
等待插件下载完成,接着可选创建账户,或者是管理员账户继续,接着Jenkins url选择默认即可
访问http://localhost:9090/pluginManager/installed
管理插件
添加GitHub plugin
,Maven Integration plugin
,Deploy to container Plugin
几款插件
新建项目
配置github hook凭据
-
首先生成本地ssh key
ssh-keygen -t rsa -C "your_email@youremail.com"
-
进入github的仓库,创建deploy keys
在Key中填写
cat ~/.ssh/id_rsa.pub
的结果,类似下面的字符串 -
访问personal access token生成新的token,赋予repo与admin:repo权限,保存生成的token
-
通过http://localhost:9090/configure进入Jenkins配置管理界面,并找到Github Server
添加凭据,选中secret text, 并在Secret中填入上一步生成的token
-
选中上一步生成的凭据,并测试连接
添加ssh凭据
访问添加凭据的地址
新建ssh private key配置
下面的Private key填写执行cat ~/.ssh/id_rsa
的结果
添加tomcat配置
在添加凭据的地方选中Username with Password,添加tomcat的用户名密码
项目配置
-
选中构建maven项目
-
配置源码管理用于拉取构建代码
-
配置触发器,用于代码更新自动构建
-
配置构建环境
-
构建前先构建文档,或者在Post Steps设置构建完成后构建文档
-
Build一般跳过测试
clean install -D maven.test.skip=true
初始时需要配置maven的位置,shell执行mvn -v即可获得maven_home
访问此网址配置
-
构建后自动部署,war包名字需要与maven配置的一致
如果构建后操作没有Deploy war/ear to a container需要[配置Jenkins必要插件]
这里补充一点Context Path为空的话是默认的war包名字做目录
配置Github webhook
找到需要自动部署的github项目,找到webhook填入Payload URL即可,默认的URL如下
http://ip:port/jenkins/github-webhook/
配置apidoc
安装apidoc
# 安装nodejs与npm并更新
sudo apt install nodejs
sudo apt install npm
# 更新nodejs,这个很重要不然运行不了apidoc
sudo npm install n -g
sudo n stable
# 使用镜像npm,更新list
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list
# 全局安装apidoc
sudo npm install apidoc -g
配置nginx
-
找到nginx配置文件目录,一般位于
/etc/nginx/site-enabled/
-
查看default文件,查看站点root根目录的位置
-
跳转到根目录,新建文件夹
doc
这个与上面的配置的apidoc的生成目录一致即可
sudo mkdir doc # 确保拥有写入权限 sudo chmod 777 doc/ -R
-
尝试一个push,测试生成结果