Noeud Maître

De ISPWiki.

Sommaire

Pré-requis

S'il n'y a pas la deuxième interface réseau, vous pouvez ignorer ce point.

Ouvrez le fichier /etc/network/interfaces

 # nano /etc/network/interfaces

et ajoutez les lignes

 auto ethX
 iface ethX inet static
     address 10.0.0.6
     netmask 255.0.0.0

où X est le numéro d'interface réseau.

Pour appliquer les changements, lancez la commande:

 # /etc/init.d/networking restart

Installation et personnalisation de libnss-extrausers

Installez des modules supplémentaires pour le service NSS qui donnent au système les enregistrements sur les utilisateurs et groupes depuis les fichiers supplémentaires: /var/lib/extrausers/passwd, /var/lib/extrausers/shadow и /var/lib/extrausers/groups.

 # apt-get install libnss-extrausers

Ouvrez le fichier /etc/nsswitch.conf

 # nano /etc/nsswitch.conf

et changez les options passwd, group et shadow

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

Installation et personnalisation de sshfs

Installez le programme utilitaire afin de fonctionner sous le système de fichiers réseau via SSH:

 # apt-get install sshfs

Ouvrez le fichier /etc/rc.local

 # nano /etc/rc.local

et ajoutez la ligne

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

où 10.0.0.1 est l'adresse IP "flottante" du serveur de stockage.

Créez un répertoire /root/.ssh:

 # mkdir /root/.ssh

Obtenez la clé publique du serveur SSH de stockage:

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

Ouvrez le fichier /root/.ssh/known_hosts

 # nano /root/.ssh/known_hosts

et ajoutez laligne

 10.0.0.1 X

où X est la clé publique obtenue.

Créez une clé publique SSH:

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

Obtenez la clé publique SSH

 # cat /root/.ssh/id_rsa.pub

et l'ajoutez dans la liste des clés autorisées sur le serveur de stockage

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

où X est la clé publique locale SSH.

Donc, vous avez échangé les clés avec le serveur de stockage.

Installation et personnalisation de serveur NFS

Installez le programme utilitaire afin de fonctionner sous le serveur NFS:

 # apt-get install nfs-common

Ouvrez le fichier /etc/default/nfs-common

 # nano /etc/default/nfs-common

et changez l'option NEED_IDMAPD

 ...
 NEED_IDMAPD="yes"
 ...

Ouvrez le fichier /etc/idmapd.conf

 # nano /etc/idmapd.conf

et changez l'option Domain dans la partition General ainsi que Method dans la partition Translation

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

Redémarrez le serveur NFS en utilisant la commande:

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

Personnalisation de serveur SSH

Ouvrez le fichier /etc/ssh/sshd_config

 # nano /etc/ssh/sshd_config

et changez l'option Port

 ...
 Port 222
 ...

Cela est nécessaire pour que le serveur SSH n'ait aucun conflit avec le serveur SSH du noeud maître.

Redémarrez le serveur SSH en utilisant la commande:

 # /etc/init.d/ssh restart

Connexion de stockage

Créez des répertoires suivants qui sont nécessaires afin de connecter le stockage:

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

Ouvrez le fichier /etc/fstab

 # nano /etc/fstab

et ajoutez la ligne

 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,sync 0 0

Ouvrez le fichier /etc/rc.local

 # nano /etc/rc.local

et ajoutez les lignes suivantes

 /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
 /bin/mount --bind /var/httpd-logs /storage/home/httpd-logs

Connectez le stockage:

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

Installation et personnalisation d'ISPmanager Cluster

Créez des répertoires suivants qui sont nécessaires afin d'installer et de fonctionner sous 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

Collez le fichier /etc/hosts dans le stockage:

 # cp /etc/hosts /storage/etc/

Téléchargez ISPmanager Cluster:

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

Dépaquetez ISPmanager Cluster:

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

Téléchargez mindterm.jar:

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

Téléchargez la licence d'ISPmanager Cluster:

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

où X est l'adresse IP réelle du noeud maître à laquelle la licence a été assignée du noeud maître.

Installez ISPmanager Cluster:

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

Surveillez le processus d'installation en utilisant la commande:

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

Ouvrez le fichier /storage/etc/apache2/ports.conf

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

et commentez les lignes suivantes

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

Installez apache2-mpm-itk:

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

Créez un fichier avec la liste des encodages intégrés:

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

Créez et ouvrez le fichier /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"

et ajoutez la ligne

 P_APACHE=/usr/sbin/apache2

Créez un fichier /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

Ouvrez le fichier /storage/usr/local/ispmgr/etc/ispmgr.conf:

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

et ajoutez les lignes suivantes

 ...
 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
 ...

Arrêtez ISPmanager Cluster:

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

Installez libapache2-mod-macro:

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

Installez OpenSSH-сервер:

 # chroot /storage apt-get install openssh-server

Créez une clé publique SSH pour ISPmanager Cluster:

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

Obtenez la clé publique SSH pour ISPmanager Cluster:

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

et l'ajoutez dans la liste des clés autorisées sur le serveur de stockage

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

où X est la clé publique SSH créée à nouveau.

Installez acct:

 # chroot /storage apt-get install acct

Installez openntpd:

 # chroot /storage apt-get install openntpd

Spécifiez le mot de passe root dans le stockage (c'est-à-dire le mot de passe du cluster):

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

où X est le mot de passe du cluster.

Créez un rôle anynode dans ISPmanager Cluster:

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

Ajoutez des scripts de lancement du rôle- 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

Ajoutez des scripts d'arrêt du rôle 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

Enregistrez le serveur de stockage dans ISPmanager Cluster:

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

Ajoutez le rôle anynode au noeud du serveur de stockage:

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

Ajoutez le rôle STORAGE au noeud du serveur de stockage:

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

Enregistez le noeud maître dans ISPmanager Cluster:

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

Ajoutez le rôle anynode au noeud maître:

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

Créez un rôle MASTER dans ISPmanager Cluster:

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

Ajoutez des scripts de lancement du rôle 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

Ajoutez des scripts d'arrêt du rôle 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

Ajoutez le rôle MASTER au noeud maître:

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

Créez un rôle ISPMGR dans ISPmanager Cluster:

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

Ajoutez le script de lancement du rôle 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

Ajoutez lescript d'arrêt du rôle 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

Ajoutez le rôle ISPMGR au noeud maître:

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

Générez un mot de passe afin d'échanger des informations entre des services du serveur proxy.

Ajoutez le rôle ClusterCtl au noeud maître:

 # 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

où X est le mot de passe interne permettant d'échanger des informations entre des services du serveur proxy.

Ouvrez le fichier /storage/usr/local/ispmgr/etc/oproxy-http.conf:

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

et ajoutez les lignes suivantes

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

où X est le mot de passe interne permettant d'échanger des informations entre des services du serveur proxy.

Ouvrez le fichier /storage/usr/local/ispmgr/etc/oproxy-mysql.conf:

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

et ajoutez les lignes suivantes

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

où X est le mot de passe interne permettant d'échanger des informations entre des services du serveur proxy.

Arrêtez le serveur d'Apache:

 # chroot /storage /usr/sbin/apache2ctl stop

Lancez le noeud actuel:

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

Ouvrez le fichier /etc/rc.local

 # nano /etc/rc.local

et ajoutez la ligne

 # chroot /storage usr/local/ispmgr/sbin/clusterctl --node LOCAL start
Cet article vous a-t-il été utile? Oui | Non
Outils personnels