URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 86337
[ Назад ]

Исходное сообщение
"Обновление нескольких одинаковых машин"

Отправлено Николай , 20-Авг-09 13:17 
Здравствуйте!
Встретился с интересной задачкой:
Имеется 100 серверов FreeBSD с одинаковым железом, одинаковым софтом. Разница лишь в /var/log/* и /etc/rc.conf

Нужно обновить на всех машинах систему. Как это сделать наиболее граматно?


Содержание

Сообщения в этом обсуждении
"Обновление нескольких одинаковых машин"
Отправлено Michael , 20-Авг-09 13:29 
>Нужно обновить на всех машинах систему. Как это сделать наиболее граматно?

freebsd‐update?


"Обновление нескольких одинаковых машин"
Отправлено SubGun , 20-Авг-09 15:34 
А зачем?

"Обновление нескольких одинаковых машин"
Отправлено Николай , 20-Авг-09 16:27 
>А зачем?

Вопрос такой задают, при устройстве на работу. Нужно что-то умное отвечать )


"Обновление нескольких одинаковых машин"
Отправлено Michael , 20-Авг-09 17:06 

>Вопрос такой задают, при устройстве на работу. Нужно что-то умное отвечать )
>

еще спрашивают, как установить систему на 100 машин )) или юзера завести )))


"Обновление нескольких одинаковых машин"
Отправлено Pahanivo , 20-Авг-09 17:14 
Может тебе не надо на эту работу? )) А тут вдальнейшем не надо сотни глупых вопросов ))

"Обновление нескольких одинаковых машин"
Отправлено Николай , 20-Авг-09 20:20 
>Может тебе не надо на эту работу? )) А тут вдальнейшем не
>надо сотни глупых вопросов ))

я просто предположил, что может быть чего-то важного не знаю про обновление системы...


"Обновление нескольких одинаковых машин"
Отправлено angra , 20-Авг-09 20:39 
Мне тоже стало любопытно придумали ли БСДшники что-нибудь умное в этом плане, если не уровня RHEL/SLES, так хотя бы просто прокси для пакетов какой-нибудь дабы избежать многократной загрузки и компилирования. Познавательный холиворчик не помешал бы :)

"Обновление нескольких одинаковых машин"
Отправлено bill , 20-Авг-09 20:45 
>Мне тоже стало любопытно придумали ли БСДшники что-нибудь умное в этом плане,
>если не уровня RHEL/SLES, так хотя бы просто прокси для пакетов
>какой-нибудь дабы избежать многократной загрузки и компилирования. Познавательный холиворчик не помешал
>бы :)

Один уже ответил "А зачем?". Сейчас подтянутся другие и скажут, что это не нужно :D


"Обновление нескольких одинаковых машин"
Отправлено Pahanivo , 21-Авг-09 07:17 
>Мне тоже стало любопытно придумали ли БСДшники что-нибудь умное в этом плане,
>если не уровня RHEL/SLES, так хотя бы просто прокси для пакетов
>какой-нибудь дабы избежать многократной загрузки и компилирования. Познавательный холиворчик не помешал
>бы :)

В BSD как раз все нормально. Можно ченидь придумать.
Тут задача явно не корректно стоит - она сильно упрощена, в реалиях таково не встретить.
Самый (ИМХО) простой вариант обновить один сервак, срезать с него дамп, а потом массово накатить этот дамп на остальные серваки.


"Обновление нескольких одинаковых машин"
Отправлено SubGun , 21-Авг-09 10:41 
А как быть потом с /etc? /usr/local/etc потом можно перезалить, а вот для /etc выполнять пофайловый diff, а потом вручную исправлять?

"Обновление нескольких одинаковых машин"
Отправлено Pahanivo , 21-Авг-09 11:53 
>А как быть потом с /etc? /usr/local/etc потом можно перезалить, а вот
>для /etc выполнять пофайловый diff, а потом вручную исправлять?

1) прочитай условий этой абстрактной задачи
2) предварительно сдампить конкретные файлы и каталоги, а потом вернуть на место вам мешают религиозные убеждения?


"Обновление нескольких одинаковых машин"
Отправлено ronin , 21-Авг-09 12:30 
>>А как быть потом с /etc? /usr/local/etc потом можно перезалить, а вот
>>для /etc выполнять пофайловый diff, а потом вручную исправлять?
>
>1) прочитай условий этой абстрактной задачи
>2) предварительно сдампить конкретные файлы и каталоги, а потом вернуть на место
>вам мешают религиозные убеждения?

Да и дампить-то незачем. Можно и попроще сделать.
1. (как уже было сказано) проапгрейдить 1 тачку.
2. rsync'ом синхронизировать (по SSH - чтоб не крутить rsync демоном) со всеми остальными тачками; а чтоб не перезаписылись нужные файлы - юзать опцию --exclude=PATTERN или --exclude-from=FILE, которой подсунуть список исключаемых файлов (в первом варианте - прямо в команде, во втором - список в файле).

Главная проблема - чтоб юзера и группы на всех тачках были одинаковыми (что не гарантированно даже если все сервисы на тачках одинаковы), иначе могут бить проблемы с пермишенами на файлы. Но для этого есть у rsync'а опция --dry-run, которая только покажет, что, собственно, будет выполняться при синхронизации, но не выполняя саму синхронизацию (типа демо-моде). И здесь ведущими собаководами рекомендуются к употреблению опции --verbose --progress для наглядности. Типа посмотрел, убедился что всё пойдёт нормально - синхронизируй.

Удачи.

respect,
ronin


"Обновление нескольких одинаковых машин"
Отправлено Pahanivo , 21-Авг-09 15:18 
>[оверквотинг удален]
>могут бить проблемы с пермишенами на файлы. Но для этого есть
>у rsync'а опция --dry-run, которая только покажет, что, собственно, будет выполняться
>при синхронизации, но не выполняя саму синхронизацию (типа демо-моде). И здесь
>ведущими собаководами рекомендуются к употреблению опции --verbose --progress для наглядности. Типа
>посмотрел, убедился что всё пойдёт нормально - синхронизируй.
>
>Удачи.
>
>respect,
>ronin

а как rsycn отнесется к файлам с флагами типа schg ?


"Обновление нескольких одинаковых машин"
Отправлено ronin , 21-Авг-09 18:20 
>[оверквотинг удален]
>>при синхронизации, но не выполняя саму синхронизацию (типа демо-моде). И здесь
>>ведущими собаководами рекомендуются к употреблению опции --verbose --progress для наглядности. Типа
>>посмотрел, убедился что всё пойдёт нормально - синхронизируй.
>>
>>Удачи.
>>
>>respect,
>>ronin
>
>а как rsycn отнесется к файлам с флагами типа schg ?

Есть у него мнооого вкусностей. В том числе и опции --acls (отвечает за списки контроля доступа), --xattrs (отв. за расширенные атрибуты файловых систем).
Вот --xattrs для этого и пригодится. Я юзаю его на линухе для синхронизации файловых систем ext3fs, где используются extended attributes (lsattr/chattr - линуксовые аналоги schg) - расширенные атрибуты сохраняются прекрасно. Думаю, так же должно работать с schg флагами на бзде (сам не проверял).

respect,
ronin


"Обновление нескольких одинаковых машин"
Отправлено angra , 21-Авг-09 16:39 
>В BSD как раз все нормально. Можно ченидь придумать.

Гениальная фраза. Чего-нибудь придумать можно везде, варианты с дампом и rsync посмешили,  а нормальных механизмов смотрю нет, БСД как всегда позади планеты всей ;)


"Обновление нескольких одинаковых машин"
Отправлено Pahanivo , 21-Авг-09 16:41 
>>В BSD как раз все нормально. Можно ченидь придумать.
>
>Гениальная фраза. Чего-нибудь придумать можно везде, варианты с дампом и rsync посмешили,
> а нормальных механизмов смотрю нет, БСД как всегда позади планеты
>всей ;)

что иммено подразумеваешь под нормальным механизмом ? )


"Обновление нескольких одинаковых машин"
Отправлено angra , 21-Авг-09 16:52 
Ну например такой: если обновление задевает только один установленный пакет/порт, то только этот пакет должен быть один раз загружен из мира, при необходимости один раз скомпилирован и установлен на все машины, которые в нем нуждаются. С задачей в исходном топике конечно справится rsync, но вот для более менее реальной ситуации он не подходит. Неужели никаких вариантов кроме создания полного зеркала или загрузки по сети для фрюхи не придумали?

"Обновление нескольких одинаковых машин"
Отправлено reader , 21-Авг-09 17:11 
собирать и использовать пакеты в freeBSD вроде не запрещается :)

"Обновление нескольких одинаковых машин"
Отправлено ronin , 21-Авг-09 18:09 
>Ну например такой: если обновление задевает только один установленный пакет/порт, то только
>этот пакет должен быть один раз загружен из мира, при необходимости
>один раз скомпилирован и установлен на все машины, которые в нем
>нуждаются. С задачей в исходном топике конечно справится rsync, но вот
>для более менее реальной ситуации он не подходит. Неужели никаких вариантов
>кроме создания полного зеркала или загрузки по сети для фрюхи не
>придумали?

Есть и на такой случай один вариант. Кажется, где-то в официальной доке он описівается (тоесть, єто не творчество "шаловливіх ручек"):

Ставится 1 эталонная тачка, с которой по NFS експортируется /usr, /usr/ports, или что Вам необходимо. Ну а дальше, сами понимаете - на эталонной тачке portsnap/portupgarde - и понеслась...
А остальные тачки просто юзают этот экспорт как свой родной. Тоесть, все телодвижения выполняются только 1 раз - на эталонной тачке, но становятся доступными всем тачкам, которые юзают этот экспорт.

Но если апгрейд задевает не только приложения/библиотеки, но и кернел, то боюсь простым NFS-sharing'ом не обойтись - придётся-таки на каждой тачке кернел подменять ручками/rsync'ом.


respect,
ronin


"Обновление нескольких одинаковых машин"
Отправлено Warhead Wardick , 26-Авг-09 20:12 
>Неужели никаких вариантов кроме создания полного зеркала
>или загрузки по сети для фрюхи не придумали?

Angra, вот ты вроде бы умный мужик, а троллишь как [beeep] :(
Вот давай я про Линукс рассуждать начну основываясь на ответах начинающих убунтятников?
(На всякий случай - я с ним с 1994-5, поэтому это просто пример)

Судя по вопросу - ожидаемым ответом будет:

На одной тачке (master) обновляем порты, собираем _пакет_ для нужного порта, super_proga-1.1.1.tbz кидается на ftp (анонимам должно быть разрешён даунлоад).
На остальных тачках pkg_add ftp://master.lavka.org/pub/FreeBSD/ports/packages/whatever/s...

Есть и другие варианты, но я думаю ожидается именно такой ответ.


"Обновление нескольких одинаковых машин"
Отправлено bill , 26-Авг-09 20:34 
>[оверквотинг удален]
>(На всякий случай - я с ним с 1994-5, поэтому это просто
>пример)
>
>Судя по вопросу - ожидаемым ответом будет:
>
>На одной тачке (master) обновляем порты, собираем _пакет_ для нужного порта, super_proga-1.1.1.tbz
>кидается на ftp (анонимам должно быть разрешён даунлоад).
>На остальных тачках pkg_add ftp://master.lavka.org/pub/FreeBSD/ports/packages/whatever/s...
>
>Есть и другие варианты, но я думаю ожидается именно такой ответ.

По-моему вряд ли. Быстрей всего имелось в виду что-нибудь типа spacewalk. Или на крайний случай кеширующий репозиторий на nginx. Это для линукса.


"Обновление нескольких одинаковых машин"
Отправлено аноним , 26-Авг-09 20:27 
>но вот для более менее реальной ситуации он не подходит

Сподобитесь объяснить, почему?

>Неужели никаких вариантов кроме создания полного зеркала
>или загрузки по сети для фрюхи не придумали?

Вам так, потроллить или правда интересно? Если бы было интересно, прочитали бы handbook, тут вам не курсы по FreeBSD. А вообще вариантов огромное количество. Хочешь - поставь tinderbox и одной командой (или через web интерфейс) собери пакеты (включая локальные) сразу подо все используемые у тебя версии FreeBSD и архитектуры, хочешь - просто расшарь packages по NFS/FTP/SMB/whatever, тогда если пакета там нет, он будет качаться и туда класться, либо собираться из портов (как удобнее), после чего остальные машины будут брать его, соответственно, оттуда. Можно и без централизованного хранилища - будет качать с первой машины, на которой кажется собранный пакет, если не найдет - то из сети/собирать. portupgrade умеет все это и много другое.


"Обновление нескольких одинаковых машин"
Отправлено angra , 28-Авг-09 09:52 
>Вам так, потроллить или правда интересно?

Вроде бы с самого ясно выразился, но смотрю не все заметили, цитирую:
>>Познавательный холиворчик не помешал бы :)

И таки действительно получилось познавательно, мне как человеку работавшему с фрей мало и давно, было интересно.


"Обновление нескольких одинаковых машин"
Отправлено аноним , 28-Авг-09 21:14 
>И таки действительно получилось познавательно, мне как человеку работавшему с фрей мало
>и давно, было интересно.

Ну тогда всегда пожалуйста.


"Обновление нескольких одинаковых машин"
Отправлено blackpepper , 26-Авг-09 16:50 
>Здравствуйте!
>Встретился с интересной задачкой:
>Имеется 100 серверов FreeBSD с одинаковым железом, одинаковым софтом. Разница лишь в
>/var/log/* и /etc/rc.conf
>
>Нужно обновить на всех машинах систему. Как это сделать наиболее граматно?

Привет, вопрос конечно интересный, Вы подразумеваете что то наподобия WSUS в выньдосе ?



"Обновление нескольких одинаковых машин"
Отправлено аноним , 26-Авг-09 20:50 
>Здравствуйте!
>Встретился с интересной задачкой:
>Имеется 100 серверов FreeBSD с одинаковым железом, одинаковым софтом. Разница лишь в
>/var/log/* и /etc/rc.conf
>
>Нужно обновить на всех машинах систему. Как это сделать наиболее граматно?

freebsd-update + portupgrade + pssh

Если заранее озаботиться - то просто собрать новый образ и перезапустить машины.