The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Создание CVS сервера на OpenBSD (cvs openbsd)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cvs, openbsd,  (найти похожие документы)
From: Mike Belopuhov <mkb@cvs.hnet.spb.ru.> Date: Mon, 2 May 2005 18:21:07 +0000 (UTC) Subject: Создание CVS сервера на OpenBSD Оригинал: http://openbsd.hnet.spb.ru/cvs.html CVS на OpenBSD Содержание: * Начало * Web-интерфейс к CVS репозитарию * Доступ к CVS репозиторию из chroot'а * CVS сервер своими руками Начало Для начала определимся с переменной окружени $CVSROOT. Это может быть как /home/cvs, /var/cvs, /cvsroot или что Вам больше нравится. (Хотя, должен отметить, что в большинстве случаев /cvsroot это плохая идея, если это только не монтируемая файловая система.) # export CVSROOT=/home/cvs # mkdir -p $CVSROOT Далее необходимо определиться с правами на запись в репозиторий. Я предлагаю это сделать с помощью дополнительной группы cvs, в которую, при необходимости, можно будет добавить пользователя. Создадим группу `cvs' и дадим членство в ней пользователю `some_user': # groupadd cvs # usermod -G [groups],cvs some_user Сменим группу владельца /home/cvs и дадим права на запись для группы: # chgrp cvs /home/cvs # chmod 775 /home/cvs Теперь проинициализируем наш CVSROOT. Это необходимо для размещения там служебных данных CVS: $ cvs init Далее необходимо импортировать дерево проекта, который Вы хотели бы хранить в CVS: $ cd some_project $ cvs import some_project R1_0 V1_0 $ cd .. $ cvs checkout some_project C этого момента можно использовать CVS как обычно. Web-интерфейс к CVS репозитарию Установим web-интерфейс к CVS, cvsweb (/usr/ports/devel/cvsweb). Он используется для реализации возможности просматривать изменения в дереве проекта удаленно при помощи web-броузера. Необходимо отредактировать конфигурационный файл cvsweb.conf (/var/www/conf/cvsweb/cvsweb.conf), указав доступные репозитории: @CVSrepositories = ( 'local' => ['My projects', '/home/cvs'], ); Если Apache у вас не запущен, сделайте это: # /usr/sbin/httpd -u можете также указать необходимость запуска Apache при загрузке системы, для этого необходимо отредактировать /etc/rc.conf.local, добавив строку: httpd_flags="-u" К сожалению мы вынуждены понижать безопасность системы, отказываясь от "chrooted Apache", однако нам больше никак не получить доступ к интерпретатору perl (на нем написан cvsweb), а так же к нашему CVS репозиторию. Теперь, набрав в броузере http://localhost/cgi-bin/cvsweb, Вы увидите доступные проекты. Доступ к CVS репозиторию из chroot'а Для начала нам потребуется поддержка NULLFS в ядре (прим.: начиная с 3.4 поддержка NULLFS есть в GENERIC). Конфиг ядра должен содержать строчку: option NULLFS Теперь смонтируем /home/cvs в /var/www/cvs: # mkdir /var/www/cvs # mount_null -o ro /home/cvs /var/www/cvs Теперь доступ к CVS у вас есть из /var/www. Права доступа на точку монтирования выставляются в соответствии с оригиналом (/home/cvs в нашем случае). А теперь самое интересное. Доступ к репозиторию мы получили, но cvsweb ведь написан на perl, а его (perl'а) у нас нету в /var/www. Вот тут появляется три варианта. Первый -- населить /var/www библиотеками, устройствами, программами и прочим. Второй -- переписать (или найти в сети) cvsweb на C и собрать его статически. И третий -- установить и использовать mod_perl. Второй вариант мне нравится больше, но он имеет смысл только в том случае, если у Вас больше нет CGI программ, требующих что-либо вне chroot'а. В любом случае решайте сами. CVS сервер своими руками Делать обмен файлов с сервером мы будем посредством SSH протокола. Делается это весьма просто. Добавляете нужных пользователей в ранее созданную группу cvs. Вниманее! Ранее было написано, что пользовательская учетная запись коммитера в CVS дерево может не содержать указания на домашнюю директорию и на командный интерпретатор по умолчанию. Это не правда. Директория и шелл должны быть. Если с директорией все более-менее понятно, то shell довать бы не хотелось. И не надо. Используйте CVS Restricted Shell cvsrsh (http://openbsd.hnet.spb.ru/files/cvsrsh.tgz) или аналогичные решения. Такая запись вполне подходит (в данном случае GID(cvs) = 1002): mkb:*:1100:1002:Mike:/home/mkb:/usr/local/bin/cvsrsh Следующий шаг это собственно решить на каком порту будет работать SSH сервер. Часто выбирают порт 2022, но можно пользоваться и стандартным портом 22. Если Вы хотите оставить SSH порт по умчанию, то вся настройка закончена, если у Вас, естественно, работает SSH сервер. Отредактируйте /etc/rc.conf.local, добавив загрузку SSH демона при загрузке системы: sshd_flags="" Проверить работоспособность можно так: $ CVSROOT=mkb@localhost:/home/cvs cvs co some_project mkb@localhost's password: U some_project/some_file [and so on...] Если Вы решили делать на 2022 порту, то тоже ничего сложного нет. В /etc/sshd/config добавим: ListenAddress 0.0.0.0:2022 Клиенты тоже должны сделать кое-что, а именно записать себе в ~/.ssh/config следующее: Host your_server Port 2022 Protocol 2 Compression yes Только опция ``Port'' здесь является необходимой. Также может понадобится установить переменную окружения $CVS_RSH: $ export CVS_RSH=ssh _________________________________________________________________

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, kas (??), 00:31, 24/08/2005 [ответить]  
  • +/
    А почему не под Линухой? я понимаю, вопрос больше религиозный, но тем не менее. или у вас серваки собраны на экзотическом железе? :-)
     
  • 2, Lexus (??), 13:05, 03/02/2009 [ответить]  
  • +/
    ну а почему бы и не сделать это под OpenBSD ? :-)
    я вот сейчас помаленьку начинаю вникать в эту ОС, по крайней мере пытаюсь :-) Железа экзотического нет (хотя в плане экзотичности железа - это наверное лучше в сторону NET bsd смотреть), я делаю это чисто из своего интереса :-) руки так сказать чешутся :D
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру