Для этого:
1. Был взят один из хостов, служивших в своё время "сервером" с счастливым нумером №13.
Этот 'dedicated' сервер был обновлён "естественным" образом, во имя Портов, Сорцов и Всемирного Мейка:
Код: Выделить всё
csup supfile.source && csup supfile.ports && make -C /usr/ports fetchindex- MYKERNEL == включены все используемые на серверах устройства (преимущественно сетевые интерфейсы). Впрочем, почти всё необходимое можно загрузить из /boot/loader.conf
- /ect/exports == ad libitum, в моём случае это экспорт 3 каталогов в 2 сети:
Код: Выделить всё
> grep _настройки_экспорта_ /etc/exports
/usr/ports /usr/src /usr/obj -ro -network 172.16.0.0 -mask 255.255.255.248
/usr/ports /usr/src /usr/obj -ro -network 10.55.32.0 -mask 255.255.255.0Код: Выделить всё
> grep _настройкиNFS_ /etc/rc.conf
nfs_client_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-t -n 6"
nfsv4_server_enable="NO"
rpcbind_enable="YES"
mountd_enable="YES"
mountd_flags="-n"Код: Выделить всё
> cd /usr/src && make cleanworld cleanhand buildworld kernel installworld && mergemaster -i -F -P -U && shutdown -r now && uname -a && portupgrade --all --force --batch --package# Как вариант: собрать все пакеты:
Код: Выделить всё
> cd /usr/ports/packages/All && pkg_create -n -v -b \* && portsclean -DLP- Слегка вправить мозги:
/boot/loader.conf == quantum satis, добавить то, что не вошло в MYKERNEL
make.conf, src.conf, /var/db/ports/*/options == полная идентичность, чтобы не получать лишний раз ERROR'ом в фейс. Легко достигается простым копированием конфигов с донора.
pkgtools.conf == пока что использую индентичные конфиги.IMHO, на реципиенте можно оставить дефолтные конфиги.
- Ампутиция:
Код: Выделить всё
> rm -rf /usr/obj/* /usr/src/* /usr/ports/*Код: Выделить всё
> mount_nfs -o ro 172.16.0.3:/usr/src /usr/src
> mount_nfs -o ro 172.16.0.3:/usr/obj /usr/obj
> mount_nfs -o ro 172.16.0.3:/ports/src /usr/portsКод: Выделить всё
> grep nfs /etc/fstab
10.55.32.46:/usr/src /usr/src nfs ro,noauto 0 0
10.55.32.46:/usr/obj /usr/obj nfs ro,noauto 0 0
10.55.32.46:/usr/ports /usr/ports nfs ro,noauto 0 0Код: Выделить всё
> cd /usr/src && make installworld && make installkernel && mergemaster -i -F -P -U && portupgrade --all --force --use-packages-only --uninstall-shlibs && make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs && shutdown -r now && uname -aКод: Выделить всё
Abgemacht!Pro & Contra:
+ все сервера теперь в единой программмной конфигурации; Наконец-то!
+ прогнозируется существенное сокращени суммарных затраты времени на обновления; Последующие.
+ минимальное время простоя серверов, равное времени одной перезагрузки; Если это критично.
- Пока что нельзя отключить создание резервных копий порта при его обновлении portupgrade'ом (Perhaps a new option to omit backups will be added in the future); Это занимает некоторое время.
- Можете придумать сами. Если есть желание;-)
На вопрос, на простой, почему не
Код: Выделить всё
freebsd-update fetch installЕсть ответ простой: потому, что у меня ядро не GENERIC, облегчённый WORLD, я также PORTS в конфигурациях, отличный от дефолтных. Поэтому и update должен быть своим.
А вот теперь, соб-сно, амбула: вопрос к уважаемым Знатокам: а как Вы обновляете свои сервера?
(.)(.)
ЗЫ: по тексту возможны очепятки, будьте внимательны!
