【问题标题】:Remote deployment to Websphere 6.1.x using wsadmin使用 wsadmin 远程部署到 Websphere 6.1.x
【发布时间】:2011-01-08 06:44:19
【问题描述】:

我正在尝试将 war 文件远程部署到 websphere 应用程序服务器。我知道使用 wsadmin 可以做到这一点,但我是 Websphere 新手。

我知道我可以运行 wsadmin 并使用 SOAP 连接到远程应用服务器,但这就是我所在的位置。

这似乎应该是一个常见的用例,有人可以帮助我吗?

我想用例如下: 1.更新应用 2. 保存所有更改 3.重启远程应用服务器

我将使用 Hudson WAS Builder 或 Maven 进行部署,无论哪个可行。

感谢您的帮助

【问题讨论】:

    标签: websphere deployment wsadmin


    【解决方案1】:

    这个问题已经很老了,但我想展示一下我们是如何远程解决这个问题的。在这种情况下使用 Ant

    <target name="postbuild">
        <exec executable="C:\MyThinClient\wsadmin.bat" failonerror="true">
            <arg line="-conntype SOAP -host ${deployServer} -port ${deployPort} -user ${deployUser} -password ${deployPassword} -c" />
            <arg value="$AdminApp update ${projectName}EAR app {-operation update -contents {${artifactsDir}/${projectName}-${buildVersion}.ear}}" />
        </exec>
    </target>
    

    如果 wsadmin.bat 设置正确,您可以从任何服务器运行它(未安装 WAS)至少在 WAS 6.1/7.0 ND 上,这只会使用新的二进制文件重新启动应用程序,而不是整个服务器

    【讨论】:

    • 在没有安装 WAS 的情况下,您需要做什么才能让 wsadmin.bat 运行?
    • 没关系,找到一些文档:link
    【解决方案2】:

    由于 WAS Builder Plugin 比较新,我没有测试它(评估已经在 ToDo 列表中)。为了从命令行运行部署,我们使用 jython-scripts 和 wsadmin。我的理解是我需要在我想要部署的机器上。您可以部署到您的本地 wsadmin 与您的目标机器级别不同的机器 ID(相同版本相同的功能包)。

    有关 wsadmin 的更多信息,请参阅http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/ae/rxml_commandline.html

    顺便说一句,当您使用基于 Web 的管理控制台进行部署时,在部署过程结束时会有一个链接显示 jython 命令。不要使用 jacl,因为 WAS 7 只使用 jython。

    【讨论】:

    • 感谢您的回复。我看到我必须创建一个脚本,所以我在这里是全新的。我想 1)更新应用程序 2)AdminConfig.save 4)等到应用程序准备好 4)关闭服务器和 5)在脚本中启动服务器。我唯一不知道该怎么做的是上面的脚本 4) - 等到 app isReady 返回 true
    • 当 AdminConfig.save() 返回时,服务器已准备好重新启动。如果您有 WAS Network Deployment,则只能使用脚本重新启动服务器。否则,您必须使用 Stopserver 和 startserver 脚本(与 wsadmin 相同的目录)。如果您将 WAS 作为 Windows 服务安装,则需要使用“net start ”而不是 sartserver 脚本,否则它将作为用户进程而不是服务启动。
    • 我发现在 AdminConfig.save() 之后,我做了 AdminApp.isAppReady 并且它返回 false。我做了一个 getDeployStatus (或类似的东西),它返回“处理”,它仍在提取二进制文件等。我的理解是我必须等到完成后才能重新启动服务器。我正在做 WAS 网络部署。 WAS 在 linux 上运行。我刚刚找到了一些示例脚本,我将在ibm.com/developerworks/websphere/library/samples/… 试用
    • 好的,这似乎是一些 WAS ND 细节。对于非集群(非 ND)版本,您不需要这样做。 AdminConfig.save() 保存完成后返回。对于非集群版本,您可以立即开始。在集群版本中,您只是保存到 Deployment Manager。 Manager 需要将更改传播到集群节点。我认为此时 AdminApp.isAppReady() 开始发挥作用。
    • 我在 IBM ibm.com/developerworks/websphere/library/samples/… 找到了一些有用的示例自动部署脚本。自动部署遵循我们不采用的做法,所以我不得不修改 jython 脚本来做我想做的事,但我能够根据自己的需要定制它们,而且我在此过程中学到了一些东西。感谢您的帮助。
    【解决方案3】:

    脚本的链接没有显示在我的评论中,所以这里是:IBM SAMPLE SCRIPTS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2020-10-16
      • 2010-10-06
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      相关资源
      最近更新 更多