Мастер-узел

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Подготовка сервера

Если на текущем сервере нет второго сетевого интерфейса, то пропустите данный шаг.

Откройте файл /etc/network/interfaces

 # nano /etc/network/interfaces

и добавьте строки

 auto ethX
 iface ethX inet static
     address 10.0.0.6
     netmask 255.0.0.0

где X - это номер сетевого интерфейса.

Чтобы изменения вступили в силу, необходимо выполнить команду:

 # /etc/init.d/networking restart

Установка и настройка libnss-extrausers

Выполните установку дополнительного модуля для NSS сервиса, который предоставляет системе записи о пользователях и группах из дополнительных файлов: /var/lib/extrausers/passwd, /var/lib/extrausers/shadow и /var/lib/extrausers/groups.

 # apt-get install libnss-extrausers

Откройте файл /etc/nsswitch.conf

 # nano /etc/nsswitch.conf

и измените опции passwd, group и shadow

 ...
 passwd: compat extrausers
 group:  compat extrausers
 shadow: compat extrausers
 ...

Установка и настройка sshfs

Выполните установку утилиты для работы с сетевой файловой системой через SSH:

 # apt-get install sshfs

Откройте файл /etc/rc.local

 # nano /etc/rc.local

и добавьте строку

 /usr/bin/sshfs 10.0.0.1:/storage/etc /var/lib/extrausers

где 10.0.0.1 - это "плавающий" IP-адрес сервера хранилища.

Создайте директорию /root/.ssh:

 # mkdir /root/.ssh

Получите публичный ключ SSH сервера хранилища:

 # ssh root@10.0.0.1 "cat /root/.ssh/id_rsa.pub"

Если его еще не существует, то выполните:

 # ssh root@10.0.0.1 "ssh-keygen -t rsa -f /root/.ssh/id_rsa -N \"\""

Откройте файл /root/.ssh/known_hosts

 # nano /root/.ssh/known_hosts

и добавьте строку

 10.0.0.1 X

где X - это полученный выше публичный ключ SSH сервера хранилища.

Создайте публичный ключ SSH:

 # ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ""

Получите публичный ключ SSH

 # cat /root/.ssh/id_rsa.pub

и добавьте его в список авторизованных ключей на сервере хранилища

 # ssh root@10.0.0.1 "echo \"X\" >> /root/.ssh/authorized_keys"

где X - это локальный публичный ключ SSH.

Таким образом Вы обменялись публичными ключами с сервером хранилища.

Установка и настройка NFS-сервера

Выполните установку утилит для работы с NFS-сервером:

 # apt-get install nfs-common

Откройте файл /etc/default/nfs-common

 # nano /etc/default/nfs-common

и измените опцию NEED_IDMAPD

 ...
 NEED_IDMAPD="yes"
 ...

Откройте файл /etc/idmapd.conf

 # nano /etc/idmapd.conf

и измените опции Domain в разделе General и Method в разделе Translation

 [General]
 Domain = cluster.lan
 ...
 [Translation]
 Method = nsswitch
 ...

Перезапустите NFS-сервер командой:

 # /etc/init.d/nfs-common restart

Настройка SSH-сервера

Откройте файл /etc/ssh/sshd_config

 # nano /etc/ssh/sshd_config

и измените опцию Port

 ...
 Port 222
 ...

Это сделано для того, чтобы SSH-сервер запускаемый из хранилища не конфликтовал с SSH-сервером Мастер-узла.

Перезапустите SSH-сервер командой:

 # /etc/init.d/ssh restart

Подключение хранилища данных

Создайте следующие директории необходимые для подключения хранилища:

 # mkdir -p /storage \
            /storage/var/lib/exim4 \
            /storage/var/spool/exim4 \
            /storage/var/log/account \
            /var/run-cluster/mysqld \
            /var/run-cluster/apache2 \
            /var/cluster/spool/exim4 \
            /var/cluster/log/account \
            /var/cluster/lib/exim4

Откройте файл /etc/fstab

 # nano /etc/fstab

и добавьте строку

 10.0.0.1:/ /storage nfs4 rw,rsize=65000,wsize=65000,proto=tcp,soft,intr,noatime,noauto,actimeo=240,acregmin=10,acdirmin=30,timeo=50,async 0 0

Откройте файл /etc/rc.local

 # nano /etc/rc.local

и добавьте следующие строки

 /bin/mount /storage
 /bin/mount --bind /dev /storage/dev
 /bin/mount --bind /dev/pts /storage/dev/pts
 /bin/mount --bind /proc /storage/proc
 /bin/mount --bind /tmp /storage/tmp
 /bin/mount --bind /lib/modules /storage/lib/modules
 /bin/mount --bind /var/run-cluster /storage/var/run
 /bin/mount --bind /var/cache/debconf /storage/var/cache/debconf
 /bin/mount --bind /var/cluster/spool/exim4 /storage/var/spool/exim4
 /bin/mount --bind /var/cluster/log/account /storage/var/log/account
 /bin/mount --bind /var/cluster/lib/exim4 /storage/var/lib/exim4

Подключите хранилище данных:

 # chmod +x /etc/rc.local && /etc/rc.local

Установка и настройка ISPmanager Cluster

Создайте следующие директории необходимые для установки и работы ISPmanager Cluster:

 # mkdir -p /storage/home/httpd-logs \
            /storage/usr/local/ispmgr/etc/cluster_apache/users-conf.d

Скопируйте файл /etc/hosts в хранилище:

 # cp /etc/hosts /storage/etc/

Скачайте ISPmanager Cluster:

 # chroot /storage wget -c http://download.ispsystem.com/Linux-cc6/`uname -m`/ISPmanager-Cluster/install.tgz -O /tmp/install.tgz

