вторник, 29 июля 2008 г.

AltLinux Server – установка системы, начало


Разработчик программного обеспечения рано или поздно сталкивается с необходимостью проверки программного обеспечения на системе схожей с используемой на продакшен сервере. Денвер для этих целей крайне неудобен – поэтому я довольно давно использую для этих целей Slackware. Не так давно я пришел к выводу, что стоит перейти на какой-то более удобный дистрибутив, мой выбор пал на AltLinux. Основные причины выбора именно этого дистрибутива:
  1. особое внимание к безопасности системы.
  2. качественная рускоязычная поддержка
  3. наличие у меня копии репозитория
  4. нативная поддержка OpenVZ
Неоднократная установка системы подвигла меня на написание краткой инструкции с последовательностью действий по установке.

1) Устанавливаем систему в минимальной конфигурации выделив под / и /boot отдельные партиции. Остальное будет перенесено на LVM. Как поставить систему сразу на LVM партици я не разобрался, несмотря на то что теоретически такая возможность есть.

[root@root ~]# fdisk -l /dev/sda
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 974 7823623+ 82 Linux swap / Solaris
/dev/sda2 975 1006 257040 83 Linux
/dev/sda3 1007 1493 3911827+ 83 Linux
/dev/sda4 1494 121601 964767510 8e Linux LVM

2) Перевод систиемы на LVM. На эту тему написано несколько хороших статей.
В первую очередь стоит почитать статью на IBM и на freesource.info и эту

О вариантах применения LVM
Пара устаревших ссылок:
советы по разметке



[root@root ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 3.7G 249M 3.3G 7% /
udevfs 5.0M 72K 5.0M 2% /dev
shmfs 1009M 0 1009M 0% /dev/shm
tmpfs 1009M 0 1009M 0% /tmp
/dev/sda2 244M 9.9M 221M 5% /boot
/dev/mapper/system-home 2.0G 498M 1.6G 25% /home
/dev/mapper/system-usr 4.0G 168M 3.9G 5% /usr
/dev/mapper/system-var 2.0G 93M 2.0G 5% /var
/dev/mapper/system-var_lib_vz 200G 708M 200G 1% /var/lib/vz
/dev/mapper/system-storage 100G 77G 24G 77% /storage


3) Настрокйа сети - не забыть включть ip_forward (/etc/net/sysctl.conf)
Конфигурируем /etc/net/ifaces/
Про pppoe здесь

4) Подключение локального репозитория
У меня лежит здесь /storage/distributions/ALTLinux/ , в дальнейшем репозиторий биндится во все контейнеры

5) Апгрейд репозитория и затем системы
Устанавливаем sisyphus-mirror, вытягиваем обновление, затем apt-get upgrade и diat-upgrade. Пакет update-kernel – обновление ядра системы

6) настройка SSH.

7) Настройка NTP сервера. Настраиваю через alterator.

8) Настройка сборки контейнеров Хорошо описана здесь

9) Исправление несовершенств в базовом контейнере
В скрипте /etc/rc.d/rc.sysinit
комментируем все вызовы
/etc/init.d/clock start
/etc/rc.d/scripts/idetune
блок параметров ядра
Configuring kernel parameters
Ошибку "Remounting root filesystem in read/write mode: failed" - пришлось оставить в виду нечеткого понимания мной причины ее возникновения
в файле /etc/net/sysctl.conf
Комментируем
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 0

Ошибка - не обращать внимание
ERROR: /etc/init.d/network: unknown interface group for iface 'venet0' of type 'venet'

10) подключение репозитория в контейнер. Делаю стандартный скрипт, который потом симлинкаю на конкретные контейнеры, если они не требуют чего то еще. Вообще было бы прикольно монтировать репозитория в RO режиме, но мое ядро это пока не поддерживает.

[root@root ~]# cat /etc/vz/conf/std.mount
#!/bin/bash

[ -f $VE_CONFFILE ] || exit 1
. $VE_CONFFILE
mount -o bind /storage/distributions/ALTLinux $VE_ROOT/storage/distributions/ALTLinux
[root@root ~]# cat /etc/vz/conf/std.umount
#!/bin/bash

[ -f $VE_CONFFILE ] || exit 1

. $VE_CONFFILE

umount $VE_ROOT/storage/distributions/ALTLinux
exit 0

В обязательном порядке настраиваю контейнеры с почтовым сервером и ДНС, но это отдельная тема.

p.s. Под /boot раздел выделил слишком много, но да ладно - всегда можно исправить благодаря LVM. Конструктивная критика стати привествуется - особенно учитывая, что я не админ ;)

2 комментария:

seoprogrammer комментирует...

Еще один пример разделения:

/
/boot
/home
/opt
/usr
/var
/var/lib/vz

seoprogrammer комментирует...

Кстати есть информация, что не стоит OpenVZ ставить на ReiserFS