автоматическое извлечение на производственном сервере после отправки в BitBucket

Я разрабатываю свой код локально, фиксирую его в своем локальном хранилище, а затем отправляю его на мой сервер Bitbucket. После этого я должен войти через ssh на свой производственный сервер.
как это:

ssh my-server@my-host.de
pass: very-secure-passs
cd www/myPage
cd git pull origin master
pass: very-secure-pass

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

Я хочу иметь 3 репозитория (локальный, BitBucket и производственный сервер), поэтому я не могу использовать это решение: Сделайте автоматический запрос на получение ответа после отправки на сервер

Я нашел этот вопрос Крюк, который позволяет `тянуть` с VPS, когда я` толкаю` к Bitbucket это именно то, что я хочу, но это с 2013 года, и ответ устарел, так как BitBucket изменился с тех пор.

Я нашел здесь https://community.atlassian.com/t5/Answers-Developer-Questions/How-can-I-deploy-my-bitbucket-repo-to-my-production-server/qaq-p/565348 что кто-то предложил использовать бесплатный плагин под названием Хук HTTP-запроса для Bitbucket Server

настроить автоматическое «тянуть»: каждый раз, когда вы нажимаете на центральный
хранилище, ваша производственная машина уведомлена и тянет
хранилище по уведомлению. Bitbucket Server предлагает сервальные плагины для
поддерживать процесс уведомления — я использую Http Request Post
Получите Hook: каждый раз, когда делается push, связывается с настроенным URL,
отправив некоторую информацию. На моей производственной машине я настроил немного
веб-сервер, ожидающий этот HTTP-запрос. При получении
HTPP-запрос Я оцениваю заданные параметры и выполняю действие
(например: вытащить хранилище …)

Теперь мои вопросы:

  1. Можно ли использовать Webhook вместо HTTP-запрос
    Hook Plugin
    ?

  2. Как должен выглядеть файл на моем рабочем сервере, чтобы он выполнял запрос на извлечение при получении HTTP-запроса? Я был бы заинтересован в базовом примере на PHP.

7

Решение

Связанная с веб-документацией документация относится к Bitbucket Cloud (bitbucket.org), а не к Bitbucket Server (который размещается самостоятельно и имеет какой-то другой URL-адрес). Если вы используете BB Cloud, то подключаемый модуль HTTP-запроса не будет работать, но документация, на которую вы ссылаетесь, будет работать. Если вы используете BB Server, то вы можете использовать https://confluence.atlassian.com/bitbucketserver/managing-webhooks-in-bitbucket-server-938025878.html вместо этого, чтобы определить веб-крючок.

Для второй половины вашего вопроса — как настроить конец веб-крючка на вашем сервере — вам понадобится небольшой сервис, который прослушивает входящий веб-крючок, выполняет любую аутентификацию, которую вы хотите, а затем запускает ваш метод pull. Есть миллионы способов сделать это, но большинство из них будут зависеть от вашего предпочтительного языка и настроек безопасности, а также от конфигурации сети рассматриваемого сервера. Я бы предложил поиск в Google по запросу «webhook deploy $ LANGUAGE», чтобы увидеть, как некоторые другие сделали это с вашим предпочитаемым языком, или посмотреть, есть ли публичный репозиторий, суть или фрагмент, который вы можете использовать.

4

Другие решения

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

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector