Buenos días, por acá dejo esta guía, esta para issabel 4 y dejo el vídeo de instalación.
https://www.youtube.com/watch?v=9qNPdhuNJaA&t=1288s
Editamos los repocitorios e instalamos los siguientes paquetes
creamos el siguiente archivo, con el siguiente contenido; vim /etc/yum.repos.d/drbdlink.repo
[drbdlink]
name=Drbdlinks
baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/
enable=1
gpgcheck=0
yum repolist all
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum install -y corosync pcs pacemaker resource-agents drbd84-utils kmod-drbd84 drbdlinks git
##############
Creamos un archivo en los dos servidores en el directorio /etc/httpd/conf.d con el nombre de serverstatus.conf y que contenga
vim /etc/httpd/conf.d/serverstatus.conf
Listen 127.0.0.1:80
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
Comentamos el puerto 80 en el archivo /etc/httpd/conf/httpd.conf
sed -i "s/Listen/#Listen/" /etc/httpd/conf/httpd.conf
Comentamos la linea RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} en el archivo
sed -i "s/RewriteRule/#RewriteRule/" /etc/httpd/conf.d/issabel.conf
Agregamos la ip virtual y puerto por donde va a escuchar el http
echo "Listen 201.0.100.183:80"|tee --append /etc/httpd/conf/httpd.conf
creamos la particion en el segundo disco
fdisk /dev/xvdb
mkfs.xfs /dev/xvdb1
dd if=/dev/zero bs=1M count=1 of=/dev/xvdb1; sync
editamos el archivo vim /etc/drbd.d/global_common.conf, y agregamos lo siguiente en la opcion net
vim /etc/drbd.d/global_common.conf
net {
protocol C;
after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri call-pri-lost-after-sb;
Creamos el archivo vim /etc/drbd.d/drbd0.res, con el siguiente contenido
vim /etc/drbd.d/drbd0.res
resource drbd0 {
disk /dev/xvdb1;
device /dev/drbd0;
meta-disk internal;
on issabel1.security.net.co {
address 20.20.20.10:7789;
}
on issabel2.security.net.co {
address 20.20.20.20:7789;
}
}
Creamos el recuros
drbdadm create-md drbd0
arrancamos el servicio
drbdadm up drbd0
drbdadm primary --force drbd0
Una vez terminado formateamos el recuros compartido
mkfs.xfs /dev/drbd0
Creamos el directorio a donde se va a montar la particion compartida
mkdir /datos
Bajamos los servicios para que no arranque con el servidor
systemctl stop httpd.service
systemctl stop asterisk.service
systemctl stop dahdi.service
systemctl stop issabel-portknock.service
systemctl stop issabel-updaterd.service
systemctl stop hylafax.service
systemctl stop iaxmodem.service
systemctl stop mariadb.service
systemctl disable httpd.service
systemctl disable asterisk.service
systemctl disable dahdi.service
systemctl disable issabel-portknock.service
systemctl disable issabel-updaterd.service
systemctl disable hylafax.service
systemctl disable iaxmodem.service
systemctl disable mariadb.service
creamos el password para el usuario hacluster
echo P@ssw0rd1 | passwd --stdin hacluster
arrancamos el servicio
systemctl start pcsd
autenticamos en los dos servidores
pcs cluster auth issabel1 issabel2 -u hacluster -p P@ssw0rd1
Creamos el closter con el nombre asterisk_drbd. crea el archivo /etc/corosync/corosync.conf. con la configuracion necesaria del cluster
pcs cluster setup --name asterisk_drbd issabel1 issabel2
arrancamos los nodos de cluster
pcs cluster start --all
corosync-cfgtool -s
revisamos que esten conectados los dos servidores y nos da la informacion del grupo
pcs status corosync
revisamos si tenemos errores en el cluster
crm_verify -L -V
como vamos a tener activo/pasivo, desahanilitamos la propieda STONITH, para que no compartan la ip virtual al mismo tiempo
pcs property set stonith-enabled=false
Como solo tenemos dos nodos, le decimos que ignore el umbral de nodos
pcs property set no-quorum-policy=ignore
Creamos la ip virtual, que es la que se va compartir entre los dos servidores
pcs resource create virtual_ip ocfIPaddr2 ip=201.0.100.183 cidr_netmask=24 nic=eth0:1 op monitor interval=10s
Creamos el monitoreo del servidor http
pcs resource create webserver ocfapache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=20s
asignar la ip virtual y el servicio http al nodo que este activo
pcs constraint colocation add webserver virtual_ip INFINITY
Orden de arranque de los servicios
pcs constraint order virtual_ip then webserver
Lo recursos deben estar en la maquina principal
pcs constraint location virtual_ip prefers issabel1=50
pcs constraint location webserver prefers issabel1=50
el resto por defaults
pcs resource defaults resource-stickiness=100
pcs resource defaults
Creamos el monitoreo de la data drbd
pcs resource create webserver_data ocf:linbit:drbd drbd_resource=drbd0 op monitor interval=10s
Creamos el marter / esclavo en los nodos
pcs resource master webserver_data_sync webserver_data master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
Creamos el monitoreo donde se debe montar la data del drbd
pcs resource create webserver_fs Filesystem device="/dev/drbd0" directory="/datos" fstype="xfs"
Vamos al diretorio en donde se comparte los datos y creamos una copia
cd /datos
amportal chown
tar -zcvf etc-asterisk.tgz /etc/asterisk
tar -zxvf etc-asterisk.tgz
tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk/
tar -zxvf var-lib-asterisk.tgz
tar -zcvf usr-lib64-asterisk.tgz /usr/lib64/asterisk/
tar -zxvf usr-lib64-asterisk.tgz
tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk/
tar -zxvf var-spool-asterisk.tgz
tar -zcvf var-lib-mysql.tgz /var/lib/mysql/
tar -zxvf var-lib-mysql.tgz
tar -zcvf var-log-asterisk.tgz /var/log/asterisk/
tar -zxvf var-log-asterisk.tgz
tar -zcvf var-www.tgz /var/www/
tar -zxvf var-www.tgz
cd /root/
Descargamos el agente drbdlink
git clone https://github.com/linsomniac/drbdlinks.git
entramos al directorio drbdlinks y copiamos el agente
cd drbdlinks/
cp -vr drbdlinks /usr/lib/ocf/resource.d/heartbeat/
revisamos que este el agente
pcs resource agents ocf:heartbeat | grep drbdlinks
damos permios
chmod +x /usr/lib/ocf/resource.d/heartbeat/drbdlinks
editamos vim /etc/drbdlinks.conf y agregamos al final las siguientes lineas
mountpoint('/datos')
link('/etc/asterisk/')
link('/var/lib/asterisk')
link('/usr/lib64/asterisk/')
link('/var/spool/asterisk/')
link('/var/lib/mysql/')
link('/var/log/asterisk/')
link('/var/www/')
Bajamos el agente para asterisk
wget https://raw.githubusercontent.com/ClusterLabs/resource-agents/master/heartbeat/asterisk -O /usr/lib/ocf/resource.d/heartbeat/asterisk
Le damos permisos
chmod +x /usr/lib/ocf/resource.d/heartbeat/asterisk
creamos el monitor de drbdlinks
pcs resource create drbdlinks ocfdrbdlinks op monitor interval=20s
creamos el monitor del maridb
pcs resource create mysql ocfmysql op monitor interval=10s
Creamos el monitor del asterisk
pcs resource create asterisk ocfasterisk params user="root" group="root" op monitor timeout="30"
pcs constraint colocation add webserver webserver_fs INFINITY
pcs constraint colocation add webserver drbdlinks INFINITY
pcs constraint colocation add webserver asterisk INFINITY
pcs constraint colocation add webserver mysql INFINITY
pcs constraint colocation add webserver_fs webserver_data_sync INFINITY with-rsc-role=Master
pcs constraint order promote webserver_data_sync then start webserver_fs
pcs constraint order webserver_fs then webserver
pcs constraint order webserver_fs then drbdlinks
pcs constraint order webserver_fs then mysql
pcs constraint order drbdlinks then asterisk
pcs constraint location webserver_data_sync prefers issabel1=50
pcs constraint location webserver_fs prefers issabel1=50
pcs constraint location drbdlinks prefers issabel1=50
pcs constraint location mysql prefers issabel1=50
pcs constraint location asterisk prefers issabel1=50
setsebool daemons_enable_cluster_mode=1
systemctl enable corosync
systemctl enable pacemaker
systemctl enable pcsd