Backend HTTP

De ISPWiki.

Sommaire

Pré-requis

S'il n'y a pas la deuxième interface réseau sur le serveur actuel, 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.7
     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 la ligne

 10.0.0.1 X

où X est la clé publique obtenue.

Créez une clé publique obtenue SSH:

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

Obtenez la clé publique SSH

 # cat /root/.ssh/id_rsa.pub

et en 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

Personnalisation de backend HTTP

Ajoutez la clé publique d'ISPmanager Cluster dans la liste des clésautorisées sur le serveur actuel:

 # mkdir /root/.ssh && cat /storage/usr/local/ispmgr/etc/ssh-key.pub >> /root/.ssh/authorized_keys

Enregistrez le backend dans ISPmanager Cluster:

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

Ajoutez le rôle anynode vers le backend HTTP:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.7 name=anynode 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 vers le backend HTTP:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.7 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.

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

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

Ajoutez des scripts de lancement du rôle HTTP:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=HTTP 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=HTTP priority=0 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/HTTP start\" sok=ok

Ajoutez des scripts d'arrêt du rôle HTTP:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusterroles.startscripts.edit \
   plid=HTTP 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=HTTP priority=1 command=\"/usr/local/ispmgr/etc/cluster_roles/init.d/HTTP stop\" sok=ok

Ajoutez le rôle HTTP vers le backend HTTP:

 # chroot /storage /usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.roles.edit plid=10.0.0.7 \
   name=HTTP port=81 maxconnections=10000 percent=100 sok=ok

Créez des serveurs de backend HTTP. Exemple: le serveur web avec l'adresse IP 10.0.7.1.

Ajoutez le serveur vers le backend HTTP:

 # ssh root@10.0.0.6 "/usr/local/ispmgr/sbin/mgrctl -m ispmgr clusternodes.webservers.edit plid=10.0.0.7 ip=10.0.7.1 \
   folder=/usr/local/ispmgr/etc/cluster_apache/webservers-conf.d/10.0.7.1 config=/usr/local/ispmgr/etc/cluster_apache/configs/10.0.7.1.conf \
   default=on sok=ok"

Créez un répertoire /storage/usr/local/ispmgr/etc/cluster_apache/webservers-conf.d/10.0.7.1:

 # mkdir /storage/usr/local/ispmgr/etc/cluster_apache/webservers-conf.d/10.0.7.1

Créez ou ouvrez le fichier /storage/usr/local/ispmgr/etc/cluster_apache/configs/10.0.7.1.conf:

 # nano /storage/usr/local/ispmgr/etc/cluster_apache/configs/10.0.7.1.conf

et ajoutez les lignes suivantes:

 Include /usr/local/ispmgr/etc/cluster_apache/global.conf
 Use Setup "10.0.7.1"

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

Redistribuez des sites entre les serveurs web:

 # chroot /storage usr/local/ispmgr/sbin/sitectl --distribute
Cet article vous a-t-il été utile? Oui | Non
Outils personnels