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