Weblogic

如何使用 Ant 遠端重啟 WebLogic 域?

  • December 5, 2015

我有一個設置,我在一組 WebLogic 9.2 伺服器中執行 Oracle BPEL 流程管理器。我在另一台伺服器上有一個發布管理系統,它使用 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"/> 

但是,此任務似乎要啟動本地伺服器,然後向其發出“重新啟動”命令,而不是連接到遠端實例並重新啟動它。事實上,到目前為止,我發現的幾乎每個範例似乎都假設我將在我的工作站上部署/配置/管理一個域,或者我將在域所在的同一台伺服器上執行 Ant 腳本配置。這兩個我都不想要。

有沒有辦法從 Ant 以程式方式管理遠端 WebLogic 域?

您可以通過 wlserver ANT 任務遠端重新啟動 WebLogic 託管伺服器,但此類請求必須通過域管理伺服器完成。例如:

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

話雖如此,使用 ANT 任務重新啟動託管伺服器可能並不可靠。我建議改用 Weblogic 腳本工具 (WLST)。

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

我的 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 幫助文件…

引用自:https://serverfault.com/questions/84159