Настройка своего CVSup сервера FreeBSD
Если у вас в компании больше 2 серверов под FreeBSD, есть смыcл настроить свой сервер CVSup. Стоит сделать это по целому ряду причин, во первых вы обновляете всего один сервер, меньше загружая внешний канал, во вторых обновлять с внутреннего сервера остальные сервера будет быстрее. Итак, начнем:
cd /usr/ports/net/cvsup-mirror make install clean |
При установке, возможна сложность, если у вас в /etc/make.conf установлено BATCH=YES, на время установки cvsup-mirror, закомментируйте эту переменную, иначе вместо установки вы получите сообщение:
===> cvsup-mirror-1.3_7 is an interactive port. |
И установка производится не будет.
Сам порт cvsup-mirror не собирает ничего бинарного, а только создает стартовые скрипты и задачи в cron, вся установка происходит в диалоговом режиме.
Первый вопрос, с какого официального сервера cvsup FreeBSD будет производится синхронизация:
At this point, I am just gathering information. I will not touch your system until you type "make install". Master site for your updates [cvsup-master.freebsd.org]?cvsup7.ua.freebsd.org |
Я указываю cvsup7.ua.freebsd.org, ближайший, наиболее стабильно работающий сервер на данный момент.
Второй вопрос, с какой переодичностью запускать обновления:
How many hours between updates of your files [1]?24 |
По умолчанию предлагается раз в час, но по моему мнению достаточно раз в сутки.
Теперь идет серия вопросов относительно того, что именно мы будем держать в своем репозитарии.
Первый вопрос, обязательно нужно соглашаться, касается главного хранилища исходных текстов:
Now you must decide which sets of files you wish to make available from your mirror site. You can choose any combination, and you can put each set anywhere you want to on your disks. Although each set is optional, we strongly encourage every mirror site to carry at least the main source repository. Do you wish to mirror the main source repository [y]? |
Далее следует вопрос в какой директории хранить получаемые файлы:
Where would you like to put it [/home/ncvs]? |
С этим тоже можно согласиться.
На все последующие вопросы я отвечаю отказом, поскольку мне не нужна копия WWW части, списка рассылки и GNATS базы ошибок.
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 |
Далее идут уже непосредственные настройки от какого пользователя запускать клиента и сервер cvsup, как писать log файлы работы и сколько соединений принимать(эту цифру следует определить исходя из числа обслуживаемых серверов.). Все перечисленное я оставил по умолчанию:
For security reasons, both the CVSup client and server should run under their own unique user and group IDs. These IDs should have no special access privileges. Normally, the user:group "cvsupin:cvsupin" is used for the client and "cvsup:cvsup" is used for the server, but you can choose other names if you wish. At "make install" time, I will create the users and groups, if they don't already exist. Use unique user and group IDs for these. Do not use "nobody", "nonroot", or "nogroup". Unique unprivileged user ID for running the client [cvsupin]? Unique unprivileged group ID for running the client [cvsupin]? Unique unprivileged user ID for running the server [cvsup]? Unique unprivileged group ID for running the server [cvsup]? The CVSup server does its logging via syslog. At "make install" time, I will set up the logging for you, if necessary. I will use the "!program" feature of syslog to keep your CVSup log messages separate from the messages of your other daemons. Syslog facility for the server log [daemon]? You can control the load on your machine by limiting the number of clients that the CVSup server will serve at once. CVSup won't load your network especially heavily, but it is more CPU and disk intensive than most other file server software. Maximum simultaneous client connections [8]? |
На этом непосредственная интерактивная настройка завершена. Теперь следует установка. При этом, если cvsup не был установлен (а при наличии в системе csup, сейчас мало кто устанавливает cvsup), он установится автоматически.
И финальный диалог установки, со всем что просят надо соглашаться, если вы уж решили установить cvsup-mirror.
Installing files You need a group "cvsup". Would you like me to create it [y]? Done. You need a user "cvsup". Would you like me to create it [y]? Done. You need a group "cvsupin". Would you like me to create it [y]? Done. You need a user "cvsupin". Would you like me to create it [y]? Done. Would you like me to create cvsupin's home directory (/home/cvsupin) [y]? Fixing ownerships and modes in "/usr/local/etc/cvsup". Setting up links and directories for distributions. Linking distrib.self -> .. Linking FreeBSD.cvs -> /home/ncvs Fixing ownerships and modes in /home/ncvs ... 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]? 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 24 hours [y]? Scheduling updates every 24 hours in "/etc/crontab". Done. The first update will be 5 minutes from now, at 10:58. The cvsupd server will be started automatically after the first update, and whenever you reboot. |
Порт делает все самостоятельно и по окончании установки в первый раз обновление запустится, через 5 минут по окончании установки. То есть через 5 минут можно проверить, если в /home/ncvs/ начали появляться файлы — клиент cvsup настроен и работает нормально.
Остается запустить сервер cvsup, для этого, нужно, установить разрешение на его запуск:
echo cvsupd_enable="YES" >> /etc/rc.conf |
и запустить
/usr/local/etc/rc.d/cvsupd start |
Проверим, запустился ли он:
sockstat -l|grep cvsupd cvsup cvsupd 24713 3 tcp4 *:5999 *:* |
cvsupd запустился и работает. Теперь надо настроить клиентов на всех серверах которые вы собираетесь обновлять с этого CVSup сервера, нужно прописать ip адрес или имя вашего сервера в файлах ports-supfile и stable-supfile в переменной *default host.
Когда дерево исходных текстов синхронизируется, можно обновляться с него. Первая синхронизация займет максимум час, при слабом канале.