Мастер-узел

Материал из 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"

Откройте файл /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 \
            /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/var/lib/exim4 \
            /storage/var/spool/exim4 \
            /storage/var/log/account \
            /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-адрес Мастер-узла на который выдана лицензия.

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

 # chroot /storage /usr/local/ispmgr/sbin/ispinstall -s -c www -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_roles/init.d/config:

 # chroot /storage sh -c "touch /usr/local/ispmgr/etc/cluster_roles/init.d/config && nano /usr/local/ispmgr/etc/cluster_roles/init.d/config"

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

 P_APACHE=/usr/sbin/apache2

Создайте файл /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

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

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

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

Создайте роль anynode в ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.edit name=anynode sok=ok

Добавьте скрипты запуска роли anynode:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=0 command=\"/etc/init.d/openntpd start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=0 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/ntpdate start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=0 command=\"/etc/init.d/exim4 start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=0 command=\"/etc/init.d/acct start\" sok=ok

Добавьте скрипты остановки роли anynode:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=1 command=\"/etc/init.d/openntpd stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=1 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/ntpdate stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=1 command=\"/etc/init.d/exim4 stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=anynode priority=1 command=\"/etc/init.d/acct stop\" sok=ok

Зарегистрируйте сервер хранилища в ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.new ip=10.0.0.1 sok=ok

Добавьте роль anynode к узлу сервера хранилища:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.1 name=anynode sok=ok

Добавьте роль STORAGE к узлу сервера хранилища:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.1 name=STORAGE sok=ok

Зарегистрируйте Мастер-узел в ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.new ip=10.0.0.6 sok=ok

Добавьте роль anynode к Мастер-узлу:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.6 name=anynode sok=ok

Создайте роль MASTER в ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.edit name=MASTER sok=ok

Добавьте скрипты запуска роли MASTER:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/networking start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/bind9 start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/ssh start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/dovecot start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/oproxy-mysql start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/oproxy-http start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/proftpd start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/exim4 start\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=0 command=\"/etc/init.d/cron start\" sok=ok

Добавьте скрипты остановки роли MASTER:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/networking stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/bind9 stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/ssh stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/dovecot stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/oproxy-mysql stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/oproxy-http stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/proftpd stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/exim4 stop\" sok=ok
 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=MASTER priority=1 command=\"/etc/init.d/cron stop\" sok=ok

Добавьте роль MASTER к Мастер-узлу:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.6 name=MASTER sok=ok

Создайте роль ISPMGR в ISPmanager Cluster:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.edit name=ISPMGR sok=ok

Добавьте скрипт запуска роли ISPMGR:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=ISPMGR priority=0 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/apache-ispmgr start\" sok=ok

Добавьте скрипт остановки роли ISPMGR:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=ISPMGR priority=1 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/apache-ispmgr stop\" sok=ok

Добавьте роль ISPMGR к Мастер-узлу:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.6 name=ISPMGR sok=ok

Сгенерируйте и запомните внутренний пароль для обмена информацией между сервисами прокси-сервера.

Добавьте роль ClusterCtl к Мастер-узлу:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.6 name=ClusterCtl port=654 password=X sok=ok

где X - это внутренний пароль для обмена информацией между сервисами прокси-сервера.

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

 # nano /storage/usr/local/ispmgr/etc/oproxy-http.conf

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

 ...
 Listen cluster "0.0.0.0:655"
 Param master_password "X"
 ...

где X - это внутренний пароль для обмена информацией между сервисами прокси-сервера.

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

 # nano /storage/usr/local/ispmgr/etc/oproxy-mysql.conf

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

 ...
 Listen cluster "0.0.0.0:654"
 Param master_password "X"
 Param logs_server "10.0.0.6:655"
 Param logs_server_password "X"
 ...

где X - это внутренний пароль для обмена информацией между сервисами прокси-сервера.

Остановите веб-сервер Apache:

 # chroot /storage /usr/sbin/apache2ctl stop

Запустите текущий узел:

 # chroot /storage usr/local/ispmgr/sbin/clusterctl --node LOCAL start

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

 # nano /etc/rc.local

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

 # chroot /storage usr/local/ispmgr/sbin/clusterctl --node LOCAL start
Была ли эта информация полезной? Да | Нет
Личные инструменты