Настройка сервера. Gitolite — хостинг git-репозиториев
This post is part of a series:
- Год облачного хостинга от Amazon — бесплатно
- Настройка сервера. Gitolite — хостинг git-репозиториев
- Настройка сервера. Создаем и разворачиваем django-проект
Содержание:
В предыдущей статье я рассказал как создать свой бесплатный (в течении года) сервер на облаке от Amazon Web Services. Пришла пора настроить на нем среду для удобной разработки.
Ниже будет описано создание собственного Git репозитория с помощью Gitolite.
Note
Все инструкции в этой статье приводятся для системы Ubuntu Oneiric, пользователь ubuntu.
Начало работы
Первые мои команды на новом сервере:
# Обновление системы (да мне нравятся свежие пакеты)
sudo apt-get update
sudo apt-get upgrade
# Утилиты для сборки
$ sudo apt-get install build-essential
# Конфигурирование локалей
$ sudo locale-gen ru_RU.UTF-8
$ sudo locale-gen en_US.UTF-8
$ sudo dpkg-reconfigure locales
Установка Gitolite
Git распределенная система контроля версий и не нуждается в хостинг-сервере. Но в таком случае для доступа к репозиторию необходим доступ к файловой системе, в которой он расположен. В противном случае для синхронизации (команды разработчиков или кода на сервере) необходим Git хостинг с сетевым доступом.
Самые распространенные решения: Gitolite и Gitosis. Я предпочитаю Gitolite из-за удобства настройки и установки.
Для начала установим Git и Gitolite из пакетов:
# Установка git и gitolite
$ sudo apt-get install git gitolite
Теперь нужно создать владельца репозиториев. Обычно используется пользователь с логином: git. Создадим его и выполним под ним настройку Gitolite:
# Создание пользователя git
$ sudo useradd -m git
# Копируем свой публичный ssh rsa ключ из домашней директории
# для настройки управления репозиторием
$ sudo cp ~/.ssh/id_rsa.pub /home/git/admin.pub
# Заходим под пользователем git и заканчиваем настройку
$ sudo su git
$ cd
$ gl-setup admin.pub
В этот момент откроется Vim с настройками репозитория по-умолчанию. Сохраняя спокойствие, нажмите :x для сохранения и выхода из редактора. Нажмите Ctrl+D для окончания сеанса пользователя git. Поздравляю первый этап настройки закончен, можете закрыть соединение с сервером, дальнейшая настройка будет произведена на вашей локальной машине.
Управление Gitolite
Управление Gitolite осуществляется с помощью специального репозитория gitolite-admin который уже создан у вас на сервере. Добавление репозиториев и пользователей, изменения конфигурации производятся через стандартные Git операции (commit, push).
Скачаем этот репозиторий на ваш локальный компьютер:
Note
Здесь, и далее, я работаю с адресом моей созданной на Amazon VPS: awsdemo.us.to. Для вас он будет отличаться. Как создать и прикрепить свой домен было рассказано в прошлой статье.
# -- Ваша локальная машина --
# git clone git@<your_vps_domain>:gitolite-admin.git
git clone git@awsdemo.us.to:gitolite-admin.git
Если вы ничего не напутали с ключами и настройками, то gitolite-admin будет скопирован на ваш компьютер.
Note
gitolite-admin включает в себя две папки. Папка keys включает в себя файлы с публичными частями rsa ключей пользователей репозитория. Папка conf содержит файлы конфигурации gitolite.
Посмотрим на файл conf/gitolite.conf:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
Он говорит нам о том, что на нашем хостинге доступно два репозитория: gitolite-admin и testing, при чем к первому из них доступ на чтение и запись имеет только пользователь с ключом сохраненным в файле keys/admin.pub, а ко второму все пользователи.
Добавим еще одну запись для нашего будущего Django-проекта, я назову его awsdemo:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
repo awsdemo
RW+ = admin
Сохраним изменения и отправим их на сервер:
$ git commit -am 'Add django repo'
$ git push origin master
Теперь можно создавать сам проект и привязывать его к удаленному хостингу:
# Создание директории для будущего проекта
$ mkdir -p ~/Projects/awsdemo
$ cd ~/Projects/awsdemo
# Создание репозитория
$ git init
# Привязываем его к нашему хостингу
$ git remote add origin git@awsdemo.us.to:awsdemo.git
# Первый коммит
$ touch README
$ git add .
$ git commit -am "Initial commit"
# Отправляем изменения на сервер
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 210 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@ec2-174-129-57-41.compute-1.amazonaws.com:django.git
* [new branch] master -> master
Все, новый репозиторий создан и доступен для клонирования из Gitolite
Продолжение: Настройка сервера. Создаем и разворачиваем django-проект