Как перезапустить домен WebLogic удаленно, используя Ant?

У меня есть установка, где я использую Oracle BPEL Process Manager на наборе серверов WebLogic 9.2. У меня есть система управления выпусками на другом сервере, которая создает и развертывает чемоданы BPEL на этих серверах, используя Ant. Рекомендация Oracle состоит в том, что чемодан развернут в явном виде на первом узле кластера PMEL 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 на том же сервере, где находится домен. сконфигурировано. Я не хочу ни одного из них.

Есть ли способ управления удаленным доменом WebLogic программным способом из Ant?

2 ответа

Решение

Вы можете перезагрузить управляемый сервер WebLogic удаленно с помощью задачи ANT wlserver, но такие запросы должны выполняться через сервер администратора домена. Например:

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

Тем не менее, использование задачи ANT для перезагрузки управляемого сервера может быть ненадежным. Я бы рекомендовал использовать инструмент Weblogic Scripting Tool (WLST).

Ответ - да. Возможно, есть лучшие способы, но вот как я это делаю:

Моя программа установки Ant использует библиотеку maverick-ssh для открытия ssh-соединения с сервером (задача ssh). Затем он передает наше развертывание (файл zip и war) на сервер, а затем исполняет сценарий оболочки, который использует WLST для развертывания его на "локальном" сервере.

Вот задача муравья:

<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, которые я больше не могу найти...

Другие вопросы по тегам