Недавно лидеры просили местных проектов в Шанхае использовать Дженкинс для достижения автоматического развертывания, чтобы проекты могли быть переданы студентам по эксплуатации и обслуживанию для сокращения рабочей нагрузки на разработку. Запишите процесс восхождения на эту яму.
1. Предисловие
Jenkins - это инструмент непрерывной интеграции, разработанный на основе Java для мониторинга непрерывной повторяющейся работы, а его функции включают в себя:
1. Проекты непрерывного выпуска/тестирования версии программного обеспечения.
2. Следите за работой, выполненной внешними вызовами.
Я скачал вышеупомянутое из энциклопедии. Честно говоря, я этого не понял. Что это? На самом деле, основываясь на моем текущем понимании и применении, наиболее распространенным является развертывание. Другие функции должны быть изучены (_) Мастер в настоящее время работает на неизвестном государственном предприятии в Шанхае. Текущий процесс выпуска проекта:
1. Локальный или упакованный сервер использует Maven для создания военного пакета
2. Подключитесь к серверу проекта удаленно или SSH
3. Остановите Tomcat, удалите старый пакет и кэш и поместите недавно напечатанную пакет в
4. Перезапустите Tomcat. Казалось бы, простые шаги для завершения, но на самом деле это занимает много времени для разработки.
Затем используйте Дженкинс:
1. Нажмите, чтобы построить сейчас и завершить. Что? Просто нажмите кнопку, и это сделано. Да, это кнопка. На самом деле, после того, как вы нажмете кнопку, Дженкинс помог вам запустить фон приведенного выше процесса. На этот раз я представим, как заставить его запустить в фоновом режиме.
2. Установка и строительство
Это введение основано на Windows, которая может быть установлена на компьютере разработки или на сервере Windows Server
1. Скачать Дженкинс
Дженкинс предоставляет несколько методов установки
1.1Jenkins.msi Установка похожа на то, что когда мы обычно устанавливаем программное обеспечение, точки. Адрес загрузки: https://jenkins.io/download/
1.2Jenkins.war Package Поскольку это военный пакет, само собой разумеется, что все знают, как его начать, просто бросьте в Tomcat. Адрес загрузки: http://updates.jenkins-ci.org/download/war/
2. Начните Дженкинс
Я лично рекомендую метод установки 1.1. Я часто сталкиваюсь с проблемами переполнения памяти при использовании 1.2. Конечно, переполнение памяти можно скорректировать, но есть дополнительная рабочая нагрузка.
Используя метод установки 1.1, после завершения установки мы увидим службу Jenkins в службе Windows. Как показано на рисунке ниже, просто запустите и закрывайте и перезапустите службу напрямую.
Если вы используете 1.2 для загрузки пакета войны, на самом деле есть два способа его запуска.
Первый тип помещается в контейнер Tomcat.
Второй тип -ввести CMD в каталог установки Java -Jar Jenkins.war
3. Установите Дженкинс
Метод установки 1.1 и 1.2 одинаковы
Дженкинс по умолчанию порт 8080, может быть изменен, метод Baidu.
Введите http: // localhost: 8080/. Красный путь шрифта имеет пароль, заполняйте пароль, а затем следующий шаг.
При выборе плагина рекомендуется выбрать официальный рекомендуемый плагин, чтобы избежать большого количества проблем.
В ожидании установки ...
После установки вы увидите изображение ниже. Имя пользователя и пароль используются для входа в систему. Полное имя используется для его отображения. Перейти к следующему шагу.
Поскольку я хочу развернуть проект Maven, в плагине Jenkins нет Maven, поэтому мне нужно сначала установить его.
Нажмите на плагин ниже, чтобы установить его напрямую, плагины интеграции Maven
Установите развертывание плагина Hot Deployment Plugin в плагин с контейнером
4. Настройте Jenkins
Нам нужно сопоставить файл настройки Maven, адрес JDK и Maven. Файл настройки должен быть сопоставлен. Не используйте его в качестве дефолта. Поскольку это не совпадает, вы долго боролись.
Наконец, просто примените и сохраните. Помните, что не забывайте сохранить приложение, иначе оно будет напрасно.
Далее мы создадим новый проект, сначала введите имя проекта, выберите проект Maven, OK
Выберите «Управление исходным кодом», потому что мы являемся корпоративным проектом, а не с открытым исходным кодом, используйте SVN, выберите Subversion для настройки SVN
URL -адрес - это ваш адрес SVN, а учетные данные - пароль учетной записи
Затем перейдите к предварительным шагам, эта вещь необходима перед упаковкой. Например, наш текущий проект должен скопировать файл log4j.xml и т. Д. Вы можете написать сценарии Windows или Shell в соответствии со средой
Если нет операции, нет необходимости соответствовать ей.
Разместите мой сценарий для вашей ссылки. Я буду использовать XXX, чтобы заменить соответствующие детали.
@echo offrem set variable :: app.xxx app.xxx код локальный и набор каталогов App.xxx = "d: /svn/svn.173.xxx/app.xxx/" :: home.ommm's log4j.xml variable :: home_omm_log4j_goals_path the log. Home_omm_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/home.ommm/src/main/resources" :: home_omm_log4j Home_omm_log4j = "d: /svn/svn.173.xxx/app.xxx/config/home.ommm/sh_test/resources" :: home.ommm's log4j.xml Переменная конец :: home.wexin's Variable :: home_weixin_log4j_gaals_path the pather at the gor -stried at stried striewrited at striewrited at striewrited stry stry strish stried stried stried at stried stried: home.weixin's log4j.xml home_weixin_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/home.wexin/src/main/resources" :: home_wexin_log4j Home_weixin_log4j = "d: /svn/svn.173.xxx/app.xxx/config/home.weixin/sh_test/resources" :: home_weixin_config.js_goals_path config.js path Home_weixin_config.js_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/home.weixin/src/main/webapp/module/js" :: home_weixin_config.js home. Home_weixin_config.js = "d: /svn/svn.173.xxx/app.xxx/config/home.weixin/sh_test/webapp/module/js" :: home.weixin variable end :: service variable start :: service_logles_path_path the Path to Wrise the log.x x x x x x x x x x x x xpath ware xpath word. Service_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service/src/main/resources" :: service_log4j Путь тестовой среды тестирования log4j.xml установлен Сервис. Service_log4j = "d: /svn/svn.173.xxx/app.xxx/config/service/sh_test/resources" :: service_application_resources_all_goals_path Path of Application-resources-all.xml установлен Service_application_resources_all_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service/src/main/resources/config/spring" :: service_application_resources_all-resources-all.xml test path Service_application_resources_all = "d: /svn/svn.173.xxx/app.xxx/config/service/sh_test/resources/config/spring" :: service variable end :: service.refresh varible start :: service_refresh_log4j_goals_path the pather set of set of of of sevief.x.x.x. Service_refresh_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service.refresh/src/main/resources" :: service_refresh_log4j Service_refresh_log4j = "d: /svn/svn.173.xxx/app.xxx/config/service.refresh/sh_test/resources" :: service_refresh_application_resources_all_goals_path. Service_refresh_application_resources_all_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service.refresh/src/main/resources/config/spring" ::: Service_refresh_application_resources_all = "d: /svn/svn.173.xxx/app.xxx/config/service.refresh/sh_test/resources/config/spring" :: service.refresh Конец :: Судебный %Home_omm_log4j_goals_path %/log4j.xml (del %home_omm_log4j_goals_path %/log4j.xml) cd %home_omm_log4j_goals_path %copy %home_omm_log4j %/log4j.xml log4j.xml :: gog4j.xmix file. %Home_weixin_log4j_goals_path %/log4j.xml (del %home_weixin_log4j_goals_path %/log4j.xml) cd %home_weixin_log4j_goals_path %/log4j.xml) cd %home_weixin_log4j_goals_path %/log4j.xml) cd % %Home_weixin_log4j %/log4j.xml log4j.xml :: Судья, существует ли файл config.js of home.wexin, если существует %home_weixin_config.js_goals_path %/config.js (del %home_weixin_config.js_gyals_path %/config.js) cd) cd) cd) %Home_weixin_config.js_goals_path %copy %home_weixin_config.js %/config.js config.js :: Судья, существует ли config.xml Service, если существует %service_log4j_goals_path %/log4j.xml (del %service_log_goals_path_path %/log4j.xml (del %service_log_goals_path. %Service_log4j_goals_path %copy %service_log4j %/log4j.xml log4j.xml :: Существует ли файл Сервиса-resources-all.xml, если существует %service_application_resources_all_goals_path %/приложение-resources-all.xml (del %Service_application_resources_all_goals_path%/application-resources-all.xml) cd%service_application_resources_all_goals_path%copy%service_application_resources_all%/application-resources-all.xml-resources-all.xml :: судья. %Service_refresh_log4j_goals_path%/log4j.xml (del%service_refresh_log4j_goals_path%/log4j.xml) cd%service_refresh_log4j_goals_path%copy_refresh_log4j%/log4j.xml log4j.xml. Файл service.refresh существует, если существует %service_refresh_application_resources_all_goals_path %/application-resources-all.xml (del %service_refresh_application_resources_all_goals_path %/application-resources-all.xml) cd CD %Service_refresh_application_resources_all_goals_path %/application-resources-all.xml) cd %service_refresh_application_resources_all_goals_path %copy_refresh_application_resources_all %/application-resources-all.xml applicate-resources-all.xresustist.
Сборка была составлена, указав местоположение POM и команду MVN. Кстати, вы также можете настроить рабочее пространство на расширенном уровне, который не соответствует по умолчанию в каталоге установки Jenkins.
После строительства операция - это то, куда ее поместить после завершения пакета. Выберите следующее изображение
После этой строительной операции мы используем горячее развертывание Tomcat. Вы можете обратиться к моей предыдущей статье: горячее развертывание Tomcat
Война/ухо: адрес военного пакета
Контекст: Имя развернутого пакета
Имя пользователя/пароль относится к учетной записи/паролю для горячего развертывания Tomcat
URL: интерфейс Tomcat, такой как: http://172.16.101.71:8180/
5. Начните строить
После того, как так много разговоров, наконец -то пришло время. Операция кнопки наконец -то появилась. Вы можете увидеть наш проект, когда вернетесь на домашнюю страницу Дженкинса.
После строительства нажмите на статус выполнения сборки в левом нижнем углу, чтобы увидеть, что наш проект находится в стадии разработки. Нажмите на имя проекта, чтобы ввести
Выберите Console, чтобы увидеть журнал или сообщение об ошибке, напечатанное во время процесса строительства.
3. Существующие проблемы
Проблема роли Дженкинса, поскольку она выпущена, она включает в себя производственную среду. Все пользователи не могут иметь разрешение на развертывание производственной среды. Если кто -то случайно нажимает его. Последствия ... не могу в это поверить.
Решение: установите плагин на стратегию авторизации на основе ролей, см. В оставшихся шагах: http://www.cnblogs.com/zz0412/p/jenkins_jj_14.html. Я не подробно.
Проблема горячего развертывания Tomcat, подъема памяти и переполнены после развертывания несколько раз, прекратить запуск или сообщать об ошибке. Я проверил проблему горячего развертывания в Интернете, и я ищу решение ...
Решение: существуют проблемы с самого горячего развертывания Tomcat, и производственная среда, как правило, не принимает метод горячего развертывания. В настоящее время, поскольку моя тестовая среда использует систему Windows Server 2008, она использует метод горячего развертывания. Проблема все еще существует. Тем не менее, я прочитал пост, который его можно решить, используя команду Windows Pactor, которая является командой BAT, но я не изучал его глубиной. В системе Linux в производственной среде я в настоящее время использую плагин Publish Over SSH. Конкретные шаги должны добавить шаги ниже в конфигурацию.
1. В системе управления-》 Системные настройки, найдите публикацию по SSH и введите:
2. Настройте шаги POST
Здесь мы продолжим с вышеуказанным проектом. Эта конфигурация будет отображаться только после установки вышеуказанного плагина!
Передача файлов SetSource: указывает локальный военный пакет и путь к загрузке, вы можете перейти в рабочую область, чтобы просмотреть его.
Удалить префикс: означает удаление папки, которая должна быть удалена при загрузке, то есть только пакет войны загружается.
Удаленная тренировка: означает путь во время исполнения, что эквивалентно загрузке военного пакета здесь
Exec Commad: команда будет выполнена
Как показано на рисунке, военный пакет будет размещен в папке Home/Admin, а затем я выполню команду Shell, которую я написал. В основном он включает в себя остановку Tomcat, резервное копирование оригинального военного пакета, удаление оригинального военного пакета под WebApp, копирование нового военного пакета в Home/Admin, запуска Tomcat, а затем это сделано. Это позволяет избежать проблемы сбоя сервера, вызванной переполнением памяти горячего развертывания.
Ссылка на сценарий:
#!/bin/sh #defined tomcat_home = "/usr/java/tomcat/apache-tomcat-7.0.67/" id = `ps -ef | Греп Java | grep tomcat|awk '{print $2}'` echo $ID echo "kill tomcat" kill -9 $ID echo "remover war file" cd "$TOMCAT_HOME"/webapps rm -rf JavaWeb-0.0.1-SNAPSHOT rm -rf JavaWeb-0.0.1-SNAPSHOT.war echo "copy war to webapp" cd /home/lin cp javaweb-0.0.1-snapshot.war "$ tomcat_home"/webapps cd "$ tomcat_home"/bin echo "start tomcat" ./startup.shПроблема плагина развертывания, используемый выше плагин Deploy To Container, используется для реализации горячего развертывания, но ограничения плагина развертывания, которые один проект может развернуть только один военный пакет. Мой проект заключается в том, что две войны, отделенные от передней и задней части проекта, не могут быть построены дважды,  ̄へ ̄.
Решение: постарайтесь не использовать горячее развертывание. Если тестовая среда временно используется, в настоящее время я строю два новых проекта и собираю только один военный пакет за раз.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.