Разархивируйте ISPmanager Cluster:

 # chroot /storage tar xvzpf /tmp/install.tgz -C /usr/local/ispmgr

Скачайте mindterm.jar:

 # chroot /storage wget -c http://download.ispsystem.com/mindterm.jar -O /usr/local/ispmgr/skins/userdata/mindterm.jar

Скачайте лицензию на ISPmanager Cluster:

 # chroot /storage wget -q http://lic.ispsystem.com/ispmgr.lic?ip=X\ -O /usr/local/ispmgr/etc/ispmgr.lic

где X - это реальный IP-адрес Мастер-узла на который выдана лицензия.

Установите и настройте локаль:

 # chroot /storage apt-get install locales
 # chroot /storage dpkg-reconfigure locales

Установите ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/ispinstall -s -c apache -c nginx -c ftp -c smtp -c pop3 -c dns -c php -c myadmin

Следить за процессом установки Вы можете командой:

 # chroot /storage tail -f /usr/local/ispmgr/var/install.log

Откройте файл /storage/etc/apache2/ports.conf

 # nano /storage/etc/apache2/ports.conf

и закомментируйте следующие строки

 ...
 # NameVirtualHost *:80
 # Listen 8080
 ...

Установите apache2-mpm-itk:

 # chroot /storage apt-get install apache2-mpm-itk

Создайте файл со списком встроенных кодировок:

 # chroot /storage sh -c "iconv -l | cut -f1 -d\\ | tr -d / > /usr/local/ispmgr/etc/filemgr.enc"

Создайте файл /storage/usr/local/ispmgr/etc/cluster_apache/global-fake.conf:

 # chroot /storage cp /usr/local/ispmgr/etc/cluster_apache/global.conf /usr/local/ispmgr/etc/cluster_apache/global-fake.conf

Откройте файл /storage/usr/local/ispmgr/etc/ispmgr.conf:

 # nano /storage/usr/local/ispmgr/etc/ispmgr.conf

и добавьте следующие строки

 ...
 HttpPort 81
 Option ApacheMPM
 path DefaultHomeDir /home
 path repquota /usr/local/ispmgr/sbin/repquota
 path setquota /usr/local/ispmgr/sbin/setquota
 path httpd-include /usr/local/ispmgr/etc/cluster_apache/users-conf.d/
 path httpd.conf /usr/local/ispmgr/etc/cluster_apache/global-fake.conf
 ...

Остановите ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr exit

Установите libapache2-mod-macro:

 # chroot /storage apt-get install libapache2-mod-macro

Установите OpenSSH-сервер:

 # chroot /storage apt-get install openssh-server

Создайте публичный ключ SSH для ISPmanager Cluster:

 # chroot /storage ssh-keygen -t rsa -f /usr/local/ispmgr/etc/ssh-key -N ""

Получите публичный ключ SSH для ISPmanager Cluster:

 # cat /storage/usr/local/ispmgr/etc/ssh-key.pub

и добавьте его в список авторизованных ключей на сервере хранилища

 # ssh root@10.0.0.1 "echo \"X\" >> /root/.ssh/authorized_keys"

где X - вновь созданный публичный ключ SSH.

Установите acct:

 # chroot /storage apt-get install acct

Установите openntpd:

 # chroot /storage apt-get install openntpd

В последних версиях GNU/Linux Debian пакета openntpd может и не быть. В данном случае выполните:

 # chroot /storage apt-get install ntp

Установите пароль root в хранилище (т.е. пароль кластера):

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr usrparam passwd=X sok=ok

где X - это пароль кластера.

Откройте файл /etc/rc.local

 # nano /etc/rc.local

и добавьте следующие строки

 /usr/sbin/chroot /storage /etc/init.d/ntp start
 /usr/sbin/chroot /storage /usr/local/ispmgr/etc/cluster_roles/init.d/ntpdate start
 /usr/sbin/chroot /storage /etc/init.d/exim4 start
 /usr/sbin/chroot /storage /etc/init.d/acct start
 /usr/sbin/chroot /storage /etc/init.d/networking start
 /usr/sbin/chroot /storage /etc/init.d/bind9 start
 /usr/sbin/chroot /storage /etc/init.d/ssh start
 /usr/sbin/chroot /storage /etc/init.d/dovecot start
 /usr/sbin/chroot /storage /etc/init.d/proftpd start
 /usr/sbin/chroot /storage /etc/init.d/cron start
 /usr/sbin/chroot /storage /etc/rc.local

Сбор статистики (accounting)

Войдите в chroot-окружение и добавьте следующее задание в cron:

 0	*	*	*	*	/usr/local/ispmgr/sbin/acctstat -x

А также убедитесь, что в конфигурационном файле панели есть строка

 path pacct /var/log/account/pacct

Сбор error-логов с HTTP-бэкэндов

В chroot-окружении добавьте следующее задание в cron:

 */30	*	*	*	*	/usr/local/ispmgr/sbin/logfetch -t error


Известные проблемы

# /usr/local/ispmgr/sbin/repquota -u -n /storage
/usr/local/ispmgr/sbin/repquota: 3: /usr/local/ispmgr/sbin/clusterctl: not found

Проблема исправляется заменой строки`/usr/local/ispmgr/sbin/clusterctl --role STORAGE role_executors`на плавающий IP-адрес хранилища (или статический, если у вас одно хранилище) в файлах /usr/local/ispmgr/sbin/setquota и /usr/local/ispmgr/sbin/repquota.


Если не работает квота, в файле конфигурации панели нужно прописать path quota /

Была ли эта информация полезной? Да | Нет
Личные инструменты