Настройка деплоймента из Bitbucket на свой сервер

Сделал небольшой сайт код которого лежит git на bitbucket.org и решил я настроить автоматический деплоймент (разворачивание) этого сайта на боевом сервере из репозитория. Для этого пришлось повозиться, поэтому составил краткую инструкцию как это можно повторить.

Ссылка на основную статью по которой делался деплоймент.

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

1. Устанавливаем на сервер git. У меня CentOS поэтому выполняем команду:

yum install git

Для других ОС или если не смогли установить git сразу, то гуглим как это сделать.

2. Проверяем установлен или нет на сервере ssh, если нет, то ставим:

ssh -v

3. Создаем ключ для apache:

sudo mkdir /var/www/.ssh
sudo chown -R apache:nobody /var/www/.ssh
sudo -u apache ssh-keygen -t rsa

4. Следующей командой проверяем запущен ли ssh-agent

ps -e | grep [s]sh-agent

5. Если нет, то запускаем его

ssh-agent /bin/bash

6. Затем вводим команду и вводим пароль

ssh-add /var/www/.ssh/id_rsa

7. Устанавливаем публичный ключ в аккаунт Bitbucket. Заходим в управление аккаунтом и переходим в раздел «SSH-ключи», где нажимаем кнопку «Добавить SSH ключ».

8. Копируем содержимое публичного ключа:

cat /var/www/.ssh/id_rsa.pub

9. В поле Label вводим, например, Apache public key. В коле Key вставляем скопированный публичным ключ. И сохраняем.

10. Заходим в папку где будет лежать проект и клонируем репозиторий

git clone git@bitbucket.org:name/your-project.git

11. На сайте bitbucket.org заходим в репозиторий, который хотим деплоить, нажимаем на шестеренку (справа) и переходим по ссылке «Services». В списке сервисов выбираем «POST» и нажимаем «Add service» после чего появится поле для ввода URL (куда будет направляться POST-запрос). URL примерно такой: http://example.com/deploy.php

12. Со страницы https://gist.github.com/krisnoble/4692643 копируем код в файл deploy.php

13. Прописываем в переменные настройки для своего репозитория. И создаем папку для лога деплоймента, указав путь в настройках.

14. Кладем этот файл в корень сайта.

15. На всё папку рекурсивно устанавливаем владельца apache:

chown -R apache:apache /var/www/sites/your-project

16. Запустить первый раз git pull из под апача и написать «yes»:

sudo -u apache git pull

17. Убедитесь что после пуша в bitbucket файлы на вашем рабочем сервере обновляются.

Скрипт для деплоя deploy.php можно дописать под свои нужды, например, создать папки и выставить права на них.

Структуру POST-запроса, который передается из Bitbucket на вход скрипта deploy.php можно посмотреть на странице.

ПоделитьсяShare on VKShare on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someoneBuffer this page

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *