Документация по ОС FreeBSD Пятница, 26.04.2024, 05:33
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » cvs

cvsup-mirror - создание зеркала сервера обновлений CVSup [2012]
Начнем с теории... Порты во FreeBSD - это коллекция переносимых приложений. Порты не содержат самого ПО, однако каждый порт содержит инструкции и указания по сборке пакета из "сырцов" - исходных кодов. Поскольку ПО постоянно модифицируется (разработчики выпускают новые версии), соответсвенно дересо портов необходимо время от времени обновлять, чтобы поддерживать его в актуальном соостоянии. Для обновления дерева портов служит утилита csup. А для того, чтобы обнаружить "ближайший" сервер обновлений, можно воспользоваться утилитой fastest_cvsup.
 
Со временем парк обслуживаемых серверов все увеличивается, поэтому решил, что пора поднять собственное зеркало сервера обновлений CVSup. Для реализации данного проекта воспользуемся возможностями cvsup-mirror. Поскольку каналы в Интернет почти что "резиновые" (несколько гигабит/с), то основным критерием считаю то, что с локального сервера обновления будут проходить быстрее.
 
Итак, выполним установку cvsup-mirror из системы портов:
 
# cd /usr/ports/net/cvsup-mirror && make install clean && rehash

Сам порт cvsup-mirror не собирает никаких бинарников, а только создает скрипты и список заданий в cron. Настройка происходит в режиме диалога. Постараюсь дать подробные комментарии к поставленным вопросам.
 
Этап 1. Общая информация
 
Первый вопрос: с каким "вышестоящим" севрером будет выполняться синхронизация? 

Master site for your updates [cvsup-master.freebsd.org]? cvsup5.ua.freebsd.org

Я указал cvsup5.ua. freebsd.org, исходя из результата поиска наиболее оптимального сервера обновлений утилитой fastest_cvsup. Вывод результата:
 
>>  Speed Daemons:
     - 1st: cvsup6.ua.freebsd.org
     - 2nd: cvsup5.ua.freebsd.org
     - 3rd: cvsup11.ua.freebsd.org 

Почему не cvsup6.ua.freebsd.org, а cvsup5.ua.freebsd.org? Думаю, что не один я пользуюсь утилитой fastest_cvsup и сервер cvsup6.ua.freebsd.org скоро окажется перегружен.
 
Стоит иметь ввиду, что "главные" зеркала FreeBSD находятся в США и Дании, однако строго не рекомендуется использовать их для обновления, поэтому запуск утилиты fastest_cvsup выполнялся с ключами -c ua (fastest_cvsup -c ua).
 
Cтоит иметь ввиду, что c региональных серверов обновления будут выполняться намного быстрее. Поиск оптимального сервера обновлений советую выполнить самостоятельно, указывая при поиске код страны.
 
Второй вопрос: с какой периодичностью запускать обновления файлов?
 
How many hours between updates of your files [1]? 3

По умолчанию предлагают выполнять синхронизацию раз в час, однако раз в три часа - вполне достаточно.
 
Этап 2. Настройка зеркал
 
Первый вопрос: создавать ли зеркало главного хранилища исходников?
 
Do you wish to mirror the main source repository [y]? y

Соглашаться обязательно, поскольку хотя и не обязательно хранить остальные зеркала, создание зеркала  главного хранилища контролируется.
 
Второй вопрос: путь в файловой системе для хранения данных?
 
Where would you like to put it [/home/ncvs]? /db5/cvsupd-mirror

Каталог для хранения зеркала указал на несистемном диске, чтобы не нагружать системный диск во время обновлений.
 
Третий вопрос: создавать ли зеркало сайта (данных WWW)?
 
Do you wish to mirror the installed World Wide Web data [y]? n

Такой необходимости не вижу, поэтому отказываюсь.
 
Четвертый вопрос: создавать ли зеркало базы данных багов?
 
Do you wish to mirror the GNATS bug tracking database [y]? n

Такой необходимости не вижу, поэтому отказываюсь.
 
Пятый вопрос: создавать ли зеркало архива списка рассылок?
 
Do you wish to mirror the mailing list archive [y]? n

Такой необходимости не вижу, поэтому отказываюсь.
 
Этап 2. Настройка системных свойств
 
Первый вопрос: уникальный непривилегированный идентификатор пользователя для запуска клиента?
 
Unique unprivileged user ID for running the client [cvsupin]? cvsupin

Второй вопрос: уникальный непривилегированный идентификатор группы для запуска клиента?
 
Unique unprivileged group ID for running the client [cvsupin]? cvsupin

Третий вопрос: уникальный непривилегированный идентификатор пользователя для запуска сервера?
 
Unique unprivileged user ID for running the server [cvsup]? cvsup

Четвертый вопрос: уникальный непривилегированный идентификатор группы для запуска сервера? 

