четверг, 26 мая 2011 г.

Миграция с одного физического сервера на другой

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

Обычно ставят на новую железку новую ОС, поднимают софт, настраивают, переносят контент, базы и прочее, меняют DNS и через двое суток выключают старый сервер. Казалось бы простая процедура, сотни раз её делал любой сисадмин. НО, в процессе как показывает практика что-то забывается и уже на боевом сервере нужно делать правки и настройки, тащить старые костыли и адаптировать их на новом месте.

Этот вариант иногда неизбежен, например когда сервера в разных датацентрах. Но если сервера (новый и старый) стоят в соседних стойках, то можно просто перенести ОС на новую железку а старую сразу погасить. О том как это сделать я и напишу небольшую статью-чеклист. Итак поехали!

Умолчания:
— Сервера в одном датацентре у одного колокатора/дедикатора
— Вы договорились с колокатором/дедикатором о том что перецепите ip адреса со старого сервера на новый. Если этого не сделать могут быть косяки в случае если сервера в разных VLAN-ах.
— Вам дают IP-KVM как минимум на новый сервер, в идеале может понадобиться и на старый если вдруг хочется сохранить его доступность.
— Колдовство буду показывать на примере CentOS 5.x
— У вашего серверодателя есть pxe сервер с аварийным (т.н. rescue) образом CentOS 5.x и вашей платформы.
— Вы знаете root пароль от исходного сервера.
— Вы переписали, на чистый лист бумаги, со старого сервера настройки сети и разметку диска.

среда, 18 мая 2011 г.

Gentoo: Emerge + Proxy

Добавить в /etc/wgetrc:
https_proxy = http://proxy:port
http_proxy = http://proxy:port
ftp_proxy = http://proxy:port

use_proxy = on

При необходимости:
export HTTP_PROXY="http://proxy:port/"
export HTTPS_PROXY="http://proxy:port/"
export FTP_PROXY="http://proxy:port/"

Создание пакетов из установленных портов на FreeBSD

Собираем собственный пакет

После того, как мы скомпилировали и установили порт, нужно выполнить следующие команды:

1) Узнаем точную версию порта, которую мы поставили (в нашем случае это будет apache):
ls —ald /var/db/pkg/apache*
drwxr-xr-x 2 root wheel 512 Nov 12 00:31 /var/db/pkg/apache-2.2.17_1
Нам нужно именно полное название установленного порта – в нашем случае это apache-2.2.17_1.

2) Запускаем сборку пакета:
pkg_create -b /var/db/pkg/apache-2.2.17_1
или
pkg_create -b apache-2.2.17_1
После того как команда отработает, в текущей директории появится файл:
ls -la apache*
-rw-r--r-- 1 root wheel 3683835 Nov 12 13:47 apache-2.2.17_1.tbz
Теперь этот файл можно спокойно переносить на другой сервер и устанавливать командой: (оптимально - перенести все собраные пакеты в /usr/ports/distfiles, переути в эту папку и начать установку)
cd /usr/ports/distfiles
pkg_add apache-2.2.17_1.tbz

понедельник, 16 мая 2011 г.

FAMP: FreeBSD+Apache+MySQL+PHP

Установка MySQL Server

Перед началом установки MySQL вносим в /etc/make.conf
.if ${.CURDIR} == "/usr/ports/databases/mysql51-server"
WITH_CHARSET=utf8
WITH_COLLATION=utf8_general_ci
WITH_XCHARSET=all
.endif
Ставим MySQL
# cd /usr/ports/databases/mysql51-server
# make install clean

# rehash
Теперь установим системные дефолтные таблицы
# mysql_install_db --user=mysql
Теперь скопируем дефолтный конфиг
# cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf
Правим конфиг /usr/local/etc/my.cnf под себя.