Назад | Перейти на главную страницу

Использование git для развертывания

Есть ли способ развернуть / доставить ветку git на разные серверы через SSH с помощью git? Без настройки сервера git, использования таких сервисов, как github, или подключения к удаленным серверам и извлечения данных с главного сервера.

Мне нужно что-то похожее на rsync или scp. Мое текущее быстрое и грязное решение - это проверка, клонирование в каталог tmp и rsyncing для развертывания сервера.

Во-первых, как мне часто говорили, git не является фреймворком для развертывания. При этом, как сказал Пол Гир, самый простой способ - использовать пульты дистанционного управления.

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

git remote add server1 ssh://username@server1.example.com/home/username/gitrepo

затем выберите свою ветку на исходном компьютере:

git checkout featurebranch1

Наконец, отправьте данные на свой пульт:

git push server1 localbranch:destinationbranch

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

git config push.default upstream

Как я упоминал ранее, удаленный git должен быть пустым репозиторием, чтобы принимать подобные push.

Возможно, использование чистого репозитория недостаточно. В этом случае на принимающей стороне вы можете захотеть что-то сделать, когда вы получите данные, например, возможно, извлеките файлы в другой каталог (помните, репозиторий должен оставаться пустым). Вы можете сделать это с помощью обработчика post-receive, создав файл сценария в / path / to / bare / repository / hooks / post-recieve следующим образом:

#!/bin/sh
GIT_WORK_TREE=/var/www/html git checkout -f

chmod это исполняемый файл. Это проверит master перейти в указанный каталог.

Вы можете нажать на удаленное репо через ssh - это то, что я использую для обновления своих репозиториев на github. Настройте ключи ssh, затем добавьте пульт в форме user @ host: place / to / put / it.git

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

Это простая программа на Ruby, которая очень помогает при развертывании приложения на многих серверах.