Конфигурация Jenkins с удаленным живым сервером

Я хочу знать, как настроить Jenkins с моим сервером экземпляра live preprod?

Позвольте мне объяснить вам мой процесс и сказать мне, прав ли я, и если это не хороший способ сделать.

1) У меня есть проект project-1 на сервере: /var/www/preprod/project-1, этот проект находится в Magento Cms, поэтому он содержит много файлов.

2) Я скопировал этот проект project-1 в репозиторий Git, репозиторий = project-1.

3) Я клонировал этот проект из этого репозитория Git на свою локальную машину: MAMP/htdocs/project-1.

4) Я установил Jenkins и настроил его с помощью git. Поэтому, когда я делаю какой-то толчок, Jenkins автоматически выполняет сборку.

Теперь то, что я хочу сделать, это после сборки, я хочу, чтобы Дженкинс загрузил эти изменения на мой рабочий сервер preprod, будь то автоматически или вручную (я хочу знать, как сделать это вручную и автоматически).

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

Так что скажите мне, пожалуйста, использую ли я правильный метод, хорошая ли это практика и чего мне не хватает для этого continuous deployment & delivery.




Ответы (1)


Вы можете отправить его на сервер с помощью команды «Опубликовать через SSH», если вы выполняете работу в свободном стиле https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin. Если вы делаете конвейер, вы можете выполнить простую команду scp...

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

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

Jenkins — это сервер автоматизации. Весь смысл использования jenkins заключается в автоматизации вещей, чтобы вам не требовалось «ручное» вмешательство. Поэтому автоматизируйте его везде, где это возможно.

Надеюсь, поможет :)

person rohit thomas    schedule 09.06.2018
comment
хорошо, спасибо за ваш ответ. так что лучше всего использовать трубопровод правильно? и с помощью команды scp вы имеете в виду, что я копирую все файлы каждый раз? но я хочу скопировать только те файлы, которые я изменяю, а не весь проект, потому что мой проект весит 900 мес, вы представляете, если я скопирую все это каждый раз! - person prc; 10.06.2018
comment
Конвейер лучше всего, да... Потому что у вас больше контроля... Так что просто скопируйте файлы, которые вам нужны... Таким образом, при реализации конвейера вы будете знать, какие файлы изменены или нужны, и используйте scp для копирования только этих файлов. на сервер - person rohit thomas; 10.06.2018
comment
Хорошо, спасибо, подумайте в последний раз: после каждого нажатия Дженкинс делает классную сборку, что я и хочу, но я заметил, что он копирует весь проект в /Users/Shared/Jenkins/Home, это нормально? он не получает только измененные файлы! когда я проверил первый журнал сборки, я увидел, что он сделал клон проекта. Итак, в конце: у меня есть проект в: 1 wamp->htdocs, 2 git->repo, 3 live server (for the preprod), 4 Jenkins (for the build)! мой метод хорош? - person prc; 10.06.2018
comment
Да, вот как это работает, поскольку на втором этапе git-›repo проверит файлы из репозитория... если вам не нужны данные предыдущей сборки, вы можете использовать опцию сборки discard --› упоминает, сколько дней вы хотел бы сохранить их. Полезно в ситуации, когда вы видите предыдущую сборку при сбое сборки :) также сборка должна происходить, а затем помещаться на сервер ... Я думаю, что 3 и 4 следует поменять местами :) - person rohit thomas; 11.06.2018