Как я могу автоматически развернуть войну из Nexus в Tomcat?
Как я могу автоматически развернуть войну от Nexus до Tomcat?
У меня есть веб-проект maven, который успешно строится и развертывается (как моментальные снимки, так и версии выпуска) на Nexus. Я хотел бы знать, есть ли функция / плагин в Nexus, где он выбирает выпущенную войну и автоматически развертывается на удаленном Tomcat?
Я знаю, что вы можете развернуть войну на удаленном Tomcat с помощью maven-tomcat-plugin, но хотел бы знать, есть ли альтернативное решение.
Пожалуйста руководство.
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
Спасибо
- Сударшан