jenkins 是已经搭建好的,本次主要是后面脚本的事情
公司项目需要部署多台服务器 避免每次打包上传,想弄个自动构建。
步骤如下:
1 jenkins构建完之后会可以执行本机脚本
2 安装expcet
3 写脚本:
#!/usr/bin/expect -f
set password test
set ipOne 10.2.0.1
set userName test
spawn scp /root/.jenkins/workspace/test/product/test.war $userName@$ipOne:/home/work/test.war
set timeout 3
expect {
"yes/no" {send "yes\r";exp_continue}
}
expect "$userName@$ipOne's password:"
set timeout 3
send "$password\r"
set timeout 300
send "exit\r"
expect eof
#ssh
spawn ssh $userName@$ipOne /home/test/t.sh
expect "$userName@$ipOne's password:"
set timeout 3
send "$password\r"
set timeout 300
send "exit\r"
expect eof
这个脚本是在jenkins 构建完之后执行的。
原理是 用expcet 将war上传到 服务器,然后在执行服务器的 shell脚本,这个shell 主要解压 重启tomcat 就行。
碰到的问题
1 第一次写shell脚本,不知道shell 要求那么严格 看了下面的博客才知道写好的
http://blog.chinaunix.net/uid-7589639-id-3018105.html
感谢他
执行
[color=darkred]t.sh[/color] 重启tomcat的时候, 碰到自动重启失败问题, 发现原来是 系统装了低版本的jdk,手动重启会指定 java_home 路径所以没问题。
tomcat 关闭 是通过 catalina.sh stop -force , 有个功能是五秒未关闭 kill掉 不需要写shell去kill,具体可以查阅blog: https://my.oschina.net/abcfy2/blog/192203
新建一个$CATALINA_HOME/bin/setenv.sh文件 并授权 x 即可,
#!/bin/bash
CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID
JAVA_OPTS="--server -Xmx1280m -XX:+UseConcMarkSweepGC"
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
后记:
其实 用jenkins的插件 publish Over SSH 可以解决上述问题
分享到:
相关推荐
在本主题中,我们主要探讨的是"Jenkins构建执行脚本",这涉及到前端(如Vue.js、Angular.js和Ionic)以及后端的自动化构建过程。 首先,让我们了解一下后端执行脚本.txt。在Java、Python、Node.js或任何其他后端...
如何利用Jenkins和CMake实现C/C++项目的自动化构建与部署。首先介绍了Jenkins和CMake的基础知识和功能,然后阐述了在Jenkins中配置CMake构建的具体步骤,包括安装、插件配置、任务创建及Pipeline定义。接着,讲解了...
Java项目的自动化构建、打包和部署是现代开发流程中的重要环节,极大地提高了开发效率和产品质量。在本项目中,我们利用Jenkins、Maven、Gitlab和Tomcat这四个工具实现了一个完整的自动化工作流。 首先,让我们来...
Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码...
c) 构建脚本编写:在Jenkins任务中编写构建脚本,通常包含清理旧的构建产物、安装依赖、执行打包命令等。构建成功后,生成的dist目录下的文件将被压缩打包成tar.gz文件。 d) 部署操作:通过PublishOverSSH插件远程...
1. **项目管理和构建工具**:Maven通过POM(Project Object Model)文件统一项目构建过程,简化依赖管理。 2. **生命周期与阶段**:Maven有clean、default和site三个生命周期,每个生命周期包含多个阶段,如compile...
以上就是 Jenkins 自动化脚本涉及的一些关键知识点,理解并掌握这些将有助于构建和维护高效、可靠的 CI/CD 流程。在实际工作中,根据项目需求,可能还需要学习更多关于 Jenkins 配置、插件和最佳实践的内容。
- 构建一次Jenkins自动化部署项目,并通过查看后台日志来确认项目是否构建成功。 #### 六、深入理解 1. **源码管理** - 使用Git作为源码管理系统可以方便地管理项目源码,并支持多版本控制。 - 需要确保Jenkins...
// 这里执行编译和构建操作,例如Maven的mvn build sh 'mvn clean install' } } stage('Test') { steps { // 执行单元测试和集成测试 sh 'mvn test' } } stage('Deploy to Staging') { when { branch '...
6. 自动构建与自动部署:Web项目的自动构建与自动部署是将源代码通过版本控制系统(如SVN)进行管理,通过构建工具(如Maven)进行自动构建和测试,最后通过持续集成工具(如Jenkins)将构建好的项目自动部署到...
Gradle 使用 Groovy 语言来编写构建脚本,能够自动地管理依赖关系和编译过程。Gradle 广泛地应用于 Android 项目的构建和打包。 Android Studio 介绍 Android Studio 是一个基于 IntelliJ IDEA 的 Android 集成...
### 使用Jenkins进行Unity自动构建 #### Jenkins介绍 Jenkins是一个强大的...此外,利用Jenkins的灵活性,可以根据实际需求定制更多的自动化任务,比如自动化测试、性能测试等,从而进一步提升项目的质量和稳定性。
通过以上步骤,我们不仅实现了 Android 项目的自动化构建与打包,还进一步增强了 Jenkins 的扩展性和灵活性。这不仅可以提高开发效率,还能确保代码质量,从而加速产品的迭代周期。未来还可以考虑集成更多的插件或...
"Linux-一个基于Jenkins的iOS/Android自动构建系统"是这样的一个解决方案,它利用Jenkins这一强大的持续集成工具,实现了跨平台的iOS和Android应用的自动化打包过程。 Jenkins是一款开源的持续集成服务器,支持多种...
2. `swift package`:如果项目使用Swift Package Manager管理依赖,我们可以用这个命令进行依赖的解决和构建。 3. `codesign`:签名是iOS应用发布的关键步骤,这个命令用于对构建的产品进行代码签名。 4. `xcrun ...
Maven 是一款项目管理和构建工具,能够自动化项目的构建、测试和部署过程。在本测试框架中,Maven 负责管理项目的依赖关系、编译和打包。 三、 Jenkins 的安装和配置 Jenkins 是一款开源的自动化服务器,能够自动...
Jenkins是一款广泛使用的开源持续集成工具,用于自动化各种任务,包括构建、测试和部署软件。在Jenkins中,Pipeline是一种强大的特性,它允许用户定义一套自定义的工作流程,以实现持续集成和持续部署(CI/CD)的...
本文主要介绍了基于Jenkins、Gitlab和Docker实现SpringBoot项目自动部署的方法。下面将从Jenkins的安装、配置到自动化构建和部署的整个过程进行详细说明。 Jenkins安装 首先,我们需要使用Docker来安装Jenkins。...
通过以上步骤,我们不仅能够实现Jenkins定时构建和自动部署的功能,还能够在构建和部署完成后及时获得反馈通知,这对于提高软件开发效率和质量具有重要意义。在整个过程中,需要注意的是,所有配置和脚本都需要根据...
### Jenkins自动化构建详解 #### 一、Jenkins权限配置与...通过以上详细的步骤和解释,我们可以看到Jenkins不仅是一款强大的自动化构建工具,还提供了灵活的权限管理机制以及丰富的扩展功能,能够满足复杂项目的需求。