一直想实现自动部署,这里说的自动部署,是指点击一个按钮(或定时执行),让计算机将最新的应用程序发布到相应的环境(UAT或PRD)中。java
自动部署的意义web
自动部署能省去繁琐的人工发布步骤;如配置得当,发布的执行稳定性(成功率)会比较高。app
这样主要有几点意义:ide
咱们开发中经常使用的软件组合为:Java + SVN(版本控制工具) + Ant(编译打包工具) + Weblogic(Web Server)。工具
因此我也是以这一套组合为设想,再加上自动部署工具Jenkins。测试
你们用的工具不尽相同,但工具间的使用或遵循的规范相似,因此切换应该是可行的。好比如今使用的Web Server是Weblogic,须要切换成Tomcat或Jboss,应该问题不大(但本人没试过- - !)。ui
之前作过上述的设想,但一直卡在Weblogic的更新问题上:如何使用脚本让Weblogic更新咱们的应用程序。this
最近仔细看了Weblogic文档,发现调用weblogic.Deployer能很好地知足个人需求。url
发布的思路spa
那么,自动部署的思路是,使用Jenkins做为任务的总调度师
如何更新Weblogic部署的应用程序
weblogic.Deployer是class,因此执行时需附上对应classpath,JAR在$WLS_HOME/server/lib/weblogic.jar。
我使用redeploy的参数实现更新应用程序:
java -cp $WLS_HOME/server/lib/weblogic.jar weblogic.Deployer -adminurl t3://xx.xx.xx.xx:7001 -username weblogicusername -password weblogicpassword -name appname -redeploy
PS,附上weblogic.Deployer的帮助信息:
Usage: java weblogic.Deployer [options] [action] [Deployment units(s)]
where options include:
-help Print the standard usage message.
-version Print version information.
-adminurl <<protocol>://<server>:<port>> [option] Administration
server URL: default t3://localhost:7001
-username <username> [option] user name
-password <password> [option] password for the user
-userconfigfile <userconfigfile> [option] The user config file
contains the user security credentials; it
is administered by the weblogic.Admin tool
-userkeyfile <keyConfigFile> [option] The users key file; it is
administered by the weblogic.Admin tool.
-distribute [action] Distribute application to the
targets.
-start [action] Makes an already distributed
application available on a target.
-stop [action] Makes an application unavailable on
targets.
-redeploy [action] Replace a running application
partially or entirely.
-undeploy [action] Take an application out of service.
-deploy [action] Make an application available for
service.
-update [action] Update an application configuration
in place.
-examples [option] Displays example usage of this tool.
-name <application name> [option] Defaults to the basename of the
deployment file or directory.
-targets <<target(s)>> [option] A comma separated list of targets
for the current operation. If not specified,
all configured targets are used. For a new
application, the default target is the
administration server.
-plan <Deployment plan path> [option] Specifies location of
deployment plan
-library [option] Indicates that the unit being
deployed is a library. This option is
required when the application is a library.
-advanced Print advanced usage options.
The optional trailing arguments are deployment units and may
represent the archive being deployed, the name of a previously
deployed application or a list of files for a partial redeploy operation.