Unique unprivileged group ID for running the server [cvsup]? cvsup

Этап 3. Настройка логгирования
 
Первый вопрос: Syslog facility, используемый для логирования?
 
Syslog facility for the server log [daemon]? daemon

Этап 4. Настройка ограничений
 
Первый вопрос: максимальное количество одновременных подключений?
 
Maximum simultaneous client connections [8]? 15

CVSup во время работы не сильно нагружает сеть, однако на CPU и HDD нагрузка будет более интенсивная. Попробуем остановиться на количестве одновременных подключений - 15. Для локальных серверов обновлений достаточно будет и 5. 
 
На этом шаге непосредственная настройка завершена. Следующий шаг - установка зависимостей (например - cvsup, поскольку при наличии в системе csup мало кто устанавливает еще и cvsup). По завершению установок зависимостей следует финальный диалог. Соглашаемся со всем:
 
 You need a group "cvsup".
 Would you like me to create it [y]? y
 Done.
 You need a user "cvsup".
 Would you like me to create it [y]? y
 Done.
 You need a group "cvsupin".
 Would you like me to create it [y]? y
 Done.
 You need a user "cvsupin".
 Would you like me to create it [y]? y
 Done.
 Would you like me to create cvsupin's home directory (/home/cvsupin) [y]? y
 Fixing ownerships and modes in "/usr/local/etc/cvsup".
 Setting up links and directories for distributions.
   Linking distrib.self -> ..
   Linking FreeBSD.cvs -> /db5/mirror-cvsupd
   Fixing ownerships and modes in /db5/mirror-cvsupd ... done.
   Linking FreeBSD-www.current -> SKIP
   Linking FreeBSD-gnats.current -> SKIP
   Linking FreeBSD-mail.current -> SKIP 
 
 Would you like me to set up the syslog logging [y]? y
 Setting up server logging in "/etc/syslog.conf".
 Creating "/var/log/cvsupd.log".
 Giving syslogd a kick in the pants.
 Adding cvsup and cvsupd log entry to "/etc/newsyslog.conf".
 Done. 
 
 Would you like me to set up your crontab for updates every 3 hours [y]? y
 Scheduling updates every 3 hours in "/etc/crontab".
 Done.  The first update will be 5 minutes from now, at 03:51.
 The cvsupd server will be started automatically after the first update,
 and whenever you reboot.

По завершению настройки cvsup-mirror запустит первое обновление ровно через пять минут после установки. Через 5 минут в каталоге, заданном при настройке (в моем случае это /db5/mirror-cvsupd), должны появиться первые файлы. Это свидетельство того, что клиент cvsup настроен корректно и работает. Если же этого не случилось - смотрите лог /var/log/cvsup.log для выяснения причины.
 
Следующий шаг - запуск серверной части. Добавим в rc.conf опцию запуска сервера:
 
# echo '# CVSup mirror server' >> /etc/rc.conf
# echo 'cvsupd_enable="YES"' >> /etc/rc.conf

Собственно, старт демона:
 
# sh /usr/local/etc/rc.d/cvsupd start

Проверяем, запустилась ли серверная часть:
 
# sh /usr/local/etc/rc.d/cvsupd status
cvsupd is running as pid 57247.

Кажется все в порядке... Теперь осталось более детально настроить правила доступа. Задать ограничения можно в файле /usr/local/etc/cvsup/cvsupd.access. В моем случае содержание файла получилось такое:
 
+192.168.206.0/24 # Разрешаем подключаться с локальной сети без ограничений
-0.0.0.0/0 15 # Общее ограничение одновременных подключений
-0.0.0.0/0/32 1 # Только одно подключение с хоста
+0.0.0.0/0 # При достижении этого правила, разрешаем подключение клиента 

По завершению синхронизации сервер готов к использованию. Не забудьте только открыть в файрволе порт 5999 - именно к этому порту будут подключаться клиенты для загрузки обновлений.
 
Теперь попробуем обновиться с сервера. Создадим конфигурационный файл обновления /etc/csup/ports-all следующего содержания:
 
 *default host=cvsup.muff.kiev.ua
 *default base=/var/db
 *default prefix=/usr
 *default release=cvs tag=.
 *default delete use-rel-suffix
 *default compress ports-all

Предварительно удалим каталог портов и запустим обновление:
 
# rm -R /usr/ports
# csup -g -L 2 /etc/csup/ports-all

Порты обновляются, значит сервер обновлений работает корректно. Сервер открыт для всех - можете пользоваться. Адрес сервера уже указывался в конфигурационном файле - cvsup.muff.kiev.ua.


Источник: http://muff.kiev.ua/content/cvsup-mirror-sozdanie-zerkala-servera-obnovlenii-cvsup
Категория: cvs | Добавил: oleg (04.01.2012) | Автор: muff
Просмотров: 1329 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024