Jenkins+tomcat自动化部署+nginx+apidoc文档生成

  • 集成自动化部署
  • Jenkins安装配置
  • 安装相关环境
  • 启动Jenkins
  • 配置Jenkins
  • 新建项目
  • 配置github hook凭据
  • 添加ssh凭据
  • 添加tomcat配置
  • 项目配置
  • 配置Github webhook
  • 配置apidoc
  • 安装apidoc
  • 配置nginx


集成自动化部署

Jenkins安装配置

安装相关环境

  1. 运行下面的命令配置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

  1. 安装 jdk8/jdk11
sudo apt install openjdk-11-jdk
  1. 安装maven
sudo apt install maven
  1. 安装git
sudo apt install git
  1. 安装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 api token 有效期 jenkins api 文档_jenkins

等待插件下载完成,接着可选创建账户,或者是管理员账户继续,接着Jenkins url选择默认即可

访问http://localhost:9090/pluginManager/installed管理插件

添加GitHub plugin,Maven Integration plugin,Deploy to container Plugin几款插件

新建项目

配置github hook凭据

  1. 首先生成本地ssh key
ssh-keygen -t rsa -C "your_email@youremail.com"

jenkins api token 有效期 jenkins api 文档_自动化_02

  1. 进入github的仓库,创建deploy keys

Key中填写 cat ~/.ssh/id_rsa.pub的结果,类似下面的字符串

jenkins api token 有效期 jenkins api 文档_Jenkins_03

  1. 访问personal access token生成新的token,赋予repoadmin:repo权限,保存生成的token
  2. 通过http://localhost:9090/configure进入Jenkins配置管理界面,并找到Github Server
    添加凭据,选中secret text, 并在Secret中填入上一步生成的token
  3. 选中上一步生成的凭据,并测试连接

添加ssh凭据

访问添加凭据的地址

jenkins api token 有效期 jenkins api 文档_github_04

新建ssh private key配置

jenkins api token 有效期 jenkins api 文档_tomcat_05

下面的Private key填写执行cat ~/.ssh/id_rsa的结果

jenkins api token 有效期 jenkins api 文档_github_06

添加tomcat配置

在添加凭据的地方选中Username with Password,添加tomcat的用户名密码

jenkins api token 有效期 jenkins api 文档_自动化_07

项目配置

  1. 选中构建maven项目
  2. 配置源码管理用于拉取构建代码
  3. 配置触发器,用于代码更新自动构建
  4. 配置构建环境
  5. 构建前先构建文档,或者在Post Steps设置构建完成后构建文档
  6. Build一般跳过测试
clean install -D maven.test.skip=true

jenkins api token 有效期 jenkins api 文档_Jenkins_08

初始时需要配置maven的位置,shell执行mvn -v即可获得maven_home

访问此网址配置

jenkins api token 有效期 jenkins api 文档_tomcat_09

  1. 构建后自动部署,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

  1. 找到nginx配置文件目录,一般位于 /etc/nginx/site-enabled/
  2. 查看default文件,查看站点root根目录的位置
  3. 跳转到根目录,新建文件夹doc

这个与上面的配置的apidoc的生成目录一致即可

sudo mkdir doc
# 确保拥有写入权限
sudo chmod 777 doc/ -R
  1. 尝试一个push,测试生成结果