В Густелёв Posted July 27, 2008 Posted July 27, 2008 Друзья, расскажите мне, как устроен процесс администрирования серверов (и телеком-железа)? Давайте я разобью вопрос на подвопросы: 1) Документируете ли вы изменения, сделанные на сервере? Как вы это делаете? Используете ли утилиты клёвые, acct например? 2) Перед крупными изменениями на сервере, тестируете ли предполагаемые изменения на стенде? Каким образом производится развёртывание изменений на боевые сервера? Пишете для себя статьи а–ля lissyara.su? 3) Допустим, у Вас огромное количество серверов админится по подписке. Наверняка, уже есть солдатский набор решений (например, скрипт устанавливающий и настраивающий Apache+Mysql+php)? В каком виде в это держите? SH–скрипт? Makefile? Буквально сегодня столкнулся с одним из комментариев у линуксоидов, смысл был такой "я изменения в системные конфиги делаю через деб пакет, чтобы можно было легко накатить после апдейта". Как это делают действительно крутые админы? Вставить ник Quote
kostich Posted July 28, 2008 Posted July 28, 2008 Сервера с IPMI на отдельном порту, конфиги в svn или cvs... документирование осуществляется внесением комента при коммите. Вставить ник Quote
В Густелёв Posted July 29, 2008 Author Posted July 29, 2008 Сервера с IPMI на отдельном порту, конфиги в svn или cvs... документирование осуществляется внесением комента при коммите.залип в гугле на аббревиатуру IPMI крутая штука, судя по всему. Вставить ник Quote
В Густелёв Posted July 29, 2008 Author Posted July 29, 2008 Выкладываю статью из нашей базы знаний о том, как мы развернули бэкап конфигов через svn. Концепция: На централизованном сервере имеем репозиторий с бэкапами конфигов. С локального сервера бэкапятся папки /etc и /usr/local/etc Конфиги всех программ должны храниться в одной из этих папок. Если это не так, то переносим конфиги в /usr/local/etc и делаем symlink в оригинальном месте. Установка сервера: [/usr/ports/devel/subversion]# make WITH_ASVN="YES" WITHOUT_BDB="YES" [/usr/ports/devel/subversion]# make install [/usr/ports/devel/subversion]# cat /etc/rc.conf svnserve_enable="YES" svnserve_flags="-d --listen-port=3690 --listen-host=0.0.0.0" svnserve_data="/usr/local/repositories" svnserve_user="svn" svnserve_group="svn" [/usr/local/server-repositories]# cat svnserve.conf [general] anon-access = none auth-access = write password-db = passwd realm = york/etc /usr/local/server-repositories/conf/> cat passwd [users] mickey = mickeymouse Добавляем пользователя: Username : svn Password : <disabled> Full Name : subversion Uid : 1003 Class : Groups : svn svn Home : /home/svn Shell : /usr/sbin/nologin Locked : no Скрипт для добавления репозиториев для клиентских машин: #!/bin/sh HOST=$1 svnadmin create $HOST svnadmin create $HOST/etc svnadmin create $HOST/local svnadmin create $HOST/local/etc chown -R svn:svn $HOST find $HOST -type d -name conf -print > .tmp cat .tmp | xargs rm -rf cat .tmp | xargs -n 1 ln -s /usr/local/server-repositories/conf/ rm .tmp Кладём этот скрипт в папку с репозиториями /usr/local/server-repositories/ и запускаем с аргументом - HOSTNAME нужного клиента Настраиваем клиента [root@miami /usr/ports/devel/subversion]# make WITH_ASVN="YES" WITHOUT_BDB="YES" [root@miami /usr/ports/devel/subversion]# make install [root@miami /usr/ports/misc/findutils]# make install Закидываем на клиента скрипт http://svn.collab.net/repos/svn/trunk/cont...lient-side/asvn - это wrapper для svn, который умеет сохранять права доступа на файлы. Создаём на сервере репозиторий для этого клиента (см. выше) и разворачиваем на клиенте рабочие копии: #!/bin/sh HOST=`hostname -s` SERVER=svn://york.pip.ru cd /etc asvn co $SERVER/$HOST/etc . asvn add * asvn ci cd /usr/local/etc asvn ci $SERVER/$HOST/local/etc . asvn add * asvn ci Для апдейта конфигов из репозитория - следующий скрипт: cd /etc asvn up cd /usr/local/etc asvn up Посмотреть свежие изменения на сервере: Whatsnew.sh cd /etc asvn diff cd /usr/local/etc asvn diff Закинуть конфигурацию в репозиторий: #!/bin/sh COMMENT=$1 if [ -z $COMMENT ] then echo "Comment needed" exit 1 fi cd /etc asvn ci -m $1 cd /usr/local/etc asvn ci -m $1 Процесс работы примерно такой: 1. Заводишь заявку на обслуживание сервера 2. Заходишь на сервер, делаешь свои грязные дела 3. Выполняешь команду new, интересную информацию из её вывода копируешь в заявку. 4. Если всё ок работает, то делаешь команду "ok <№ заявки" например ok 1234 5. Команда ok закидывает всё новое в бэкап. Литература: http://www.gnuman.ru/stuff/svn.php - Краткий справочник svn http://shifteleven.com/articles/2007/01/01...iguration-files - Using Subversion to Maintain your Configuration Files http://www.ibm.com/developerworks/java/lib.../j-svnbins.html - Performance tuning Subversion, изучение работы SVN при хранении бинарников. http://www.mythago.net/svn_for_backup.html - Using Subversion for Backup Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.