Как я могу автоматически развернуть войну из Nexus в Tomcat?


Как я могу автоматически развернуть войну от Nexus до Tomcat?

У меня есть веб-проект maven, который успешно строится и развертывается (как моментальные снимки, так и версии выпуска) на Nexus. Я хотел бы знать, есть ли функция / плагин в Nexus, где он выбирает выпущенную войну и автоматически развертывается на удаленном Tomcat?

Я знаю, что вы можете развернуть войну на удаленном Tomcat с помощью maven-tomcat-plugin, но хотел бы знать, есть ли альтернативное решение.

Пожалуйста руководство.

3 4

3 ответа:

Обычно вы используете инструмент CI, такой как Jenkins, чтобы запустить сборку Maven, которая публикует ваш файл War в Nexus. Затем Nexus будет использоваться любым инструментом, который вы используете, чтобы подтолкнуть войну к целевой среде tomcat:

Введите описание изображения здесь

Есть много и много вариантов.

Jenkins post build SSH script

Запустите задачу SSH после сборки от Jenkins, которая делает что-то подобное на целевом сервере tomcat:

curl "http://myrepo/nexus/service/local/artifact/maven/redirect?r=releases&g=myorg&a=myapp&v=1.1&e=war" \
     -o /usr/local/share/tomcat7/webapps/myapp.war
service tomcat7 restart

До

Я предпочитаю использовать Rundeck для развертываний, потому что он имеетNexus plugin , обеспечивающий удобные выпадающие меню доступных релизов.

Существует также плагин Rundeck для Дженкинса, который может быть использован для организации процесса CI с Дженкинсом, выполняющим сборку, передачу Rundeck для развертывания, а затем обратный вызов Дженкинса для запуска интеграционных тестов.

Шеф-повар

Я также использую chef, который может быть использован для автоматического развертывания программного обеспечения в pull мода.

Артефакт поваренная книга имеет прямую поддержку Nexus, в то время какapplication_java поваренная книга использует более общий подход "pull from a URL", который также хорошо работает.

.. ..

Список можно продолжать, так что я надеюсь, что это поможет.

Мы использовали UrbanCode для автоматизации развертывания, извлекаем war из Artifactory / Nexus и развертываем на целевом сервере.

Я использовал Nexus Rest-API, эти конечные точки загружают артефакт в рабочую область Дженкинса.

Для развертывания Snapshot & Release в Tomcat мы можем создать параметризованное задание Дженкинса и передать параметры в конечную точку REST, а также развернуть на сервере, таком как Tomact "Deploy WAR/EAR" Jenkins plugin поможет.

Дженкинс Параметризованные Задания

Мы можем параметризовать конечную точку и использовать как часть шага "Build" вместе с опцией" Execute Shell script " для строить.

wget --user=${UserName} --password=${Password} "http://192.168.49.131:8080/nexus/service/local/artifact/maven/redirect?r=releases&g=${GroupId}&a=${ArtifactId}&v=${Version}&e=${TypeOfArtifact}" --content-disposition

Фактические конечные точки для Nexus выглядят примерно так, как показано ниже.

wget --user=admin --password=admin123 "http://localhost:8080/nexus/service/local/artifact/maven/redirect?r=snapshots&g=org.codezarvis.artifactory&a=hushly&v=0.0.1-SNAPSHOT&e=jar" --content-disposition

wget --user=admin --password=admin123 "http://localhost:8080/nexus/service/local/artifact/maven/redirect?r=releases&g=org.codezarvis.artifactory&a=hushly&v=0.0.5&e=jar" --content-disposition

Спасибо
- Сударшан