编写以下脚本:

-------------------------------------------------------------------------------------
#!/bin/sh
name=web-$(date +%F)-$(($RANDOM+10000))
host=$1
job_name=$2
cd /var/lib/jenkins/workspace/${job_name} && tar zcf /opt/${name}.tar.gz ./*
ssh ${host} "cd /usr/share/nginx && mkdir ${name}"
scp -r /opt/${name}.tar.gz ${host}:/usr/share/nginx/${name}
ssh ${host} "cd /usr/share/nginx/${name} && tar xf ${name}.tar.gz && rm -f ${name}.tar.gz"
ssh ${host} "cd /usr/share/nginx && rm -rf html && ln -s /usr/share/nginx/${name} /usr/share/nginx/html" ssh ${host} "nginx -s reload"
-------------------------------------------------------------------------------------
使用脚本方法:
sh -x jenkins.sh 10.0.0.66 my-freestyle-job 将 /var/lib/jenkins/workspace/my-freestyle-job 目录内容打包 传送到需要发布的服务nginx器中.部署完成后 重启服务器.
发布结果:
[root@node2 nginx]# ll
total 8
lrwxrwxrwx 1 root root 37 Dec 29 22:29 html -> /usr/share/nginx/web-2019-12-29-42021
drwxr-xr-x 2 root root 143 Dec 29 21:43 modules
-rw-r--r-- 1 root root 1731 Dec 29 22:29 web-2019-12-29-42021
-rw-r--r-- 1 root root 1731 Dec 29 22:19 web-2019-12-29-41061 #这样做的好处就是每次网站都会被备份,每次都会指向web根目录. 发布过程影响较小
#使用这种方法回退也非常简单,如: 我们发现 web-2019-12-29-42021 该版本有问题,回退方式就是:
rm -f /usr/share/nginx/web-2019-12-29-42021
ln -s /usr/share/nginx/web-2019-12-29-41061 /usr/share/nginx/html
#!/bin/sh
name=web-$(date +%F)-$(($RANDOM+10000))
host=$1
job_name=$2
cd /var/lib/jenkins/workspace/${job_name} && tar zcf /opt/${name}.tar.gz ./*
ssh ${host} "cd /usr/share/nginx && mkdir ${name}"
scp -r /opt/${name}.tar.gz ${host}:/usr/share/nginx/${name}
ssh ${host} "cd /usr/share/nginx/${name} && tar xf ${name}.tar.gz && rm -f ${name}.tar.gz"
ssh ${host} "cd /usr/share/nginx && rm -rf html && ln -s /usr/share/nginx/${name} /usr/share/nginx/html"
ssh ${host} "nginx -s reload"

Jenkins通过脚本进行自动发布的更多相关文章

  1. Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

    公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密:另一个称为密钥(private key),只有拥有者才能看到,用于解密. 在使用jenkins ...

  2. jenkins+maven+svn+npm自动发布部署实践

    一.系统版本centos7.6 二.根据jenkins官方安装方法yum安装jenkins 1.进入jenkins官网下载页面https://jenkins.io/download/,选择Red Ha ...

  3. Jenkins + Gradle + pgyer + Android自动发布

    Jenkins配置与必要的环境配置 一:Jenkins服务端(Linux系统为例说明): 1.jdk安装与配置 2.SDK安装与配置 3.安装配置对应的gradle版本(建议gradle版本在4.1版 ...

  4. jenkins+gitlab+webhook实现自动发布

    实验环境   Jenkins:192.168.1.15 Gitlab:192.168.1.14   一.Jenkins配置   1:安装gitlab hook plugin插件 2:新建一个job 3 ...

  5. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一

    首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...

  6. Jenkins集成Docker镜像实现自动发布

    1. 思路&流程 Jenkins集成Docker镜像实现自动发布与Jenkins发布mavne项目思路一样总体流程 为:Jenkins 拉去远端源码 -- gitl实现应用打包 -- jenk ...

  7. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  8. gitlab+jenkins自动发布Python包到私有仓储

    背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...

  9. 2、jenkins+svn自动发布和回滚

    Jenkins配置回滚思路: 目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作.后续实现 以下配置可以为每个项目备份构建文件到本地指定路径 ...

  10. Jenkins+tomcat自动发布的热部署/重启及遇到的坑解决办法

    一.背景 公司的项目一直手动maven打包.上传服务器.关闭/开启tomcat,整个流程下来耗时耗力,虽然可以将所有流程通过shell脚本一次性解决,但如果可以通过idea的Jenkins插件一键自动 ...

随机推荐

  1. Java多线程之Callable和Future

    Java多线程之Callable和Future 本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. Callable接口类似于Runnable,从名字就可以看出来 ...

  2. 【5】Spring IoC介绍

    有部分 Java 开发者对 IoC(Inversion Of Control)和 DI(Dependency Injection)的概念有些混淆,认为二者是对等的. IoC 其实有两种方式,一种就是 ...

  3. CentOS 安装openssh-6.XX

    安装openssh-6.0p1 1.安装依赖包 有遇到 报ZLIB有问题的,要安装以下包 rpm -ivh zlib-devel-1.2.3-3.* rpm -ivh libsepol-devel-1 ...

  4. Pytorch DistributedDataParallel(DDP)教程二:快速入门实践篇

    一.简要回顾DDP 在上一篇文章中,简单介绍了Pytorch分布式训练的一些基础原理和基本概念.简要回顾如下: 1,DDP采用Ring-All-Reduce架构,其核心思想为:所有的GPU设备安排在一 ...

  5. AI极速批量换脸!Roop-unleashed下载介绍,可直播

    要说AI换脸领域,最开始火的项目就是Roop了,Roop-unleashed作为Roop的嫡系分支,不仅继承了前者的强大基因,更是在功能上实现了重大突破与升级 核心特性 1.可以进行高精度的图片.视频 ...

  6. 真正的HTAP对用户和开发者意味着什么?

    简介: Gartner 2016 年首次提出 HTAP(Hybrid Transaction / Analytical Processing,混合事务分析处理)并给出明确的定义:即同时支持 OLTP ...

  7. 开源微服务运行时 Dapr 发布 1.0 版本

    简介: Dapr 是 2019 年 10 月开源的分布式运行时.早在 Dapr 开源初期,阿里云就开始参与 Dapr 社区建设和代码开发,目前已有两位 Dapr 成员,是 Dapr 项目中除微软之外代 ...

  8. [Go] godoc 打开本地文档, windows 同样适用

    godoc 提供了在无网环境下 浏览官方文档的便利. 示例: $ go get golang.org/x/tools/cmd/godoc $ godoc -http=localhost:6060 Li ...

  9. [FAQ] docker-compose MySQL8 ERROR: Different lower_case_table_names settings for server

    MySQL8 启动时 lower_case_table_names 的设置和初始值不一致时,会报 ERROR. 在 docker-compose 中,只需要在命令中加入命令选项即可,并配置一个新的 v ...

  10. VisualStudio 使用 FastTunnel 辅助搭建远程调试环境

    有时候需要远程调试一些用户问题,期望能使用本机的 Visual Studio 开发环境,调试远程的用户的设备上的应用.这时会遇到的一个问题是如何让本机的 Visual Studio 可以连接上远程的用 ...