自动化部署

jenkins执行shell脚本,找不到环境变量

人盡茶涼 提交于 2020-04-11 12:10:59
问题如摘要描述;问题原因分析参考 jenkins找不到环境变量 解决方案:在需要执行的脚本前加上 /bin/bash -l 使当前登陆用户以登陆模式执行脚本文件 案例:/bin/bash -l /opt/tomcat/tomcat1601/restart1601.sh restart1601.sh中的一个坑 启动tomcat需要先找到tomcat pid 杀掉进程再启动,刚开始写了一个脚本在本机执行可以,但是在jenkins中执行就直接失败了 原因是杀进程的时候把grep自己也杀掉了,然后ssh断开连接 可用的脚本如下 restart1601.sh #!/bin/bash #echo "stop tomcat1601..." rm -rf /opt/tomcat/tomcat1601/webapps/sinterface ps -ef|grep tomcat1601|grep "java"|awk '{print "kill -9 " $2}' |sh #echo "kill tomcat1601" /bin/bash /opt/tomcat/tomcat1601/bin/startup.sh #echo "start up tomcat1601..." 补充问题: 当发布后 拷贝新的war包到tomcat/webapps下 重启tomcat之前需要将原来解压的项目文件夹删除

linux 远程自动化部署

青春壹個敷衍的年華 提交于 2019-12-10 08:56:44
#!/usr/bin/expect -f set timeout 60 set f [open ./ip r] while { [gets $f line ] >=0 } { set ip [lindex $line 0] #echo "开始启动$ip的服务" spawn scp push.war jeeker@$ip:/home/jeeker/ expect "*assword*" send "pwd\r" spawn ssh jeeker@$ip expect "*assword*" send "pwd\r" expect "]*" send "sudo bash \r" expect "*assword*" send "pwd\r" expect "]*" send "./publish.sh \r" expect "准备启动" expect "*" } expect eof 一、概述   我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。   Expect是一个免费的 编程 工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年

【Jenkins教程一】基于Linux的Jenkins安装

女生的网名这么多〃 提交于 2019-12-03 23:06:28
前言 Jenkins 是一种基于Java的持续集成工具,主要用于自动,持续地构建/测试软件或者监控一些定时执行的任务。下面介绍基于Linux环境 Jenkins的安装以及相关配置 安装环境: Linux-3.10.0-693.2.2.el7.x86_64 Jenkins-2.87 Tomcat-8.0.39 Maven-3.5.2 JDK-1.8.0_111 安装方式 rpm安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum install jenkins rpm -ql jenkins 启动命令 sudo service jenkins start|stop|restart war安装 传送门 tomcat+war安装 直接下载war包上传到tomcat的【webapps】目录下 启动tomcat即可。 war+jetty自启动 Jenkins有自带Jetty服务器,直接输入以下命令即可 java -jar jenkins.war Jenkins相关配置 启动地址 如果按【rpm】或

自动化部署(一),准备工作

谁说胖子不能爱 提交于 2019-11-29 08:47:50
centos下安装JDK8的方法 今天在自己的centos机子上安装jdk,发现以前的教程都比较旧了,很多东西都过时了。今天把自己安装的感受写一下。 判断是否安装 首先,我们得判断机子上是不是安装了jdk,好多人推荐使用java -version命令。我的计算机上使用java -version命令,内容如下: java version "1.7.0_45" OpenJDK Runtime Environment (rhel-2.4.3.2.el6_4-i386 u45-b15) OpenJDK Server VM (build 24.45-b08, mixed mode) 这看起来好像我的机子中已经安装了jdk,但是当我使用javac时,会提示: -bash: javac: command not found 这说明第一个java命令,不是安装的jdk中的java命令,而是在$PATH的所有路径下有一个可以执行的java文件,说明jdk还是没有正确安装。这个要特别注意。 安装jdk 去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 中下载jdk的安装文件。由于我的Linux是64位的,因此我下载 jdk-8u111-linux-x64.tar.gz 文件

利用Jenkins实现JavaWeb项目的自动化部署

半城伤御伤魂 提交于 2019-11-29 02:50:59
修改代码,打包,上传,重启... 大把的时间花费在这些重复无味的工作上。笔者与当前主流的价值观保持一致:我们应该把时间花费在更有意义的事情上。我们可以尝试借助一些工具,让这些重复机械的工作交给计算机去完成,这也是我们做软件开发的核心思想。 借用 Jenkins 持续集成重复工作是一个很不错的选择。 研究 Jenkins 的最终目的是解决公司中 Java Web 项目的自动化部署,公司项目本身是由几个服务,一个 API 项目以及不同客户端组,希望部署到不同服务器。初次使用 Jenkins 应用于现有的项目,一般规律是这样的:第一次总是困难的,困难的事情结合困难的事情就叫难上加难,我们需要先把问题化小。笔者最终将问题暂时转化为如下问题: 基于 Maven 构建的 Java Web 项目 ,使用 Jenkins 部署到另一台机器上。 部署准备 在本地测试通过,可以通过 maven 构建的项目 项目提交至远程 git 服务器 Java Web 项目的运行服务器上具有项目所需要的运行环境 Supervisor 进程管理工具 笔者已将此次工作的项目提交至 Github(项目名称是 testweb, 项目地址 ),并提前整理了两篇工具安装及使用的教程: 进程管理工具Supervisor的安装及使用 , Jenkins的安装及部署 。 Jenkins 配置 Jenkins 插件依赖 Jenkins