Порты (А возможно ли такое...)
Модератор: arachnid
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Порты
Друзья... Вот возник вопрос, а осуществимо ли следующее, чтобы с помощью cvsup without gui или какого-нибудь бубна скачивать и устанавливать порты не с интернета, а с сервера (на который уже скачаны нужные порты)
Грубо говоря, стоит рабочий сервер FreeBSD 6.2 STABLE - на нем постоянно обновляется дерево портов и собственно порты. И вот я захотел собрать с нуля другой сервак например в другой филиал - и тут мне не захотелось тратить трафик, а захотелось обновиться с рабочего сервачка, на котором все обновлено - реально это или нет?! Если да, то в какую сторону копать. Надеюсь на понимание.
Грубо говоря, стоит рабочий сервер FreeBSD 6.2 STABLE - на нем постоянно обновляется дерево портов и собственно порты. И вот я захотел собрать с нуля другой сервак например в другой филиал - и тут мне не захотелось тратить трафик, а захотелось обновиться с рабочего сервачка, на котором все обновлено - реально это или нет?! Если да, то в какую сторону копать. Надеюсь на понимание.
дайте денег на обновление портов :)
-
skeletor
- Сообщения: 1224
Re: Порты
Есть такая возможность. Вот только не помню в каком файле прописывается. Есть такой файлик /etc/potrsnap = возможно он, а может быть другой. Но, насколько я знаю, надо обновляться через FTP, через NFS - вроде бы не подхватывает.
-
Thug
- Сообщения: 200
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
-
unflag
- Бывший модератор
- Сообщения: 1030
- Статус: здесь могла бы быть ваша реклама
- ОС: Debian testing/Win Server 2008
Re: Порты
Так в конфиге cvsup можно указать сервер, с которого качать... Хошь - в сети, хошь - в интернете, ему без разницы. Какие проблемы с этим?
ЗЫ. Но естественно, cvsup с одной строны не достаточно, на другой стороне должен быть сервер. ФТП имхо было бы проще для такой ерунды. Ну или на одной машине обновлять portsnap-ом дерево, а на другой просто смонтировать по nfs это обновленное дерево. Так даже проще на мой вкус.
ЗЫ. Но естественно, cvsup с одной строны не достаточно, на другой стороне должен быть сервер. ФТП имхо было бы проще для такой ерунды. Ну или на одной машине обновлять portsnap-ом дерево, а на другой просто смонтировать по nfs это обновленное дерево. Так даже проще на мой вкус.
One day! One day, who knows?
Someday! Someday I suppose!
Конференция в jabber: linuxforum@conference.jabber.ru
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: Порты
dd2k писал(а): ↑20.11.2007 12:46Так в конфиге cvsup можно указать сервер, с которого качать... Хошь - в сети, хошь - в интернете, ему без разницы. Какие проблемы с этим?
ЗЫ. Но естественно, cvsup с одной строны не достаточно, на другой стороне должен быть сервер. ФТП имхо было бы проще для такой ерунды. Ну или на одной машине обновлять portsnap-ом дерево, а на другой просто смонтировать по nfs это обновленное дерево. Так даже проще на мой вкус.
согласен - nfs гораздо проще в данном случае.
можно поднять cvs сервер и обновляться с него, но сильно внятной конфигурации в свое время найти не удалось. особо сложного там нет, но когда настраивал, то умудрился слить все (то есть под все платформы и все версии
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
Итак.
1. Поднимаем ftp сервер. (на сервере 1 (LAN-10.0.0.1 - INET-xxx.xxx.xxx.xxx)
2. Конфигурим /etc/make.conf (на сервере 2 (LAN-10.0.0.2)
MASTER_SITE_OVERRIDE=ftp://адрес/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
3. Конфигурим /usr/local/etc/supfile (на сервере 2 (LAN-10.0.0.2)
*default host=10.0.0.1 (сомневаюсь очень, что так)
4. Запускаем на сервере 2
cvsup -g -L 2 /usr/local/etc/supfile
5. Запускаем на сервере 2
portupgrade -a
Все должно браться (скачиваться) отсюда ftp://10.0.0.1
Что именно не будет работать, portupgrade или cvsup??
дайте денег на обновление портов :)
-
iZEN
- Сообщения: 225
Re: Порты
1. Расшарить каталог /usr/ports в read-only в сети по протоколу NFS на сервере.Maestro писал(а): ↑20.11.2007 10:57Друзья... Вот возник вопрос, а осуществимо ли следующее, чтобы с помощью cvsup without gui или какого-нибудь бубна скачивать и устанавливать порты не с интернета, а с сервера (на который уже скачаны нужные порты)
Грубо говоря, стоит рабочий сервер FreeBSD 6.2 STABLE - на нем постоянно обновляется дерево портов и собственно порты. И вот я захотел собрать с нуля другой сервак например в другой филиал - и тут мне не захотелось тратить трафик, а захотелось обновиться с рабочего сервачка, на котором все обновлено - реально это или нет?! Если да, то в какую сторону копать. Надеюсь на понимание.
2. Создать пустой каталог /usr/ports на узле и подмонтировать к нему расшаренный каталог сервера (можно в автомате в /etc/fstab).
3. Прописать WRKDIRPREFIX=/localpath/compile/ на узле в файле /etc/make.conf
Вроде всё.
P.S.
NFS быстрее, чем FTP по скорости в два раза.
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
Продолжаем тему. Теперь траблы с NFS и я не один такой. Вот ссылка трабла с NFS
Точно такая же ошибка
IPFW правда включен, но весь трафик внутри сети по внутреннему интерфейсу разрешен. Только вот NFS сервер на FreeBSD 6.1 STABLE, а клиент на FreeBSD 6.2 STABLE. Но вряд ли проблема в этом. Кто-нибудь сталкивался? В /etc/exports пробовал прописывать по разному - ошибка прежняя. Может я как-то неверно расшарил /usr/ports??? Смотрел настройки mountd - там вроде все верно.
собственно mountd
вот только смущает меня строчка первая
. /etc/rc.subr
может добавить пониже
. /etc/rc.conf
???
Точно такая же ошибка
Код: Выделить всё
router# mount 10.0.0.1:/usr/ports /mnt
[udp] 10.0.0.1:/usr/ports: Permission deniedIPFW правда включен, но весь трафик внутри сети по внутреннему интерфейсу разрешен. Только вот NFS сервер на FreeBSD 6.1 STABLE, а клиент на FreeBSD 6.2 STABLE. Но вряд ли проблема в этом. Кто-нибудь сталкивался? В /etc/exports пробовал прописывать по разному - ошибка прежняя. Может я как-то неверно расшарил /usr/ports??? Смотрел настройки mountd - там вроде все верно.
собственно mountd
Код: Выделить всё
. /etc/rc.subr
name="mountd"
rcvar=`set_rcvar`
command="/usr/sbin/${name}"
required_files="/etc/exports"
start_precmd="mountd_precmd"
extra_commands="reload"
mountd_precmd()
{
if ! checkyesno rpcbind_enable && \
! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
then
force_depend rpcbind || return 1
fi
# mountd flags will differ depending on rc.conf settings
#
if checkyesno nfs_server_enable; then
if checkyesno weak_mountd_authentication; then
rc_flags="${mountd_flags} -n"
fi
else
if checkyesno mountd_enable; then
checkyesno weak_mountd_authentication && rc_flags="-n"
fi
fi
rm -f /var/db/mountdtab
( umask 022; > /var/db/mountdtab )
return 0
}
load_rc_config $name
run_rc_command "$1"вот только смущает меня строчка первая
. /etc/rc.subr
может добавить пониже
. /etc/rc.conf
???
дайте денег на обновление портов :)
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
И еще, при попытке смонтировать NFS на самом серваке также идут ошибки
Так, от второй ошибки вроде избавился, осталась тока первая
В чем же может быть проблема, может rpcbind? Тяжко
Также подразумеваю, что у меня могут быть проблемы, из-за наличия нескольких сетевых и VPN интерфейсов на Сервере 1
Опция -h 10.0.0.1 в настройке nfsd не помогает
Выкладываю все конфиги
/etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 2 -h 10.0.0.1"
mountd_flags="-r"
/etc/exports
/usr -alldirs -maproot=root
Все!
Код: Выделить всё
router# mount -t nfs localhost:/usr /mnt
[udp6] localhost:/usr: RPCPROG_NFS: RPC: Program not registered
[udp] localhost:/usr: NFSPROC_NULL: RPC: Unable to receive; errno = Connection refusedТак, от второй ошибки вроде избавился, осталась тока первая
Код: Выделить всё
router# mount -t nfs localhost:/usr/ports /mnt
[udp6] localhost:/usr/ports: RPCPROG_NFS: RPC: Program not registered
[udp] localhost:/usr/ports: RPCPROG_NFS: RPC: Program not registeredВ чем же может быть проблема, может rpcbind? Тяжко
Также подразумеваю, что у меня могут быть проблемы, из-за наличия нескольких сетевых и VPN интерфейсов на Сервере 1
Опция -h 10.0.0.1 в настройке nfsd не помогает
Выкладываю все конфиги
/etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 2 -h 10.0.0.1"
mountd_flags="-r"
/etc/exports
/usr -alldirs -maproot=root
Все!
дайте денег на обновление портов :)
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: Порты
добавь в /etc/exports адрес клиента, а существование шары можно посмотреть командой showmount -e
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
Оказалось, что надо добавить сам сервак, то есть 10.0.0.1 чтобы монтировать через localhost
а также добавить в rc.conf некую замену старого portmap'a
Код: Выделить всё
nfs_reserved_port_only="YES"
mountd_flags="-r -p 1012"где -p юзабельный порт. После чего все заработало. Спасибо 0ut'у. С portmap_enable="YES" не работало и не монтировалось.
Сейчас все ок, добавил в make.conf
Код: Выделить всё
WRKDIRPREFIX=/localpath/compile/Теперь при монтировании /usr/ports и !!!/usr/src!!! в режиме ro заработал portupgrade. Отдельное спасибо iZEN
Но остались некоторые траблы. Например не хочет работать cvsup... будем думать.
дайте денег на обновление портов :)
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: Порты
Maestro писал(а): ↑21.11.2007 12:59
Оказалось, что надо добавить сам сервак, то есть 10.0.0.1 чтобы монтировать через localhost
а также добавить в rc.conf некую замену старого portmap'a
Код: Выделить всё
nfs_reserved_port_only="YES" mountd_flags="-r -p 1012"
где -p юзабельный порт. После чего все заработало. Спасибо 0ut'у. С portmap_enable="YES" не работало и не монтировалось.
Сейчас все ок, добавил в make.conf
Код: Выделить всё
WRKDIRPREFIX=/localpath/compile/
Теперь при монтировании /usr/ports и !!!/usr/src!!! в режиме ro заработал portupgrade. Отдельное спасибо iZEN
Но остались некоторые траблы. Например не хочет работать cvsup... будем думать.
сколько раз поднимал, никогда ничего лишнего не вписывал - все по хендбуку...
то, что дописал - лишь указывает на работу nfs только по секьюрному порту. это нефига не замена портмапа.
так cvsup и не будет работать через nfs. и через ftp тоже. для него нужен cvs сервер
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
Да. Про cvsup я уже понял. Да и трафика с cvsup никакого почти. 2-5 метров. Сейчас вот портапгрейжусь - уже на 72 метра disfiles качнул и все по межсегменту - красота! Всем большое спасибо! /usr/src монтировать не обязательно!!!!
И все-таки без этих записей ничего не работает на 6.2, на 4.1 - да - работает, так как portmap_enable="YES". А на 6.2 не хотит... Видимо все-таки надо назначать порт для NFS ручками.
И все-таки без этих записей ничего не работает на 6.2, на 4.1 - да - работает, так как portmap_enable="YES". А на 6.2 не хотит... Видимо все-таки надо назначать порт для NFS ручками.
дайте денег на обновление портов :)
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: Порты
Maestro писал(а): ↑21.11.2007 14:18Да. Про cvsup я уже понял. Да и трафика с cvsup никакого почти. 2-5 метров. Сейчас вот портапгрейжусь - уже на 72 метра disfiles качнул и все по межсегменту - красота! Всем большое спасибо! /usr/src монтировать не обязательно!!!!
И все-таки без этих записей ничего не работает на 6.2, на 4.1 - да - работает, так как portmap_enable="YES". А на 6.2 не хотит... Видимо все-таки надо назначать порт для NFS ручками.
да все работает
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
arachnid писал(а): ↑21.11.2007 14:52Maestro писал(а): ↑21.11.2007 14:18Да. Про cvsup я уже понял. Да и трафика с cvsup никакого почти. 2-5 метров. Сейчас вот портапгрейжусь - уже на 72 метра disfiles качнул и все по межсегменту - красота! Всем большое спасибо! /usr/src монтировать не обязательно!!!!
И все-таки без этих записей ничего не работает на 6.2, на 4.1 - да - работает, так как portmap_enable="YES". А на 6.2 не хотит... Видимо все-таки надо назначать порт для NFS ручками.
да все работаети лично у меня на машине, и у нас в серверной. и все на 6ке. и ничего не надо назначать ручками.
Я так подразумеваю что у Вас (лично) на машине один единственный сетевой интерфейс, а у меня их три, два инета, одна локаль и плюсом 6 vpn интерфейсов.
дайте денег на обновление портов :)
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: Порты
Итак подведем итоги.
Допустим у вас несколько филиалов в городе. На каждом из них роутер на FreeBSD 6.2 STABLE. Все филиалы объединены в сеть при помощи VPN+IPSEC. В центральном (главном) офисе стоит также FreeBSD 6.2 STABLE и объединяет все VPN в себе. Про прокси и прочие функции центрального сервера упоминать не буду. Скажу лишь одно, в центральном офисе цена входящего внешнего трафика дешевле чем в филиалах. А внутригород или межсегмент естественно дешев везде.
ЦЕЛЬ - экономия и централизация всей нашей сети филиалов (поле действий и выдумок неограничено
)
В данном примере мы рассматриваем NFS как средство экономии на обновлении (portupgrade) портов (/usr/ports/distfiles)
Первым делом на центральном сервере делаем следующее
#cvsup -g -L 2 /путь/supfile
#portupgrade -a
#pkgdb -F
Далее настраиваем NFS
На центральном сервере добавляем в /etc/rc.conf
добавляем в /etc/exports
ребутимся
С центральным сервером все, проверяем работу mountd
#mount x.x.x.x:/usr /mnt
Если в /mnt смонтировался весь Ваш /usr - то все получилось.
Переходим к серверу филиала А
Добавляем в /etc/rc.conf
Добавляем в /etc/make.conf, после строчек про перл
Все с филиалом А, то же самое с филиалом Б и пр.
ребутимся
Обновляем дерево портов с зеркала
#cvsup -g -L 2 /путь/supfile
#pkgdb -F
#mount x.x.x.x:/usr/src /usr/src
#mount x.x.x.x:/usr/ports /usr/ports
#portupgrade -a
#umount /usr/src
#umount /usr/ports
#pkgdb -F
#pkg_version
наслаждаемся красотой знаков равенства.
Вот и все
Можно отметить на сэкономленные.
ЗЫ: Еще раз всем кто помог решить эту задачку огромное спасибо!
Допустим у вас несколько филиалов в городе. На каждом из них роутер на FreeBSD 6.2 STABLE. Все филиалы объединены в сеть при помощи VPN+IPSEC. В центральном (главном) офисе стоит также FreeBSD 6.2 STABLE и объединяет все VPN в себе. Про прокси и прочие функции центрального сервера упоминать не буду. Скажу лишь одно, в центральном офисе цена входящего внешнего трафика дешевле чем в филиалах. А внутригород или межсегмент естественно дешев везде.
ЦЕЛЬ - экономия и централизация всей нашей сети филиалов (поле действий и выдумок неограничено
В данном примере мы рассматриваем NFS как средство экономии на обновлении (portupgrade) портов (/usr/ports/distfiles)
Первым делом на центральном сервере делаем следующее
#cvsup -g -L 2 /путь/supfile
#portupgrade -a
#pkgdb -F
Далее настраиваем NFS
На центральном сервере добавляем в /etc/rc.conf
Код: Выделить всё
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 2 -h x.x.x.x" #где x.x.x.x IP-адрес интерфейса на котором висят VPN
nfs_reserved_port_only="YES"
mountd_flags="-r -p 3333" #Где 3333 номер порта, по которому будет работать NFSдобавляем в /etc/exports
Код: Выделить всё
/usr -alldirs -maproot=root x.x.x.x #пригодится при проверке работы nfsd и mountd
/usr/src /usr/ports -alldirs a.a.a.a b.b.b.b #где a.a.a.a b.b.b.b IP-адреса VPN интерфейсов филиалов А и Бребутимся
С центральным сервером все, проверяем работу mountd
#mount x.x.x.x:/usr /mnt
Если в /mnt смонтировался весь Ваш /usr - то все получилось.
Переходим к серверу филиала А
Добавляем в /etc/rc.conf
Код: Выделить всё
nfs_client_enable="YES"Добавляем в /etc/make.conf, после строчек про перл
Код: Выделить всё
WRKDIRPREFIX=/localpath/compile/Все с филиалом А, то же самое с филиалом Б и пр.
ребутимся
Обновляем дерево портов с зеркала
#cvsup -g -L 2 /путь/supfile
#pkgdb -F
#mount x.x.x.x:/usr/src /usr/src
#mount x.x.x.x:/usr/ports /usr/ports
#portupgrade -a
#umount /usr/src
#umount /usr/ports
#pkgdb -F
#pkg_version
наслаждаемся красотой знаков равенства.
Вот и все
Можно отметить на сэкономленные.
ЗЫ: Еще раз всем кто помог решить эту задачку огромное спасибо!
дайте денег на обновление портов :)