Jenkins+tomcat自动化部署+nginx+apidoc文档生成
- 集成自动化部署
- Jenkins安装配置
- 安装相关环境
- 启动Jenkins
- 配置Jenkins
- 新建项目
- 配置github hook凭据
- 添加ssh凭据
- 添加tomcat配置
- 项目配置
- 配置Github webhook
- 配置apidoc
- 安装apidoc
- 配置nginx
集成自动化部署
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,测试生成结果