Обновление Миров: всё работает

Все вопросы по установке, обновлению и эксплуатации FreeBSD: конфигурация и сопровождение.

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Pablo
рядовой
Сообщения: 37
Зарегистрирован: 2009-12-01 20:02:56

Обновление Миров: всё работает

Непрочитанное сообщение Pablo » 2010-09-16 13:00:44

Преамбула: есть у меня несколько Фришных серверов, которым пришла обновиться до очередной версии. В целях самообразования и повышения (ЧСВ) квалификации, решил изучить вопрос массового обновление серверов собственноручно собранным Ядром, Миром, вкупе с Портами.
Для этого:
1. Был взят один из хостов, служивших в своё время "сервером" с счастливым нумером №13.
Этот 'dedicated' сервер был обновлён "естественным" образом, во имя Портов, Сорцов и Всемирного Мейка:

Код: Выделить всё

    csup supfile.source && csup supfile.ports && make -C /usr/ports fetchindex
2. Подрихтованы конфиги, общим числом n-малое:
- 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
- NFS настроен без излишеств,

Код: Выделить всё

    > 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"
3. Собирается и комплектуется добрый донор Айболит, Он под Юниксом сидит:

Код: Выделить всё

> cd /usr/src && make cleanworld cleanhand buildworld kernel installworld && mergemaster -i -F -P -U && shutdown -r now && uname -a && portupgrade --all --force --batch --package
# Как вариант: добавить в pkgtools.conf в разделе PORTUPGRADE_ARGS параметр " --package"
# Как вариант: собрать все пакеты:

Код: Выделить всё

> cd /usr/ports/packages/All && pkg_create -n -v -b \* && portsclean -DLP
4. Дальнейшие действия производятся над пациентами-реципиентами.
- Слегка вправить мозги:
/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
5. Вживление:

Код: Выделить всё

> 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
6. Удовлетворение:

Код: Выделить всё

Abgemacht!
7. Расход траффика в сторону клиента составил ~250-300Мб суммарно. Оценка примерная, получена созерцанием "systat -ifstat" с взятием разности визуальных замеров в контрольных точках. Разницу в 50 Мб обяснить не могу. Может из-за слабого канала и связанных с этим перепосылок пакетов.
Pro & Contra:
+ все сервера теперь в единой программмной конфигурации; Наконец-то!
+ прогнозируется существенное сокращени суммарных затраты времени на обновления; Последующие.
+ минимальное время простоя серверов, равное времени одной перезагрузки; Если это критично.
- Пока что нельзя отключить создание резервных копий порта при его обновлении portupgrade'ом (Perhaps a new option to omit backups will be added in the future); Это занимает некоторое время.
- Можете придумать сами. Если есть желание;-)

На вопрос, на простой, почему не

Код: Выделить всё

freebsd-update  fetch install
?
Есть ответ простой: потому, что у меня ядро не GENERIC, облегчённый WORLD, я также PORTS в конфигурациях, отличный от дефолтных. Поэтому и update должен быть своим.

А вот теперь, соб-сно, амбула: вопрос к уважаемым Знатокам: а как Вы обновляете свои сервера?
(.)(.)
ЗЫ: по тексту возможны очепятки, будьте внимательны!
Unix is simple. It just takes a genius to understand its simplicity – D. Ritchie

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35503
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Обновление Миров: всё работает

Непрочитанное сообщение Alex Keda » 2010-10-10 14:09:08

прикольно
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Re: Обновление Миров: всё работает

Непрочитанное сообщение Гость » 2010-10-12 23:50:38

я если честно не понял зачем ядро и мир компилять на всех машинах, если есть великий могучий cp -Rf
так, что есть ещё над чем поработать =)

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: Обновление Миров: всё работает

Непрочитанное сообщение princeps » 2010-10-13 10:17:00

А если что-то идёт не так, то сразу на всех серверах большой бада-бум?
Я собирался делать это посредством cfengine, но что-то руки не доходят его изучить.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru