Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Как настроить автоматическое развертывание с помощью Git на VPS

1964
5 минут чтения
Средний рейтинг статьи: 5

В статье расскажем о том, как организовать автоматическое развертывание приложений через Git на VPS. В сети предлагается немало способов настройки Git для этого, однако мы решили выбрать самый быстрый и легкий. Но перед тем, как работать и настраивать Git, его сначала нужно установить — эту процедуру мы тоже рассмотрим. В статье мы описываем установку на Ubuntu, но она также подойдет для Debian. 

Шаг 1. Устанавливаем Git

Чтобы установить Git на Ubuntu, сначала откройте терминал, нажав Ctrl + Alt + T, или найдите и запустите терминал через поиск Ubuntu. Далее через sudo или под пользователем root обновите каталог пакетов:

    

и введите свой пароль, когда система запросит его. Теперь установите Git, выполнив следующее:

    

Подтвердите установку, нажав клавишу Y, и нажмите Enter. После завершения установки проверьте версию Git, чтобы убедиться, что установка прошла успешно:

    

Эта команда должна вернуть версию Git, например:

    

Также рекомендуется настроить ваше имя пользователя и email, что нужно для корректной работы с Git. Делается это следующим образом:

    
    

Замените My name и my_mail@mysite.com на ваше реальное имя и email. Чтобы проверить правильность настроек, введите:

    
    

Каждая строка должна вернуть соответствующее значение, которое вы указали для имени и email. Готово! Теперь у вас есть установленный и настроенный Git.

Шаг 2. Настраиваем сервер

Допустим, у нас есть рабочее пространство с определенной директорией (путь: /var/www/mysite.ru) и репозиторием (путь: /var/repo/mysite.git). Наша задача запушить mysite.git, но при этом обеспечить доступ к /var/www/mysite.ru. Залогиньтесь на своем VPS и введите в командной строке:

    

Обратите внимание на флаг --bare, который необходим, чтобы исключить добавление исходников в директорию: там будет исключительно контроль версий нашего ПО.

Шаг 3. Устанавливаем хуки

В репозитории вы найдете директорию, она называется hooks. Там содержатся файлы с примерами хуков, используемые для индивидуальной настройки. Задачи хуков заключаются в том, чтобы автоматизировать некоторые типичные процедуры. Здесь стоит заметить, что в ряде инструкций по Git в сети встречается название «крючки», что представляет собой дословный перевод этого слова с английского. Но такой перевод некорректен, и правильно говорить и писать именно «хуки». Согласно документации разработчиков сервиса, основных хуков 3:

  • pre-receive исполняется после получения push,
  • update же действует похожим образом, однако его отличие в том, что он исполняется единожды для каждой ветки проекта,
  • наконец, post-receive исполняется после полного завершения push.

Давайте настроим необходимый нам в данной инструкции post-receive. Для начала открываем список каталогов:

    

и переходим в каталог хуков:

    

Далее создаем собственно post-receive, вот так:

    

Приведенная ниже команда создаст файл и запишет в него:

    

После этого сохраняем наш ввод комбинацией Ctrl + D. Добавим, что если вы хотите установить иную директорию  для переноса файлов, используйте флаг --work-tree, как в инструкции выше. А на этом хуки для работы можно считать установленными: в нашем примере добавленный хук будет контролировать размещение в /var/www/mysite.ru после завершения отправки.

Шаг 4. Создаем локальный репозиторий

Сначала нам нужно разлогиниться на сервере:

    

Теперь создаем локальный репозиторий на своем ПК. Открываем терминал (в Linux) или командную строку (в Windows). Переходим в папку, где хотим создать свой локальный репозиторий, используя команду cd, а затем вводим git init, чтобы инициализировать Git репозиторий в текущей папке. Эта команда создаст в каталоге скрытую папку .git, которая будет содержать все необходимые файлы и данные для работы с Git.

После этого настраиваем директорию для репо (замените путь, указанный после ssh://, на свой):

    

Заметьте, что путь должен вести именно на репо. Далее создаем файл:

    

И добавляем коммит:

    
    

Точка означает добавление всех файлов, а -m (сокращение от message) необходим для добавления сообщения. Теперь давайте запушим всё на сервер в мастер-ветку:

    

Шаг 5. Создаем бета-репозиторий

Не всегда хочется выполнять развертывание сразу: в некоторых случаях необходимо сначала провести тесты. Для этого снова логинимся на выделенном сервере и создаем такую директорию и репо:

    
    

Далее добавляем знакомый хук:

    

После этого:

    

Теперь сохраняем наш ввод комбинацией Ctrl + D, а затем настраиваем разрешения, необходимые для исполнения файла, следующей инструкцией:

    

Возвращаемся в наш репо:

    
    

Настраиваем еще одну директорию (замените путь, указанный после ssh://, на свой):

    

Готово. Теперь перед развертыванием можно сначала запушить бету:

    
    

А уже затем можно развернуть и «боевой» вариант.

Заключение

Мы научились устанавливать Git, настраивать сервер, устанавливать хуки, а также создавать репозитории: локальный и бета для тестирования. Автоматическое развертывание Git на VPS значительно облегчит вам работу над проектом.

Также стоит добавить, что существуют и другие методы развертывания, в частности, без установленного Git на сервере, но при этом ПО должно быть развернуто на локальной машине, поэтому тем, кто предпочитает работать полностью в облаке, такой способ не подойдет. На этом всё, желаем успехов!

1964
5 минут чтения
Средний рейтинг статьи: 5

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server