美文网首页工具
自动化集成部署

自动化集成部署

作者: BigPeter | 来源:发表于2019-03-19 22:30 被阅读5次

代码持续集成+应用自动化部署

github+jenkins+tomcat, ubuntu 18.04

1. 安装Java

sudo add-apt-repository ppa:webupd8team/java

sudo apt update

sudo apt update

sudo nano /etc/environment,添加

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"

source /etc/environment

2. 安装jenkins

安装jenkins

add the repository key to the system:

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -

append the Debian package repository address to the server's sources.list

sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

run update so that apt will use the new repository

sudo apt update

install Jenkins and its dependencies

sudo apt install jenkins

启用jenkins

设置端口号,打开/etc/sysconfig/jenkins,修改

JENKINS_PORT="9090"

开启jenkins

sudo systemctl start jenkins

配置jenkins

浏览器打开http://your_server_ip_or_domain:9090,按照引导设置。

系统设置

在插件管理中安装Maven Integration插件,Deploy to container插件

系统设置–>Global Tool Configuration

JDK配置为已安装的java

Maven配置为自动安装

3. 安装tomcat

安装tomcat

sudo apt install tomcat8

sudo apt install tomcat8-admin

打开/var/lib/tomcat8/conf/tomcat-users.xml,tomcat-users节点下添加

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<user username="admin" password="password" roles="manager-gui,manager-script" />

这里的user信息要在后面配置jenkins访问tomcat时使用。

<!--

打开/var/lib/tomcat8/conf/server.xml ,Host节点下添加

<Context path="" docBase="war_name" debug="0" reloadable="true"></Context>

配置nginx+tomcat来使用no app name path url(上面代码使用tomcat来做到no app name,jenkins部署的时候http://host/appname是最新的,但http://host无法更新)

https://stackoverflow.com/questions/18936753/nginx-reverse-proxy-for-tomcat

-->

绕了很多弯最后还是将项目部署到ROOT下来确保域名访问,注意这时jenkins中post-build actions中部署到tomcat的context path参数应该为 “/”而不是"/ROOT",不然会报错。

开启tomcat

sudo service tomcat8 start

sudo service tomcat8-admin start

4.集成

配置jenkins访问github repository的权限

生成jenkins的ssh秘钥:

sudo su jenkins

ssh-keygen

cat /var/lib/jenkins/.ssh/id_rsa.pub

复制公钥在剪贴板上。

github->repository->settings->deploy keys->add deploy key->将公钥粘贴上去

cat /var/lib/jenkins/.ssh/id_rsa.pub

复制私钥在剪切板上

jenkins->凭据->系统->全局凭据->添加凭据->选择ssh,将私钥粘贴上去,命名为github-key

现在jenkins可以通过github-key访问github repository

配置jenkins访问tomcat的权限

jenkins->凭据->系统->全局凭据->添加凭据->选择username,将上面配置tomcat时用的username和password写上去,命名为tomcat-key

现在jenkins可以通过tomcat-key访问tomcat

新建Maven任务

jenkins中 新建任务->选择Maven任务

Source Code Management选择git,填写repository的地址,使用github-key

Build中将pom的相对路径写进去

Post-build Actions中将tomcat的信息写进去

注:

nginx反向代理和spring security redirect会冲突,需要解决

jenkins中如果配置maven为默认行为,多次build源代码没变的话可能不执行clean,可能会出现已改名的文件仍然在target中,导致有多个matching bean对应一个qualifying bean,报错,最后容器启动失败。

Refer:

jenkins安装

jenkins生成秘钥

git+maven集成

相关文章

  • Jenkins远程命令执行漏洞

    0x00简介 Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且...

  • vue+Jenkins前端自动化部署

    前言 前端自动化是指前端代码的自动化构建、打包、测试及部署等流程前端自动化通常与持续集成CI/持续部署CD流程相结...

  • docker的典型场景

    自动化的应用程序的封装和部署创建轻量级,私有PaaS环境自动化测试和持续集成/部署部署和缩放网络应用程序,数据库和...

  • [LNMP自动化集成]使用jenkins进行PHP持续集成——自

    持续集成解决问题 统一测试代码发布 代码自动化测试 多机自动化部署 工具选择 集成工具jenkins 官网http...

  • 从0到大论前端持续集成

    (前端架构构建系列 上)提交 部署 上线 实现自动化 持续集成也可以叫做持续部署image.png 产品 -> 需...

  • 2018-05-22

    iOS自动化分发部署:持续化集成方案【Fastlane+蒲公英+Jenkins】 [http://www.qing...

  • hexo搭建静态博客

    jenkins + 码云 + hexo + 服务器,练习jenkins自动化部署 一、 安装lamp集成环境 服务...

  • 自动化集成部署

    代码持续集成+应用自动化部署 github+jenkins+tomcat, ubuntu 18.04 1. 安装J...

  • SpringBoot集成Jenkins自动化本地单体应用部署

    SpringBoot集成Jenkins自动化本地部署 1.准备工作 1.1:前言 首先安装Jenkins之前,li...

  • Ansible工具使用

    1、介绍 Ansible是一个自动化管理IT资源的工具。 功能: 系统环境配置安装软件持续集成:自动化部署热回滚 ...

网友评论

    本文标题:自动化集成部署

    本文链接:https://www.haomeiwen.com/subject/ymlomqtx.html