Main > Abyss | Linux | Notes | Windows > Как настроить Git репозиторий (заметки гика)

Как настроить Git репозиторий (заметки гика)

28.04.2015 0 comments » Views: 3,130

Geek time

Сегодня решил завести в блоге раздел "Заметки", в котором будут представлены не совсем готовые статьи. У меня очень часто бывают случаи, когда статью с подробными примерами оформлять некогда, но все же хочется накидать заметки, пока они еще не вылетели из головы. Именно поэтому и созрела идея сделать такой раздел. Раздел для лиц 18+ гиков, поэтому  будет много непонятных слов для тех кто "в теме". Остальным придется гуглить или ждать выхода полноценных статей по мотивам заметок.

Начнем с заметки о настройке Git репозитория..

Дано

  • Windows Server 2012 R2 (дальше Store-сервер), который стоит за шлюзом на CentOS (дальше Gate-сервер или site.com)
  • Gate-сервер смотрит в WAN и откликается по домену site.com
  • На Gate-сервере настроен dnsmasq для обслуживания доменов *.loc со всех компьютеров локальной сети
  • На Store-сервере установлен Hyper-V
  • В Hyper-V установлена виртуальная машина на CentOS, которая выступает в роли git репозитория (дальше Git-сервер или git.loc)

Задача

  • Получить возможность работы с Git репозиториями расположенными на Git-сервере из WAN

Настройка Git сервера

  • Добавляем новую виртуалку в Hyper-V
  • Устанавливаем на неё CentOS, с именем хоста: git.loc
  • Основную часть места на hdd монтируем в папку /git
  • Заводим пользователя git:git
  • В папке /git создаем папку repo (/git/repo)
  • Устанавливаем у папки /git/repo владельца root:git и ставим ей права 0770
  • Устанавливаем git и его зависимости:
  • Смотрим какой у машины ip (#ip addr show), если в сети есть dhcp, получаем что-то типа: 192.168.101.106. Если нету dhcp настраиваем ip руками.

Настройка Gate-сервера

  • Добавляем git.loc в dnsmasq, в /etc/dnsmasq.d/hosts.conf добавляем:

    и перезагружаем демона:
  • Добавляем проброс ssh порта из WAN Gate-сервера на Git-сервер. Пробрасываем site.com:9090 в 192.168.101.106:22
  • выполняем правила и при необходимости сохраняем их

Настройка git репозиториев на Git сервере

  • Заходим на Git-сервер пользователем git
  • Переходим в папку /git/repo
  • Создаем папку проекта test (/git/repo/test) и заходим в неё
  • Инициализируем новый голый (bare) репозиторий:

Настройки для доступа из локальной сети

  • Заходим в папку с проектом
  • Инициализируем git хранилище:
  • Добавляем репозиторий
  • Делаем первый коммит
  • Подтверждаем импорт сертификата, вводим пароль от учетки git

Настройки для доступа из WAN:

Тут я опишу, импорт уже готового репозитория. Подразумеваю, что первоначальный коммит уже сделан, если нет делаем по аналогии с "Настройки для доступа из локальной сети", поменяется только настройки origin.

  • Создаем пустую папку проекта
  • Инициализируем git хранилище:
  • Добавляем репозиторий
  • Выкачиваем изменения
  • Подтверждаем импорт сертификата, вводим пароль от учетки git

Безопасность

При необходимости, в ограничиваем коннект только для разрешенных ip. Для этого в /etc/ssh/sshd_config прописываем следующее:

Тут разрешаем доступ только для ip 123.123.123.123 (адрес клиента из wan) с логином git, а так же любому логину из локальной сети.

И не забываем перезагрузить sshd

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

Вот и всё.

P.S. Писал по памяти, возможно что-то упустил. Если это так,  исправлю позже. Как всегда, все вопросы можно задать в комментариях.

Author: | Rating: 4/5 | Tags: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>