Ubuntu 24.04
Sponsored Link

Pacemaker : Set Cluster Resource (Apache2)2024/07/23

 

Set Apache httpd Cluster Resource and Configure Active/Passive Web Server.

This example is based on the environment like follows.
  1) Basic Cluster setting is done
  2) Fence Device is configured
  3) LVM shared storage is configured

                       +--------------------+
                       | [  ISCSI Target  ] |
                       |    dlp.srv.world   |
                       +----------+---------+
                         10.0.0.30|
                                  |
+----------------------+          |          +----------------------+
| [  Cluster Node#1  ] |10.0.0.51 | 10.0.0.52| [  Cluster Node#2  ] |
|   node01.srv.world   +----------+----------+   node02.srv.world   |
|     Apache httpd     |          |          |     Apache httpd     |
+----------------------+          |          +----------------------+
                            vip:10.0.0.60
                                  |
                       +----------+---------+
                       | [     Clients    ] |
                       |                    |
                       +--------------------+

[1] On all Cluster Nodes, Install Apache2.
root@node01:~#
apt -y install apache2
root@node01:~#
vi /etc/apache2/conf-available/server-status.conf
# create new (enable server-status)

<Location /server-status>
    SetHandler server-status
    Require local
</Location>

root@node01:~#
a2enconf server-status
[2] On a Node that LVM shared storage is active in Cluster, Copy httpd files and create a Test page.
[/dev/vg_ha/lv_ha] on the example below is LVM shared storage.
root@node01:~#
mount /dev/vg_ha/lv_ha /mnt

root@node01:~#
cp -pR /var/www/* /mnt/

root@node01:~#
echo "High Availability Test Page" > /mnt/html/index.html

root@node01:~#
umount /mnt

[3] On a Node that LVM shared storage is active in Cluster, Add httpd resource.
[/dev/vg_ha/lv_ha] on the example below is LVM shared storage.
root@node01:~#
pcs status

Cluster name: ha_cluster
Cluster Summary:
  * Stack: corosync (Pacemaker is running)
  * Current DC: node01.srv.world (version 2.1.6-6fdc9deea29) - partition with quorum
  * Last updated: Tue Jul 23 04:19:20 2024 on node01.srv.world
  * Last change:  Tue Jul 23 04:15:34 2024 by root via cibadmin on node01.srv.world
  * 2 nodes configured
  * 2 resource instances configured

Node List:
  * Online: [ node01.srv.world node02.srv.world ]

Full List of Resources:
  * scsi-shooter        (stonith:fence_scsi):    Started node01.srv.world
  * Resource Group: ha_group:
    * lvm_ha    (ocf:heartbeat:LVM-activate):    Started node01.srv.world

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

# create filesystem resource

root@node01:~#
pcs resource create httpd_fs ocf:heartbeat:Filesystem device=/dev/vg_ha/lv_ha directory=/var/www fstype=ext4 group ha_group --future
# create virtual IP address resource

root@node01:~#
pcs resource create httpd_vip ocf:heartbeat:IPaddr2 ip=10.0.0.60 cidr_netmask=24 group ha_group --future
# create Apache resource

root@node01:~#
pcs resource create website ocf:heartbeat:apache configfile=/etc/apache2/apache2.conf statusurl=http://127.0.0.1/server-status group ha_group --future
root@node01:~#
pcs status

Cluster name: ha_cluster
Cluster Summary:
  * Stack: corosync (Pacemaker is running)
  * Current DC: node01.srv.world (version 2.1.6-6fdc9deea29) - partition with quorum
  * Last updated: Tue Jul 23 04:21:57 2024 on node01.srv.world
  * Last change:  Tue Jul 23 04:21:51 2024 by root via cibadmin on node01.srv.world
  * 2 nodes configured
  * 5 resource instances configured

Node List:
  * Online: [ node01.srv.world node02.srv.world ]

Full List of Resources:
  * scsi-shooter        (stonith:fence_scsi):    Started node01.srv.world
  * Resource Group: ha_group:
    * lvm_ha    (ocf:heartbeat:LVM-activate):    Started node01.srv.world
    * httpd_fs  (ocf:heartbeat:Filesystem):      Started node01.srv.world
    * httpd_vip (ocf:heartbeat:IPaddr2):         Started node01.srv.world
    * website   (ocf:heartbeat:apache):  Started node01.srv.world

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

# access to vip to verify working

root@node01:~#
curl http://10.0.0.60/index.html

High Availability Test Page
Matched Content