基于ssh和wsadmin的远程websphere部署
来源:互联网 发布:数据库培训中心 编辑:程序博客网 时间:2024/05/24 05:59
在jenkins的自动化部署过程中,由于一些实际的情况导致websphere deployment的插件不好用,具体体现在:
1. 需要配置烦人的ssl证书,而且如果目标机器的证书和机器名不一致,会失败
2.会占用大量的自动化部署机器的资源,它本质是在部署机器上消耗资源来部署到目标机器上的
为了解决这个问题:
采用远程部署文件传送和远程部署的模式,基于的技术基础是ssh, wsadmin这两个技术(有人说wsadmin不好用,没有有效的输出,其实是误解,已经足够完善)
实现的步骤为:
1. 使用 SSH publisher的功能,对应的插件为:Publish Over SSH, 将本地的部署文件传送到目标机器的指定路径下
2. 使用 ssh remote execute command功能呢, 对应的插件为: SSH plugin, 在远程的websphere目标机器上执行 wsadmin的客户端脚本程序
对应的wsadmin执行脚本见附件 deploy.jacl
调用方法为:
uninstall 步骤->
sh /{your websphere install path}/AppServer/bin/wsadmin.sh -conntype SOAP uninstall {ear path} {application name} {ear file name} {target cell} {target node} {target server} {binding virtual host} -host {host} -port {port} -user {user} -passsword {password} -lang jacl -javaoption -f deploy.jacl
install 步骤->
sh /{your websphere install path}/AppServer/bin/wsadmin.sh -conntype SOAP install {ear path} {application name} {ear file name} {target cell} {target node} {target server} {binding virtual host} -host {host} -port {port} -user {user} -passsword {password} -lang jacl -javaoption -f deploy.jacl
deploy.jacl:
# @author Michiel Rook <info@touchdownconsulting.nl>
proc sleepDelay { secs } {
set tstart [clock format [clock seconds] -format "%H:%M:%S"]
package require java
set temp [catch {
java::call java.lang.Thread sleep [expr $secs*1000]
}]
set tdone [clock format [clock seconds] -format "%H:%M:%S"]
puts "sleepDelay seconds=$secs start=$tstart done=$tdone"
}
set action [lindex $argv 0]
set workspace [lindex $argv 1]
set appname [lindex $argv 2]
set earfile [lindex $argv 3]
set cell [lindex $argv 4]
set node [lindex $argv 5]
set server [lindex $argv 6]
set vhost [lindex $argv 7]
puts "installOrUpdate: Deployment ear=$earfile app=$appname action=$action ws=$workspace"
puts "admin: cell=$cell node=$node server=$server"
if {$action == "install"} {
$AdminApp install "$workspace/$earfile" "-node $node -cell $cell -server $server -verbose -defaultbinding.virtual.host $vhost -usedefaultbindings"
$AdminConfig save
set ready false
set retries 0
while {$retries < 20} {
incr retries
set ready [$AdminApp isAppReady $appname]
puts "AdminApp isAppReady: $ready ($retries)"
if {$ready} { break }
sleepDelay 5
}
set appManager [$AdminControl queryNames node=$node,cell=$cell,type=ApplicationManager,process=$server,*]
$AdminControl invoke $appManager startApplication $appname
$AdminConfig save
} elseif {$action == "uninstall"} {
set appManager [$AdminControl queryNames cell=$cell,node=$node,type=ApplicationManager,process=$server,*]
catch { $AdminControl invoke $appManager stopApplication $appname } result
$AdminConfig save
$AdminApp uninstall $appname
$AdminConfig save
}
- 基于ssh和wsadmin的远程websphere部署
- ant或者说wsadmin远程部署websphere异常
- 使用WSAdmin和ANT自动部署websphere6.1
- 使用WSAdmin和ANT自动部署websphere6.1
- 使用WSAdmin和ANT自动部署websphere6.1
- 利用wsadmin.sh 部署应用的时候,报内存溢出
- WebSphere和Portal的部署方案的选择
- 使用WebSphere wsadmin Jython脚本在安装WAR/EAR应用时设置Web模块的context root
- 远程部署publish over ssh
- websphere部署的一些记录
- 关于 WebSphere 的应用部署
- 关于 WebSphere 的应用部署
- WebSphere集群部署的问题
- 关于 WebSphere 的应用部署
- websphere上部署基于cxf框架的webservice项目报错问题的解决方案
- SSH远程登录的使用和介绍
- 发布一个基于Go语言的 SSH 远程终端 WebConsole
- 使用eclipse远程调试websphere 8.5上部署项目
- Matplotlib API解释说明
- Android------Binder 开始篇
- jmeter+ant+jenkins
- Javascript面向对象编程(二):构造函数的继承
- 史上最好记的事件分发机制
- 基于ssh和wsadmin的远程websphere部署
- pyecharts和matplotlib:基于python柱状图可视化
- Android 判断当前系统语言
- RBF or Fuzzy &pid
- HDU 1232 畅通工程
- 正则表达式简介
- 查看电脑核数
- angular2的第一个项目
- [日推荐] 『KORJO母爱小空间』妈妈带宝宝出门再也不用愁啦!