如何使用 Ant 远程重新启动 WebLogic 域?

如何使用 Ant 远程重新启动 WebLogic 域?

我有一个设置,在一组 WebLogic 9.2 服务器中运行 Oracle BPEL Process Manager。我在另一台服务器上有一个发布管理系统,该系统使用 Ant 构建 BPEL 套件并将其部署到这些服务器中。Oracle 的建议是将套件明确部署到 BPEL PM 集群中的第一个节点,然后重新启动所有其他节点(而不是直接将套件部署到每个节点)。

我在 Ant 脚本中有以下任务来执行这组活动:

<wlserver host="${node.hostname}" port="${node.port}" 
          configFile="${user.home}/.ant/weblogic/config/${env}/${node.config}"
          username="${bpel.cluster.user}" password="${bpel.cluster.password}" 
          action="reboot"/> 

但是,此任务似乎想要启动本地服务器,然后向其发出“rebo​​ot”命令,而不是连接到远程实例并重新启动它。事实上,到目前为止,我发现的几乎每个示例似乎都假设我将在我的工作站上部署/配置/管理域,或者我将在配置域的同一台服务器上执行 Ant 脚本。这些我都不想。

有没有办法从 Ant 以编程方式管理远程 WebLogic 域?

答案1

您可以通过 wlserver ANT 任务远程重新启动 WebLogic 托管服务器,但此类请求必须通过域管理服务器完成。例如:

<wlserver 
    adminserverurl="t3://myadminhost:7001"
    username="weblogicAdminUser"
    password="weblogicPassword"
    servername="MyManagedServer" 
    action="reboot"
    noExit="true"/>

话虽如此,使用 ANT 任务重新启动托管服务器可能不可靠。我建议改用 Weblogic 脚本工具 (WLST)。

答案2

答案是肯定的。可能有更好的方法,但我的做法如下:

我的 Ant 设置使用 maverick-ssh 库打开到服务器的 ssh 连接(ssh 任务)。然后它将我们的部署(zip 和 war 文件)传输到服务器,然后执行使用 WLST 将其部署到“本地”服务器的 shell 脚本。

这是蚂蚁任务:

<target name="transfer-build" description="">
    <property name="transfer.host" value="${deploy.host}"/>
    <property name="transfer.user" value="${deploy.user}"/>
    <property name="transfer.pass" value="${deploy.pass}"/>
    <property name="transfer.cwd"  value="${dir.war.tmp}"/>
    <property name="transfer.conf" value="${file.conf_zip}"/>
    <property name="transfer.war"  value="${file.tds_war}"/>

    <ssh host="${transfer.host}" username="${transfer.user}" password="${transfer.pass}" version="2">
        <sftp action="put" remotedir="${dir.deploy}" verbose="false">
            <fileset dir="${transfer.cwd}" >
                <include name="${transfer.conf}"/>
                <include name="${transfer.war}"/>
            </fileset>
        </sftp>
        <exec cmd="~/deploy-build.sh ${transfer.conf} ${transfer.war}"/>
    </ssh>
</target>

deploy-build.sh 脚本中的相关部分:

# issue the redeploy command
java weblogic.Deployer -adminurl t3://`hostname`:9000 -user weblogic -password weblogicadmin -name fooapp -deploy /path/to/weblogic/user_projects/domains/mydomain/fooapp.war

WLST 命令调用归功于一些 BEA 帮助文档,但我再也找不到它们了……

相关内容