вторник, февраля 9

Ant-скрипт для деплоинга приложений на сервер приложений

При разработке бывают моменты, когда требуется загрузить архив приложения на сервер. Одним из вариантов для этого является "забрасывание" архива приложения в каталог на сервере, где его автоматически "подхватит" например tomcat или jboss

первым и "простым" способом для этого является задача scp для ant-скрипта.

scp file="${dir.build}/${file.war}" trust="true" password="${ssh.pwd}" todir="${ssh.user}@${ssh.host}:${tomcat.deploy}" /

но... через какое-то
время сталкиваешься с "полтергейстом", когда приложение загрузилось, а деплоиться "не желает".
небольшой экспресс-анализ показал, что сервер подхватывает архив раньше, чем он полностью "залился" на сервер.
для решения данной проблемы можно пойти обходным путём - сперва скопировать архив во временный каталог, или с другим расширением, а после уже локально переместить его в нужное место

target name="scp-copy"
scp file="${dir.build}/${file.war}" trust="true" password="${ssh.pwd}" todir="${ssh.user}@${ssh.host}:${tomcat.tmp.dir}" /
sshexec host="${ssh.host}" username="${ssh.user}" password="${ssh.pwd}" trust="true" command="mv ${tomcat.base}/${file.war} ${tomcat.base}/${tomcat.root}/ROOT.war"
/target

Преимущество подхода с промежуточным копированием так же в том, что если в процессе загрузки произойдёт сбой связи с сервером, то вы не потеряете текущее приложение, т.к. ранее загруженный архив не будет перезаписан.

Комментариев нет:

Отправить комментарий