In this example we will configure a webserver using apache and we will cluster it. It can be implemented on centos, fedora and other redhat flavors.
Pre-Configuration Requirements
1] Following are the hostnames and ipv4 addresses that will be used:- Primary Node : IP - 192.168.1.1 Hostname - server1.linuxhome.in
- Secondary Node : IP - 192.168.1.2 Hostname - server2.linuxhome.in
- Virtual IP for Apache - 192.168.1.100
Assign virtual IP address using
following steps on both node :
# cp
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0
:0
BOOTPROTO=none
BROADCAST=192.168.1.255
HWADDR=00:15:17:a3:92:04
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
2] Download and install the heartbeat
package. In our case we are using CentOS so we will install heartbeat
with yum:
[root@server1
~]# yum install heartbeat
or download below package
heartbeat-2.08
heartbeat-pils-2.08
heartbeat-stonith-2.08
heartbeat-pils-2.08
heartbeat-stonith-2.08
3] Now we have to configure heartbeat
on our two node cluster. We will deal with three files.
These are:
(authkeys, ha.cf, haresources)
[root@server1
~]# cp /usr/share/doc/heartbeat-2.1.2/{authkeys,ha.cf,haresources}
/etc/ha.d/
4] First we will deal with the authkeys
file, we will use authentication method 2 (sha1). For this we will
make changes in the authkeys file as below.
[root@server1
~]# vi /etc/ha.d/authkeys
Add the following lines at the end of
file & save:
auth 2 2 sha1 test-ha
5] Also the authkeys file must be read only root:
[root@server1
~]# chmod 600 /etc/ha.d/authkeys
6] Make changes in second file of
hearteat (haresources) :
[root@server1
~]# vi /etc/ha.d/ haresources
#Add the following line at the end of
file & save:
server1.linuxhome.in 192.168.1.100 httpd
7] The final piece of work in our configuration is to edit the ha.cf
file which is important :
[root@server1
~]# vi /etc/ha.d/ha.cf
#Add / Uncommnet below lines in ha.cf
file & save.
logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 initdead 120 bcast eth0 udpport 694 auto_failback on node server1.linuxhome.in node server2.linuxhome.in 8] As we want httpd highly enabled let's start configuring httpd: [root@server1 ~]# vi /etc/httpd/conf/httpd.conf #Add following line: Listen 192.168.1.100:80 9] Copy the /etc/ha.d/ directory from server1 to server2: [root@server1 ~]# scp -rvp /etc/ha.d/ root@server2.linuxhome.in:/etc/ 10] Copy httpd.conf file from server1 to server2: [root@server1 ~]# scp -rvp /etc/httpd/conf/httpd.conf root@server2.linuxhome.in:/etc/httpd/conf/ 11] Create index.html file on both server under /var/www/html directory. On server1.linuxhome.in [root@server1 ~]# echo "SERVER1 Apache test server" > /var/www/html/index.html On server2.linuxhome.in [root@server2 ~]# echo "SERVER2 Apache test server" > /var/www/html/index.html 12 ] Now start heartbeat on the primary server1 and slave server2:# /etc/init.d/heartbeat start
13] Open web-browser and type in the URL:
http://192.168.1.100
It will show server1.linuxhome.in apache test server.
13. Now stop the hearbeat daemon on server1.linuxhome.in:
# /etc/init.d/heartbeat stop
In your browser type in the URL http://192.168.1.100 and press enter.
It will show server2.linuxhome.in apache test server.