Простой сервер для команды веб-разработчиков. Часть 3

  1. Пользователи и SSH
  2. Веб-сервер с Apache 2, PHP 5.5, MySQL и настройка поддоменов в DNS
  3. Git-сервер, установка Composer и cron
  4. memcached и FTP-сервер

Перейдём к установке и настройке центральных Git репозиториев, а также установим PHPUnit и cron.

Git

Установка

apt-get install git-core

Репозитории

Ранее мы условились, что у нас будет mygit пользователь, содержащий центральные Git репозитории. Клиенты будут подключаться к mygit пользователю через Git по SSH, однако напрямую по SSH доступ следует отключить.

Сперва создадим mygit пользователя:

adduser mygit

Дальнейшая работа необходима от имени этого пользователя для того, чтобы каталоги и файлы имели соответствующие права, группу и владельца. Войдём под ним:

su mygit

 Создание репозитория

cd
mkdir название_репозитория.git
cd название_репозитория.git/
git init --bare

Клиенты

Тут всё просто:

git clone mygit@сервер:название_репозитория.git конечный_каталог

Работа без ввода пароля

Сейчас любое соединение клиента требует ввода пароля пользователя mygit. Чтобы клиенты могли работать с Git репозиториями пользователя без ввода пароля, необходимо добавить публичные ключи клиентов (содержимое файлов id_rsa.pub) в ~/.ssh/authorized_keys. Подробнее об этом было сказано в первой статье цикла.

Отключаем прямой доступ к SSH

Когда все центральные репозитории созданы, а публичные ключи клиентов добавлены в соответствующий файл, и всё у всех работает, пора отключить прямой доступ к пользователю mygit по SSH.

Здесь и далее работаем от имени root. Узнаем полный путь к оболочке git-shell:

which git-shell

Затем открываем файл /etc/passwd в mcedit (или в другом редакторе, например, nano):

mcedit /etc/passwd

Находим (скорее всего в конце файла) строчку, начинающуюся на mygit, и вместо /bin/bash (или /bin/sh, далее буду указывать /bin/bash) оболочки указываем полный адрес оболочки git-shell. Например, /usr/bin/git-shell. Не удалите перенос строки в конце файла. Сохраняем.

Теперь доступ к пользователю mygit через SSH разрешён только для Git.

Однако ранее использованная команда «su mygit» тоже работать не будет! Поэтому, когда необходимо добавить новый публичный ключ в authorized_keys или создать новый центральный репозиторий, то сперва потребуется в файле /etc/passwd заменить git-shell на прежнюю оболочку (/bin/bash), войти под пользователем (su mygit), произвести необходимые изменения, выйти к root (exit), и затем снова заменить оболочку пользователя в файле /etc/passwd на git-shell. Довольно не удобно, думаю, что в этой ситуации следует поступить как-то иначе, но пока не знаю как.

Composer

Установка

apt-get install curl
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Проверка

composer --version

cron

Установка

apt-get install cron

Конфигурация заданий

crontab -e

В конце файла обязателен перенос строки (пустая строка).

Формат

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

Просмотр списка заданий

crontab -l

Продолжение здесь.

Использованные материалы (полезные ссылки)

  1. http://www.git-scm.com/book/ru/Git-на-сервере-Настройка-Git-на-сервере
  2. http://www.git-scm.com/book/ru/Git-на-сервере-Настраиваем-сервер
  3. http://ru.wikipedia.org/wiki/Cron
  4. Introduction — Composer

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

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