<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Cluster HAProxy - CoffeeBreak Info</title>
	<atom:link href="https://coffeebreak.en-images.info/category/systeme-linux/redhat-centos-linux/cluster-haproxy/feed/" rel="self" type="application/rss+xml" />
	<link>https://coffeebreak.en-images.info/category/systeme-linux/redhat-centos-linux/cluster-haproxy/</link>
	<description>Une petite pause :)</description>
	<lastBuildDate>Sun, 21 Nov 2021 14:05:21 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://coffeebreak.en-images.info/wp-content/uploads/2021/07/cropped-Tasse_Cafe-scaled-1-32x32.jpg</url>
	<title>Archives des Cluster HAProxy - CoffeeBreak Info</title>
	<link>https://coffeebreak.en-images.info/category/systeme-linux/redhat-centos-linux/cluster-haproxy/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MODOP – PARTIE 5 – Installation WordPress en HA – Cluster HaProxy</title>
		<link>https://coffeebreak.en-images.info/modop-partie-5-installation-wordpress-en-ha-cluster-haproxy/</link>
					<comments>https://coffeebreak.en-images.info/modop-partie-5-installation-wordpress-en-ha-cluster-haproxy/#respond</comments>
		
		<dc:creator><![CDATA[chris]]></dc:creator>
		<pubDate>Mon, 28 Jun 2021 17:57:53 +0000</pubDate>
				<category><![CDATA[Cluster HAProxy]]></category>
		<category><![CDATA[Infrastructure HA Web]]></category>
		<category><![CDATA[OS Linux]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Cluster HA]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[Système]]></category>
		<guid isPermaLink="false">https://coffeebreak.en-images.info/?p=2580</guid>

					<description><![CDATA[<p>Installation du Cluster HaProxy. Il sera en charge de gérer la répartition des charges réseaux pour les bases de données , les accès Web. IL va gérer aussi les Faillover des machines DOWN sur l'infrastructure.</p>
<p>L’article <a href="https://coffeebreak.en-images.info/modop-partie-5-installation-wordpress-en-ha-cluster-haproxy/">MODOP – PARTIE 5 – Installation WordPress en HA – Cluster HaProxy</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>


<p>Pour le Fun nous allons installer HaProxy + KeeAlive sur le fork RockyLinux</p>
<ul>
<li><a href="https://rockylinux.org/download">https://rockylinux.org/download</a></li>
</ul>
<h3><strong>3 machines HaProxy (RockyLinux 8)</strong></h3>
<ul>
<li>node01-haw 172.16.186.20</li>
<li>node02-haw 172.16.186.21</li>
<li>node03-haw 172.16.186.22</li>
<li>node-haw 192.168.1.230/24(vIP)</li>
</ul>
<p><img fetchpriority="high" decoding="async" width="853" height="295" class="wp-image-2584" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-663.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-663.png 853w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-663-300x104.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-663-768x266.png 768w" sizes="(max-width: 853px) 100vw, 853px" /><br />Le Pool « Cluster_SQLW » va être composé de trois machines virtuelles</p>
<ul>
<li>Node01-haw
<ul>
<li>2CPU, 2G RAM, 20Go Disk</li>
<li>Disque 30Go Cluster GlusterGS (node01-gfsw)</li>
<li>LAN Privé : 172.16.186.20</li>
<li>LAN Public : 192.168.1.231</li>
</ul>
</li>
<li>Node02-haw -&gt; 172.16.186.28
<ul>
<li>2CPU, 2G RAM, 20Go Disk</li>
<li>Disque 30Go Cluster GlusterGS (node02-gfsw)</li>
<li>LAN Privé : 172.16.186.21</li>
<li>LAN Public : 192.168.1.232</li>
</ul>
</li>
<li>Node03-haw -&gt; 172.16.186.29
<ul>
<li>2CPU, 2G RAM, 20Go Disk</li>
<li>Disque 30Go Cluster GlusterGS (node03-gfsw)</li>
<li>LAN Privé : 172.16.186.22</li>
<li>LAN Public : 192.168.1.233</li>
</ul>
</li>
</ul>
<p>Comme pour le Cluster Web n nous ferons héberger le(s) fichier(s) de conf de HaProxy.</p>
<h3>1°) Désactivation du SElinux (3 nœuds haw)</h3>
<pre>[root@node01-haw ~]# <span style="color: #ff0000;"><strong>vi /etc/selinux/config</strong></span><br /><span style="color: #ff0000;"><em>SELINUX=</em><strong><em>disabled</em></strong></span></pre>
<p>Redémarrer la machine.</p>
<pre>[root@node01-haw ~]# <span style="color: #ff0000;"><strong>reboot</strong></span></pre>
<h3>2°) Installation de paquets utiles(3 nœuds haw)</h3>
<pre>[root@node01- haw ~]# <span style="color: #ff0000;"><strong>yum update &amp;&amp; yum upgrade</strong></span><br />[root@node01- haw ~]#] <span style="color: #ff0000;"><strong>yum install qemu-guest-agent</strong></span><br />[root@node01- haw ~]# <span style="color: #ff0000;"><strong>yum install nmap net-tools</strong></span></pre>
<h3>3°)Installantion NTP (3 nœuds haw)</h3>
<pre>[root@node01- haw ~]# <span style="color: #ff0000;"><strong>dnf install chrony</strong></span><br />[root@node01- haw ~]# <span style="color: #ff0000;"><strong>systemctl start chronyd</strong></span><br />[root@node01- haw ~]# <span style="color: #ff0000;"><strong>systemctl enable chronyd</strong></span><br />[root@node01- haw ~]# <span style="color: #ff0000;"><strong>systemctl status chronyd</strong></span></pre>
<pre>[root@node01- haw ~]#<span style="color: #ff0000;"><strong> firewall-cmd --permanent --add-service=ntp --zone=public</strong></span><br />[root@node01- haw ~]#<span style="color: #ff0000;"><strong> firewall-cmd --reload</strong></span></pre>
<h3>4°) Installation du client Gluterfs (3 nœuds web)</h3>
<pre>[root@node01-haw ~]# <span style="color: #ff0000;"><strong>yum -y install glusterfs-fuse</strong></span><br />[root@node01-haw ~]# <span style="color: #ff0000;"><strong>mkdir -p /sharegfs</strong></span></pre>
<p><strong>Montage de la ressource /gfs dans /etc/fstab via le réseau privé (3 nœuds web)</strong></p>
<h4><strong>node01-haw</strong></h4>
<pre>[root@node01-haw ~]# <strong><span style="color: #ff0000;">vi /etc/fstab</span></strong><br /><span style="color: #ff0000;"><strong>node01-gfsw:</strong>/gfsw /sharegfs glusterfs defaults,_netdev 0 0 </span><br />[root@node01-haw ~]#<span style="color: #ff0000;"><strong> mount -a</strong></span><br />[root@node01-haw ~]# <span style="color: #ff0000;"><strong>df -Th /sharegfs/</strong></span></pre>
<p><img decoding="async" width="563" height="98" class="wp-image-2586" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-664.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-664.png 563w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-664-300x52.png 300w" sizes="(max-width: 563px) 100vw, 563px" /></p>
<h4><strong>node02-haw</strong></h4>
<pre>[root@node02-haw ~]#<span style="color: #ff0000;"><strong> vi /etc/fstab</strong></span><br /><span style="color: #ff0000;"><strong>node02-gfsw:</strong>/gfsw /sharegfs glusterfs defaults,_netdev 0 0 </span><br />[root@node02-haw ~]# <strong><span style="color: #ff0000;">mount -a</span></strong><br />[root@node02-haw ~]# <span style="color: #ff0000;"><strong>df -Th /sharegfs/</strong></span></pre>
<p><img decoding="async" width="560" height="91" class="wp-image-2587" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-665.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-665.png 560w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-665-300x49.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></p>
<h4><strong>node03-haw</strong></h4>
<pre>[root@node03-haw ~]# <span style="color: #ff0000;"><strong>vi /etc/fstab</strong></span><br /><span style="color: #ff0000;"><strong>node03-gfsw:</strong>/gfsw /sharegfs glusterfs defaults,_netdev 0 0 </span><br />[root@node03-haw ~]# <span style="color: #ff0000;"><strong>mount -a</strong></span><br />[root@node03-haw ~]# <span style="color: #ff0000;"><strong>df -Th /sharegfs/</strong></span></pre>
<p><img loading="lazy" decoding="async" width="577" height="87" class="wp-image-2589" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-666.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-666.png 577w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-666-300x45.png 300w" sizes="auto, (max-width: 577px) 100vw, 577px" /></p>
<h3>5°) Installation de KeepAlive (3 nœuds haw)</h3>
<pre>[root@node03-haw ~]# <span style="color: #ff0000;"><strong>yum -y install keepalived</strong></span><br />[root@node03-haw ~]#<span style="color: #ff0000;"><strong> yum -y install ipvsadm</strong></span><br /><br />[root@node03-haw ~]# <span style="color: #ff0000;"><strong>modprobe ip_vs</strong></span><br />[root@node03-haw ~]# <span style="color: #ff0000;"><strong>echo ip_vs &gt;&gt; /etc/modules</strong></span><br /><br />[root@node03-haw ~]# <span style="color: #ff0000;"><strong>firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent</strong></span><br />[root@node03-haw ~]#<span style="color: #ff0000;"><strong> firewall-cmd --reload</strong></span></pre>
<p> </p>
<h4><strong>Configuration node Master (node01-haw)</strong></h4>
<pre>[root@node01-haw]# <span style="color: #ff0000;"><strong>mv /etc/keepalived/keepalived.conf{,-old}</strong></span></pre>
<pre>[root@node01-haw]# <span style="color: #ff0000;"><strong>vi /etc/keepalived/keepalived.conf</strong></span><br /><em><span style="color: #ff0000;">global_defs {</span></em><br /><em><span style="color: #ff0000;">        enable_script_security</span></em><br /><em><span style="color: #ff0000;">}</span></em><br /><em><span style="color: #ff0000;">vrrp_script check_haproxy {</span></em><br /><em><span style="color: #ff0000;">        script "/usr/bin/killall -0 haproxy"</span></em><br /><em><span style="color: #ff0000;">        interval 1</span></em><br /><em><span style="color: #ff0000;">}</span></em><br /><em><span style="color: #ff0000;">vrrp_instance VI_1 {</span></em><br /><em><span style="color: #ff0000;">         virtual_router_id 100</span></em><br /><em><span style="color: #ff0000;">         state MASTER</span></em><br /><em><span style="color: #ff0000;"><strong>         priority 102</strong></span></em><br /><em><span style="color: #ff0000;">#Interval Check</span></em><br /><em><span style="color: #ff0000;">        advert_int 1</span></em><br /><em><span style="color: #ff0000;">#interface de synchro entre les haproxy</span></em><br /><em><span style="color: #ff0000;">        lvs_sync_daemon_interface <strong>ens19</strong></span></em><br /><em><span style="color: #ff0000;">        interface <strong>ens19</strong></span></em><br /><em><span style="color: #ff0000;">#Authentification</span></em><br /><em><span style="color: #ff0000;">authentication {</span></em><br /><em><span style="color: #ff0000;"><strong>         auth_type PASS</strong></span></em><br /><em><span style="color: #ff0000;"><strong>         auth_pass 2021</strong></span></em><br /><em><span style="color: #ff0000;">}</span></em><br /><em><span style="color: #ff0000;">#Address VIP</span></em><br /><em><span style="color: #ff0000;">virtual_ipaddress {</span></em><br /><em><span style="color: #ff0000;">    <strong>     192.168.1.230</strong></span></em><br /><em><span style="color: #ff0000;">}</span></em><br /><em><span style="color: #ff0000;">track_script {</span></em><br /><em><span style="color: #ff0000;">          check_haproxy</span></em><br /><em><span style="color: #ff0000;">}</span></em><br /><em><span style="color: #ff0000;">}</span></em></pre>
<pre>[root@node01-haw ~]# <span style="color: #ff0000;">systemctl enable keepalived &amp;&amp; systemctl start keepalived</span></pre>
<h4>Configuration node Master (node02-haw)</h4>
<pre>[root@node02-haw]# <span style="color: #ff0000;"><strong>mv /etc/keepalived/keepalived.conf{,-old}</strong></span></pre>
<pre>[root@node02-haw]# <span style="color: #ff0000;"><strong>vi /etc/keepalived/keepalived.conf</strong></span><br /><span style="color: #ff0000;"><em>global_defs {</em></span><br /><span style="color: #ff0000;"><em>         enable_script_security</em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>vrrp_script check_haproxy {</em></span><br /><span style="color: #ff0000;"><em>         script "/usr/bin/killall -0 haproxy"</em></span><br /><span style="color: #ff0000;"><em>         interval 1</em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>vrrp_instance VI_1 {</em></span><br /><span style="color: #ff0000;"><em>         virtual_router_id 100</em></span><br /><span style="color: #ff0000;"><em>         state MASTER</em></span><br /><span style="color: #ff0000;"><em><strong>         priority 101</strong></em></span><br /><span style="color: #ff0000;"><em>#Interval Check</em></span><br /><span style="color: #ff0000;"><em>         advert_int 1</em></span><br /><span style="color: #ff0000;"><em>#interface de synchro entre les haproxy</em></span><br /><span style="color: #ff0000;"><em>         lvs_sync_daemon_interface <strong>ens19</strong></em></span><br /><span style="color: #ff0000;"><em>         interface <strong>ens19</strong></em></span><br /><span style="color: #ff0000;"><em>#Authentification</em></span><br /><span style="color: #ff0000;"><em>authentication {</em></span><br /><span style="color: #ff0000;"><em><strong>         auth_type PASS</strong></em></span><br /><span style="color: #ff0000;"><em><strong>        auth_pass 2021</strong></em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>#Address VIP</em></span><br /><span style="color: #ff0000;"><em>virtual_ipaddress {</em></span><br /><span style="color: #ff0000;"><em>   <strong>     192.168.1.230</strong></em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>track_script {</em></span><br /><span style="color: #ff0000;"><em>         check_haproxy</em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>}</em></span></pre>
<pre>[root@node02-haw ~]# <span style="color: #ff0000;"><strong>systemctl enable keepalived &amp;&amp; systemctl start keepalived</strong></span></pre>
<h4>Configuration node Master (node03-haw)</h4>
<pre>[root@node03-haw]# <span style="color: #ff0000;"><strong>mv /etc/keepalived/keepalived.conf{,-old}</strong></span></pre>
<pre><br />[root@node03-haw]# <span style="color: #ff0000;"><strong>vi /etc/keepalived/keepalived.conf</strong></span><br /><span style="color: #ff0000;"><em>global_defs {</em></span><br /><span style="color: #ff0000;"><em>         enable_script_security</em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>vrrp_script check_haproxy {</em></span><br /><span style="color: #ff0000;"><em>          script "/usr/bin/killall -0 haproxy"</em></span><br /><span style="color: #ff0000;"><em>          interval 1</em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>vrrp_instance VI_1 {</em></span><br /><span style="color: #ff0000;"><em>         virtual_router_id 100</em></span><br /><span style="color: #ff0000;"><em>         state MASTER</em></span><br /><span style="color: #ff0000;"><em><strong>         priority 100</strong></em></span><br /><span style="color: #ff0000;"><em>#Interval Check</em></span><br /><span style="color: #ff0000;"><em>         advert_int 1</em></span><br /><span style="color: #ff0000;"><em>#interface de synchro entre les haproxy</em></span><br /><span style="color: #ff0000;"><em>         lvs_sync_daemon_interface <strong>ens19</strong></em></span><br /><span style="color: #ff0000;"><em>         interface <strong>ens19</strong></em></span><br /><span style="color: #ff0000;"><em>#Authentification</em></span><br /><span style="color: #ff0000;"><em>authentication {</em></span><br /><span style="color: #ff0000;"><em><strong>          auth_type PASS</strong></em></span><br /><span style="color: #ff0000;"><em><strong>          auth_pass 2021</strong></em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>#Address VIP</em></span><br /><span style="color: #ff0000;"><em>virtual_ipaddress {</em></span><br /><span style="color: #ff0000;"><em>          <strong>192.168.1.230</strong></em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>track_script {</em></span><br /><span style="color: #ff0000;"><em>         check_haproxy</em></span><br /><span style="color: #ff0000;"><em>}</em></span><br /><span style="color: #ff0000;"><em>}</em></span></pre>
<pre><br />[root@node03-haw ~]# <span style="color: #ff0000;"><strong>systemctl enable keepalived &amp;&amp; systemctl start keepalived</strong></span></pre>
<h3>6°) Mode de fonctionnement de KeepALived</h3>
<p><strong>=&gt; Les 3 machines sont UP</strong></p>
<ul>
<li>l’IP virtuelle est portée par la machine dont la priorité est le plus haut : node01-haw</li>
</ul>
<p><strong>Côté Node01 (Priorité 102)</strong><br /><img loading="lazy" decoding="async" width="948" height="86" class="wp-image-2592" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-667.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-667.png 948w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-667-300x27.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-667-768x70.png 768w" sizes="auto, (max-width: 948px) 100vw, 948px" /><br /><strong>Côté Node02 et Node03 (Priorité 101 et 100)</strong><br /><img loading="lazy" decoding="async" width="815" height="83" class="wp-image-2594" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-668.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-668.png 815w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-668-300x31.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-668-768x78.png 768w" sizes="auto, (max-width: 815px) 100vw, 815px" /><br /><img loading="lazy" decoding="async" width="862" height="73" class="wp-image-2595" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-669.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-669.png 862w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-669-300x25.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-669-768x65.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" /></p>
<p><strong>=&gt; La machine node01 est Down</strong></p>
<ul>
<li>L’IP virtuelle sera portée par la machine qui sera le plus haut sur les machines encore UP</li>
</ul>
<p>Côté Node02 (Priorité 101)<br /><img loading="lazy" decoding="async" width="900" height="93" class="wp-image-2597" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-670.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-670.png 900w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-670-300x31.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-670-768x79.png 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /><br />Côté Node03 (Priorité 100)<br /><img loading="lazy" decoding="async" width="862" height="73" class="wp-image-2600" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-671.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-671.png 862w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-671-300x25.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-671-768x65.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" /></p>
<p><strong>=&gt; La machine node01 et node02 sont down</strong></p>
<ul>
<li>L’IP virtuelle sera redistribué sur node03</li>
</ul>
<p><img loading="lazy" decoding="async" width="836" height="94" class="wp-image-2602" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-672.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-672.png 836w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-672-300x34.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-672-768x86.png 768w" sizes="auto, (max-width: 836px) 100vw, 836px" /><br />On peut ainsi constater que si une machine du Ha Proxy venait à être hors ligne, l’IP virtuelle serait redistribué à la machine de priorité n-1.</p>
<h3>7°) Installation de Ha Proxy (3 nœuds haw)</h3>
<pre>[root@node01-haw ~]#<span style="color: #ff0000;"><strong> yum -y install haproxy</strong></span></pre>
<h4>Sur le node01-haw</h4>
<pre>[root@node01-haw ~]#<strong><span style="color: #ff0000;"> cd /etc/haproxy</span></strong><br />[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>mv haproxy.cfg{,-old}</strong></span><br />[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>mkdir -p /sharegfs/etc/haproxy</strong></span><br />[root@node01-haw haproxy]#<span style="color: #ff0000;"><strong> touch /sharegfs/etc/haproxy/haproxy.cfg</strong></span><br />[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>ln -s /sharegfs/etc/haproxy/haproxy.cfg haproxy.cfg</strong></span><br />[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>chmod 644 /sharegfs/etc/haproxy/haproxy.cfg</strong></span></pre>
<h4>Sur le node02-haw</h4>
<pre>[root@node02-haw ~]# <span style="color: #ff0000;"><strong>cd /etc/haproxy</strong></span><br />[root@node02-haw haproxy]#<strong><span style="color: #ff0000;"> mv haproxy.cfg{,-old}</span></strong><br />[root@node02-haw haproxy]# <span style="color: #ff0000;"><strong>ln -s /sharegfs/etc/haproxy/haproxy.cfg haproxy.cfg</strong></span></pre>
<h4>Sur le node03-haw</h4>
<pre>[root@node03-haw ~]# <span style="color: #ff0000;"><strong>cd /etc/haproxy</strong></span><br />[root@node03-haw haproxy]#<span style="color: #ff0000;"><strong> mv haproxy.cfg{,-old}</strong></span><br />[root@node02-haw haproxy]# <span style="color: #ff0000;"><strong>ln -s /sharegfs/etc/haproxy/haproxy.cfg haproxy.cfg</strong></span></pre>
<h3>8° ) Configurer la Partie Global , Defaults et Site Management</h3>
<h4>Sur le node01-haw</h4>
<pre>[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>yum install vim</strong></span></pre>
<pre>[root@node01-haw ~]# <span style="color: #ff0000;"><strong>vim /sharegfs/etc/haproxy/haproxy.cfg</strong></span><br /><br /><span style="color: #ff0000;"><em>######################################</em></span><br /><span style="color: #ff0000;"><em># Partie Global , Default et Site Managemnt</em></span><br /><span style="color: #ff0000;"><em>#############################################</em></span><br /><span style="color: #ff0000;"><em>global</em></span><br /><span style="color: #ff0000;"><em>        log 127.0.0.1 local2</em></span><br /><span style="color: #ff0000;"><em>        chroot /var/lib/haproxy</em></span><br /><span style="color: #ff0000;"><em>        pidfile /var/run/haproxy.pid</em></span><br /><span style="color: #ff0000;"><em>        maxconn 4000</em></span><br /><span style="color: #ff0000;"><em>        user haproxy</em></span><br /><span style="color: #ff0000;"><em>        group haproxy</em></span><br /><span style="color: #ff0000;"><em>        daemon</em></span><br /><span style="color: #ff0000;"><em>        #description HA Proxy sur l'infrastructure HA Mail Cluster</em></span><br /><span style="color: #ff0000;"><em>         stats socket /var/lib/haproxy/stats</em></span><br /><br /><span style="color: #ff0000;"><em>defaults</em></span><br /><span style="color: #ff0000;"><em>        mode http</em></span><br /><span style="color: #ff0000;"><em>        log global</em></span><br /><span style="color: #ff0000;"><em>        option dontlognull</em></span><br /><span style="color: #ff0000;"><em>        option http-server-close</em></span><br /><span style="color: #ff0000;"><em>        option redispatch</em></span><br /><span style="color: #ff0000;"><em>        retries 3</em></span><br /><span style="color: #ff0000;"><em>        timeout http-request 10s</em></span><br /><span style="color: #ff0000;"><em>        timeout queue 1m</em></span><br /><span style="color: #ff0000;"><em>        timeout connect 10s</em></span><br /><span style="color: #ff0000;"><em>        timeout client 1m</em></span><br /><span style="color: #ff0000;"><em>        timeout server 1m</em></span><br /><span style="color: #ff0000;"><em>        timeout http-keep-alive 10s</em></span><br /><span style="color: #ff0000;"><em>       timeout check 10s </em></span><br /><span style="color: #ff0000;"><em>       maxconn 3000</em></span><br /><br /><span style="color: #ff0000;"><em>listen stats</em></span><br /><span style="color: #ff0000;"><em>        bind *:9000</em></span><br /><span style="color: #ff0000;"><em>        stats enable</em></span><br /><span style="color: #ff0000;"><em>        stats uri <strong>/status</strong></em></span><br /><span style="color: #ff0000;"><em>        stats refresh 2s</em></span><br /><span style="color: #ff0000;"><em>        stats auth <strong>chris:ChouxCroute2021</strong></em></span><br /><span style="color: #ff0000;"><em>        stats show-desc</em></span><br /><span style="color: #ff0000;"><em>        stats show-legends</em></span><br /><span style="color: #ff0000;"><em>        stats admin if TRUE</em></span></pre>
<pre>[root@<strong>node01-haw</strong> haproxy]# <span style="color: #ff0000;"><strong>systemctl enable haproxy &amp;&amp; systemctl start haproxy</strong></span><br />[root@<strong>node02-haw</strong> haproxy]#<span style="color: #ff0000;"><strong> systemctl enable haproxy &amp;&amp; systemctl start haproxy</strong></span><br />[root@<strong>node03-haw</strong> haproxy]# <span style="color: #ff0000;"><strong>systemctl enable haproxy &amp;&amp; systemctl start haproxy</strong></span></pre>
<pre>[root@<strong>node01-haw</strong> haproxy]# <span style="color: #ff0000;"><strong>firewall-cmd --add-port=9000/tcp --zone=public --permanent &amp;&amp; firewall-cmd --reload</strong></span><br />[root@<strong>node02-haw</strong> haproxy]# <strong><span style="color: #ff0000;">firewall-cmd --add-port=9000/tcp --zone=public --permanent &amp;&amp; firewall-cmd --reload</span></strong><br />[root@<strong>node03-haw</strong> haproxy]# <span style="color: #ff0000;"><strong>firewall-cmd --add-port=9000/tcp --zone=public --permanent &amp;&amp; firewall-cmd --reload</strong></span></pre>
<p><strong>L’accès au site de management se fait à l’adresse suivant</strong></p>
<ul>
<li><strong><a href="http://nodehaw.house.cpb:9000/status">http://nodehaw.house.cpb:9000/status</a></strong></li>
</ul>
<p><img loading="lazy" decoding="async" width="1070" height="283" class="wp-image-2603" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-673.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-673.png 1070w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-673-300x79.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-673-1024x271.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-673-768x203.png 768w" sizes="auto, (max-width: 1070px) 100vw, 1070px" /><br /><img loading="lazy" decoding="async" width="1901" height="315" class="wp-image-2605" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-674.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-674.png 1901w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-674-300x50.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-674-1024x170.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-674-768x127.png 768w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-674-1536x255.png 1536w" sizes="auto, (max-width: 1901px) 100vw, 1901px" /></p>
<h3>9°) Configurer le Check des machines Ha Proxy(Couche OSI L4)</h3>
<pre>[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>vim /sharegfs/etc/haproxy/haproxy.cfg</strong></span><br /><br /><span style="color: #ff0000;"><em>######################################</em></span><br /><span style="color: #ff0000;"><em># Partie FrontEND </em></span><br /><span style="color: #ff0000;"><em>############################################</em></span><br /><span style="color: #ff0000;"><em>frontend Cluster_ha</em></span><br /><span style="color: #ff0000;"><em> mode http</em></span><br /><span style="color: #ff0000;"><em> acl <strong>ServerHAW</strong> hdr_dom(host) -i <strong>nodehaw.house.cpb</strong></em></span><br /><span style="color: #ff0000;"><em> use_backend <strong>ClusterHA</strong> if <strong>ServerHAW</strong></em></span><br /><span style="color: #ff0000;"><em> description FrontEnd pour le Cluster WEB HA Proxy</em></span><br /><br /><span style="color: #ff0000;"><em>############################################</em></span><br /><span style="color: #ff0000;"><em># Partie BackEND</em></span><br /><span style="color: #ff0000;"><em>#############################################</em></span><br /><span style="color: #ff0000;"><em>backend <strong>ClusterHA</strong></em></span><br /><span style="color: #ff0000;"><strong><em> balance roundrobin</em></strong></span><br /><span style="color: #ff0000;"><em> server node01-haw node01-haw:9000 check inter 3s fall 3 rise 2</em></span><br /><span style="color: #ff0000;"><em> server node02-haw node02-haw:9000 check inter 3s fall 3 rise 2</em></span><br /><span style="color: #ff0000;"><em> server node03-haw node03-haw:9000 check inter 3s fall 3 rise 2</em></span></pre>
<pre>[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>systemctl reload haproxy</strong></span><br />[root@node02-haw haproxy]# <span style="color: #ff0000;"><strong>systemctl reload haproxy</strong></span><br />[root@node03-haw haproxy]# <span style="color: #ff0000;"><strong>systemctl reload haproxy</strong></span></pre>
<p><em><img loading="lazy" decoding="async" width="1908" height="503" class="wp-image-2608" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-675.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-675.png 1908w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-675-300x79.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-675-1024x270.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-675-768x202.png 768w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-675-1536x405.png 1536w" sizes="auto, (max-width: 1908px) 100vw, 1908px" /></em></p>
<h3>10°) Installation Check HaProxy pour le Cluster MYsql (Couche OSI L7)</h3>
<h4><span style="text-decoration: underline;"><strong>Côté Cluster SQLW</strong></span></h4>
<p><strong>Rules Firewall 3 nœuds Percona/Mysql)</strong></p>
<pre>[root@node01-sqlw ~]# <span style="color: #ff0000;"><strong>firewall-cmd --zone=public --add-port=9200/tcp --permanent &amp;&amp; firewall-cmd --reload</strong></span></pre>
<p><strong>Installation clustercheck (3 nœuds Percona/Mysql)</strong></p>
<pre>[root@node01-sqlw ~]#<span style="color: #ff0000;"><strong> cd /home/chris</strong></span><br />[root@node01-sqlw ~]# <span style="color: #ff0000;"><strong>yum install wget</strong></span><br />[root@node01-sqlw ~]#<span style="color: #ff0000;"><strong> wget <a style="color: #ff0000;" href="https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck">https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck</a></strong></span><br />[root@node01-sqlw ~]# <span style="color: #ff0000;"><strong>mv clustercheck /usr/bin/Clustercheck</strong></span><br />[root@node01-sqlw ~]# <span style="color: #ff0000;"><strong>chmod +x /usr/bin/Clustercheck</strong></span></pre>
<p><strong>Installer mysqlchk via xinetd (3 nœuds Percona/Mysql)</strong><br />Le service Check sera exécuté via le daemon xinetd déclenché par la demande des HaProxy via le port 9200.</p>
<pre>[root@node01-sqlw ~]# <span style="color: #ff0000;"><strong>yum install xinetd</strong></span></pre>
<p><strong>Créer un utilisateur commun aux 3 nœuds Percona/Mysql</strong><br />A faire sur le node01 , il sera répliqué sur les autres node0x-sqlw</p>
<pre>mysql&gt; <span style="color: #ff0000;"><strong>CREATE USER 'ClusterCheck'@'node01-haw' IDENTIFIED BY '%';</strong></span><br />mysql&gt; <strong><span style="color: #ff0000;">GRANT ALL ON *.* TO 'ClusterCheck'@'%';</span></strong><br />mysql&gt; <span style="color: #ff0000;"><strong>FLUSH PRIVILEGES;</strong></span></pre>
<p><strong>Réplication sur node02 et node03 des utilisateurs Clustercheck</strong></p>
<pre>[root@node02-sqlw chris]# <span style="color: #ff0000;"><strong>mysql -u root -p -e "SELECT User, Host, Password FROM mysql.user;"</strong></span><br />[root@node03-sqlw chris]# <span style="color: #ff0000;"><strong>mysql -u root -p -e "SELECT User, Host, Password FROM mysql.user;"</strong></span></pre>
<p><img loading="lazy" decoding="async" width="639" height="254" class="wp-image-2610" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-676.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-676.png 639w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-676-300x119.png 300w" sizes="auto, (max-width: 639px) 100vw, 639px" /></p>
<p><strong>Modifier le script Clustercheck (3 nœuds Percona/Mysql)</strong></p>
<pre>[root@node01-sqlw chris]#<span style="color: #ff0000;"><strong> vi /usr/bin/Clustercheck</strong></span><br /><br /><span style="color: #ff0000;"><em>MYSQL_USERNAME="${MYSQL_USERNAME:=-clustercheckuser}"</em></span><br /><em><span style="color: #ff0000;">MYSQL_PASSWORD="${MYSQL_PASSWORD-clustercheckpassword!}</span>"</em></pre>
<p>Modifier par</p>
<p><strong><em><span style="color: #ff0000;">MYSQL_USERNAME= »${1-ClusterCheck} »</span></em></strong><br /><strong><em><span style="color: #ff0000;">MYSQL_PASSWORD= »${2-check@2021} »</span></em></strong><br /><img loading="lazy" decoding="async" width="563" height="111" class="wp-image-2611" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-677.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-677.png 563w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-677-300x59.png 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></p>
<p><strong>Check du script</strong></p>
<pre>[root@node01-sqlw chris]#<strong><span style="color: #ff0000;"> /usr/bin/Clustercheck</span></strong></pre>
<p><img loading="lazy" decoding="async" width="632" height="126" class="wp-image-2613" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-678.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-678.png 632w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-678-300x60.png 300w" sizes="auto, (max-width: 632px) 100vw, 632px" /></p>
<p><strong>Ajouter le service mysqlchl port 9200 au service (3 nœuds Percona/Mysql)</strong></p>
<pre>[root@node01-sqlw chris]# <span style="color: #ff0000;"><strong>vi /etc/services</strong></span><br /><span style="color: #ff0000;"><em>#wap-wsp 9200/tcp # WAP connectionless session service</em></span><br /><span style="color: #ff0000;"><em>#wap-wsp 9200/udp # WAP connectionless session service</em></span><br /><span style="color: #ff0000;"><em>mysqlchk 9200/tcp # mysqlchk</em></span></pre>
<p><img loading="lazy" decoding="async" width="726" height="117" class="wp-image-2614" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-679.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-679.png 726w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-679-300x48.png 300w" sizes="auto, (max-width: 726px) 100vw, 726px" /></p>
<p><strong>Fichier /etc/xinetd.d/mysqlchk (3 nœuds Percona/Mysql)</strong></p>
<pre><span style="color: #ff0000;"><em># description: mysqlchk</em></span><br /><span style="color: #ff0000;"><em>service mysqlchk</em></span><br /><span style="color: #ff0000;"><em>{</em></span><br /><span style="color: #ff0000;"><em>     disable = no</em></span><br /><span style="color: #ff0000;"><em>     flags = REUSE</em></span><br /><span style="color: #ff0000;"><em>     socket_type = stream</em></span><br /><span style="color: #ff0000;"><em>     port = 9200</em></span><br /><span style="color: #ff0000;"><em>     wait = no</em></span><br /><span style="color: #ff0000;"><em>    user = nobody</em></span><br /><span style="color: #ff0000;"><strong><em>    server = /usr/bin/Clustercheck</em></strong></span><br /><span style="color: #ff0000;"><em>    log_on_failure += USERID</em></span><br /><span style="color: #ff0000;"><em>    only_from = 0.0.0.0/0</em></span><br /><span style="color: #ff0000;"><em>    per_source = UNLIMITED</em></span><br /><span style="color: #ff0000;"><em>}</em></span></pre>
<pre>[root@node01-sqlw chris]# <span style="color: #ff0000;"><strong>chmod +x /etc/xinetd.d/mysqlchk</strong></span><br />[root@node01-sqlw chris]#<span style="color: #ff0000;"><strong> systemctl enable xinetd</strong></span><br />[root@node01-sqlw chris]# <span style="color: #ff0000;"><strong>systemctl restart xinetd</strong></span></pre>
<h4><span style="text-decoration: underline;">Côté Cluster HAW</span></h4>
<p><strong>Rules des Firewalld (3 nœuds haProxy)</strong></p>
<pre>[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>firewall-cmd --zone=public --permanent --add-port=9200/tcp</strong></span><br />[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>firewall-cmd --zone=public --permanent --add-port=3306/tcp</strong></span><br />[root@node01-haw haproxy]#<span style="color: #ff0000;"><strong> firewall-cmd --reload</strong></span></pre>
<p><strong>FrontEnd et backEnd Haproxy</strong></p>
<pre>[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>vi /etc/haproxy/haproxy.cfg</strong></span><br /><br /><span style="color: #ff0000;"><em>frontend Cluster_Mysql</em></span><br /><span style="color: #ff0000;"><em>      bind *:3306</em></span><br /><span style="color: #ff0000;"><em>      mode tcp</em></span><br /><span style="color: #ff0000;"><em>      use_backend Clustermysql</em></span><br /><span style="color: #ff0000;"><em>      description FrontEnd pour le Cluster Mysql</em></span><br /><br /><span style="color: #ff0000;"><em>listen Clustermysql</em></span><br /><span style="color: #ff0000;"><strong><em>     balance roundrobin</em></strong></span><br /><span style="color: #ff0000;"><em>     option httpchk</em></span><br /><span style="color: #ff0000;"><em>     mode tcp</em></span><br /><span style="color: #ff0000;"><em>     server node01-sqlw node01-sqlw:3306 check port 9200 inter 12000 rise 3 fall 3</em></span><br /><span style="color: #ff0000;"><em>     server node02-sqlw node02-sqlw:3306 check port 9200 inter 12000 rise 3 fall 3</em></span><br /><span style="color: #ff0000;"><em>     server node03-sqlw node03-sqlw:3306 check port 9200 inter 12000 rise 3 fall 3</em></span></pre>
<p><strong>Redémarrage haProxy (3 nœuds haProxy)</strong></p>
<pre>[root@node01-haw haproxy]#<span style="color: #ff0000;"><strong> systemctl restart haproxy</strong></span><br />[root@node02-haw haproxy]#<span style="color: #ff0000;"><strong> systemctl restart haproxy</strong></span><br />[root@node03-haw haproxy]# <span style="color: #ff0000;"><strong>systemctl restart haproxy</strong></span></pre>
<p><img loading="lazy" decoding="async" width="1898" height="569" class="wp-image-2615" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-680.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-680.png 1898w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-680-300x90.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-680-1024x307.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-680-768x230.png 768w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-680-1536x460.png 1536w" sizes="auto, (max-width: 1898px) 100vw, 1898px" /></p>
<p><strong>Installation du client MySQL (3 nœuds haProxy)</strong></p>
<pre>[root@node01-haw chris]# <span style="color: #ff0000;"><strong>yum install mysql</strong></span></pre>
<p><strong>Test connexion Cluster SQL via client Lambda (client host :centos7)</strong></p>
<pre>[root@Centos7 ~]# <span style="color: #ff0000;"><strong>yum install mysql</strong></span><br />[root@Centos7 ~]# <span style="color: #ff0000;"><strong>mysql -u ClusterCheck -p -h node-haw.house.cpb -P 3306 -e "select Host, User, Password from mysql.user"</strong></span></pre>
<p><img loading="lazy" decoding="async" width="1034" height="233" class="wp-image-2617" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-681.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-681.png 1034w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-681-300x68.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-681-1024x231.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-681-768x173.png 768w" sizes="auto, (max-width: 1034px) 100vw, 1034px" /><br />Donc le client centos7 se connecte à une machine node0x-sqlw du cluster à travers le roundrobin de Haproxy (node-haw)</p>
<p>Pour différencier les accès machines nous allons ajouter au DNS les hosts suivants</p>
<ul>
<li>Sqlw.house.cpb  &#8211; Accès Cluster SQL</li>
<li>WordPress.house.cpb – Site wordpress</li>
<li>Site1.house.cpb – Site test</li>
</ul>
<p><strong>Côté DNS</strong><br /><img loading="lazy" decoding="async" width="360" height="142" class="wp-image-2620" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-682.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-682.png 360w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-682-300x118.png 300w" sizes="auto, (max-width: 360px) 100vw, 360px" /><br /><strong>Côté client « centos7 »</strong><br /><img loading="lazy" decoding="async" width="788" height="361" class="wp-image-2622" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-683.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-683.png 788w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-683-300x137.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-683-768x352.png 768w" sizes="auto, (max-width: 788px) 100vw, 788px" /></p>
<h3>11°) Ajouter le LoadBalancing Web (FrontEnd et BAckEnd ) &#8211; (Couche OSI L7)</h3>
<pre>[root@node01-haw ~]# <span style="color: #ff0000;"><strong>vi /etc/haproxy/haproxy.cfg</strong></span><br /><br /><span style="color: #ff0000;"><em>frontend Cluster_web</em></span><br /><span style="color: #ff0000;"><em>     bind *:80</em></span><br /><span style="color: #ff0000;"><em>     mode http</em></span><br /><span style="color: #ff0000;"><em>     #bloc load Cluster site1 Web</em></span><br /><span style="color: #ff0000;"><em>     acl <strong>server_site1</strong> hdr_dom(host) -i <strong>site1.house.cpb</strong></em></span><br /><span style="color: #ff0000;"><em>     use_backend <strong>ClusterWEB</strong> if <strong>server_site1</strong></em></span><br /><span style="color: #ff0000;"><em>    description FrontEnd pour le Cluster WEB</em></span><br /><br /><span style="color: #ff0000;"><em>backend <strong>ClusterWEB</strong></em></span><br /><span style="color: #ff0000;"><em>    <strong> balance roundrobin</strong></em></span><br /><span style="color: #ff0000;"><em>     option httpchk GET /index.php</em></span><br /><span style="color: #ff0000;"><em>     server node01-webw node01-webw:80 check inter 3s fall 3 rise 2</em></span><br /><span style="color: #ff0000;"><em>     server node02-webw node02-webw:80 check inter 3s fall 3 rise 2</em></span><br /><span style="color: #ff0000;"><em>     server node03-webw node03-webw:80 check inter 3s fall 3 rise 2</em></span></pre>
<p><strong>Redémarrage haProxy (3 nœuds haProxy)</strong></p>
<pre>[root@node01-haw haproxy]#<span style="color: #ff0000;"><strong> systemctl restart haproxy</strong></span><br />[root@node02-haw haproxy]# <span style="color: #ff0000;"><strong>systemctl restart haproxy</strong></span><br />[root@node03-haw haproxy]# <span style="color: #ff0000;"><strong>systemctl restart haproxy</strong></span></pre>
<p><img loading="lazy" decoding="async" width="1404" height="480" class="wp-image-2623" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-684.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-684.png 1404w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-684-300x103.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-684-1024x350.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-684-768x263.png 768w" sizes="auto, (max-width: 1404px) 100vw, 1404px" /></p>
<p><strong>Rules Firewall (3 haProxy)</strong></p>
<pre>[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>firewall-cmd --zone=public --permanent --add-service=http</strong></span><br />[root@node01-haw haproxy]# <span style="color: #ff0000;"><strong>firewall-cmd --reload</strong></span></pre>
<h4><strong>Vérifions le RoundRobin via HaProxy</strong><br /><img loading="lazy" decoding="async" width="1067" height="580" class="wp-image-2625" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-685.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-685.png 1067w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-685-300x163.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-685-1024x557.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-685-768x417.png 768w" sizes="auto, (max-width: 1067px) 100vw, 1067px" /><br />On constate un roundrobin des accès sur les trois machines web à travers la machine Master node01-haw.</h4><p>Views: 32</p><p>L’article <a href="https://coffeebreak.en-images.info/modop-partie-5-installation-wordpress-en-ha-cluster-haproxy/">MODOP – PARTIE 5 – Installation WordPress en HA – Cluster HaProxy</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://coffeebreak.en-images.info/modop-partie-5-installation-wordpress-en-ha-cluster-haproxy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MODOP – PARTIE 1 &#8211; Installation WordPress en HA – Présentation</title>
		<link>https://coffeebreak.en-images.info/modop-installation-wordpress-en-ha-presentation/</link>
					<comments>https://coffeebreak.en-images.info/modop-installation-wordpress-en-ha-presentation/#respond</comments>
		
		<dc:creator><![CDATA[chris]]></dc:creator>
		<pubDate>Sun, 27 Jun 2021 16:40:31 +0000</pubDate>
				<category><![CDATA[AlmaLinux]]></category>
		<category><![CDATA[Cluster Apache]]></category>
		<category><![CDATA[Cluster HAProxy]]></category>
		<category><![CDATA[Cluster Mysql/MariaDB]]></category>
		<category><![CDATA[RedHat/Centos Linux]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Centos]]></category>
		<category><![CDATA[Cluster GlusterFS]]></category>
		<category><![CDATA[Cluster HA]]></category>
		<category><![CDATA[Cluster MySQL]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<guid isPermaLink="false">https://coffeebreak.en-images.info/?p=2270</guid>

					<description><![CDATA[<p>Mise en place d'une Infrastructure WEB haute disponibilité via des Clusters "Tiers" . Ici on aura  4 Clusters (HaProxy, Mysql , Apache , GLusterFS).<br />
Le site test sera un Wordpress.</p>
<p>L’article <a href="https://coffeebreak.en-images.info/modop-installation-wordpress-en-ha-presentation/">MODOP – PARTIE 1 &#8211; Installation WordPress en HA – Présentation</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le but est de rendre disponible une application web (ici WordPress) dans une infrastructure la plus solide possible.</p>
<h3><strong>Principe </strong></h3>
<p><img loading="lazy" decoding="async" width="1146" height="766" class="wp-image-2274" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-570.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-570.png 1146w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-570-300x201.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-570-1024x684.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-570-768x513.png 768w" sizes="auto, (max-width: 1146px) 100vw, 1146px" /></p>
<h3><strong>Inventaire des Machines</strong></h3>
<p><img loading="lazy" decoding="async" width="1087" height="293" class="wp-image-2275" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-571.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-571.png 1087w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-571-300x81.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-571-1024x276.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-571-768x207.png 768w" sizes="auto, (max-width: 1087px) 100vw, 1087px" /></p>
<h3><strong>Composition des Clusters </strong></h3>
<h3><strong>Cluster HaProxy + keepalive(RockyLinux 8 fork RHEL8)</strong></h3>
<p><a href="https://coffeebreak.en-images.info/?p=2580">MODOP – PARTIE 5 – Installation WordPress en HA – Cluster HaProxy</a></p>
<p><strong>3 machines HaProxy</strong></p>
<ul>
<li>node01-haw 172.16.186.20</li>
<li>node02-haw 172.16.186.21</li>
<li>node03-haw 172.16.186.22</li>
<li>node-haw 192.168.1.230/24(vIP)</li>
</ul>
<p><img loading="lazy" decoding="async" width="955" height="173" class="wp-image-2277" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-572.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-572.png 955w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-572-300x54.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-572-768x139.png 768w" sizes="auto, (max-width: 955px) 100vw, 955px" /></p>
<p>HaProxy va repartir la charge réseau en fonction de la disponibilité des machines du réseau.<br />
Si votre site possède une forte affluence, HaProxy répartira les différentes requêtes SQL, http sur les différents Cluster de machine.<br />
Ici on utilisera 3 machines HaProxy pour gérer la gestion « tiers » panne.<br />
En effet, il y aura un master et deux slaves.</p>
<ul>
<li>Si le master est down l’un des deux « slaves » passe en master et répondra aux requêtes.</li>
<li>Si le deuxième master tombe alors le troisième passera Master.</li>
</ul>
<p>Statistiquement la panne de 2 serveurs sur 3 est assez rare.</p>
<h3><strong>GlusterFS cluster (Centos7)</strong></h3>
<ul>
<li><a href="https://coffeebreak.en-images.info/?p=2310">MODOP – PARTIE 2 – Installation WordPress en HA – GlusterFS</a></li>
</ul>
<p><strong>3 machines GlusterFS</strong></p>
<ul>
<li>node01-gfsw 172.16.186.24</li>
<li>node02-gfsw 172.16.186.25</li>
<li>node03-gfsw 172.16.186.26</li>
</ul>
<p><img loading="lazy" decoding="async" width="965" height="174" class="wp-image-2280" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-573.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-573.png 965w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-573-300x54.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-573-768x138.png 768w" sizes="auto, (max-width: 965px) 100vw, 965px" /></p>
<p>GlusterFS est un service de fichiers distribués. Chaque fichier inscrit sur une machine est automatiquement répliqué sur les autres machines du cluster.<br />
Si une machine du cluster est down, les fichiers restent disponibles sur les deux autres nœuds du Cluster.<br />
Nous allons héberger les fichiers de conf (Apache, haProxy ) et le site de WordPress.<br />
Cela nous permettra de centraliser les fichiers nécessaires au fonctionnement des Clusters.</p>
<h3><strong>MySQL cluster (AlmaLinux 8 fork RHEL8)</strong></h3>
<p><a href="https://coffeebreak.en-images.info/?p=2359">MODOP &#8211; PARTIE 3 &#8211; Installation WordPress en HA – Cluster Mysql</a></p>
<p><strong>3 machines MySQL</strong></p>
<ul>
<li>node01-sqlw 172.16.186.27</li>
<li>node02-sqlw 172.16.186.28</li>
<li>node03-sqlw 172.16.186.29</li>
</ul>
<p><img loading="lazy" decoding="async" width="944" height="166" class="wp-image-2282" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-574.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-574.png 944w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-574-300x53.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-574-768x135.png 768w" sizes="auto, (max-width: 944px) 100vw, 944px" /></p>
<p>Le cluster MySQL est constitué de 3 nœuds MySQL en Master-Master-Master. Toutes données inscrites sur un des nœuds est répliquées automatiquement sur les autres nœuds du cluster.<br />
Si une machine est down, les autres machines répondront aux requêtes via le Cluster HaProxy.<br />
Quand la machine reviendra UP dans le Cluster, elle se resynchronisera automatiquement auprès des autres machines du cluster.</p>
<h3><strong>Web cluster apache/PHP</strong></h3>
<p><a href="https://coffeebreak.en-images.info/?p=2439">MODOP – PARTIE 4 – Installation WordPress en HA – Cluster Apache </a></p>
<p><strong>3 machines Apache/php</strong></p>
<ul>
<li>node01-webw 172.16.186.30</li>
<li>node02-webw 172.16.186.31</li>
<li>node03-webw 172.16.186.32</li>
</ul>
<p><img loading="lazy" decoding="async" width="933" height="166" class="wp-image-2283" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-575.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-575.png 933w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-575-300x53.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-575-768x137.png 768w" sizes="auto, (max-width: 933px) 100vw, 933px" /></p>
<p>Le Cluster Apache hébergera uniquement le service Apache/PHP pour le site WordPress, il répondra à toutes les requêtes de HaProxy.<br />
Nous sommes encore sous le mode « tiers ». Si une machine cesse de fonctionner les deux autres répondrons aux sollicitations de HaProxy via le LoadBalancing.</p>
<h3><strong>Conclusion </strong></h3>
<p>Dans notre infrastructure nous avons 4 clusters de service en mode « tiers » Haute disponibilité</p>
<ul>
<li>Cluster HaProxy + KeepAlived</li>
<li>Cluster GlusterFS</li>
<li>Cluster MySQL</li>
<li>Cluster Web</li>
</ul>
<p>Pour que ce mode soit le plus résilient, il faut impérativement provisionner chacun des services sur des machines hyperviseurs différentes (VMware, Proxmox ,HyperV ,etc) .</p>
<p><img loading="lazy" decoding="async" width="1136" height="502" class="wp-image-2285" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-576.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-576.png 1136w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-576-300x133.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-576-1024x453.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-576-768x339.png 768w" sizes="auto, (max-width: 1136px) 100vw, 1136px" /></p>
<p>Bref si un Hyperviseur est down, les deux autres répondrons aux sollicitations des clients.</p>
<p>Si les hyperviseurs sont gérés par le mode HA, les machines virtuelles hébergées par l’hyperviseur en panne migreront automatiquement sur les autres hyperviseurs UP.</p>
<h3><strong>Prérequis </strong></h3>
<p>La première étape sera d’inscrire toutes les machines de notre infrastructure « WordPress » sur nos DNS primaire et secondaire afin que les machines se trouvent facilement par leur nom d’host.</p>
<ul>
<li><a href="https://coffeebreak.en-images.info/?p=1111">MODOP – Configurer un DNS Primaire et Secondaire – Centos7 – SysBreak Info (en-images.info)</a></li>
</ul>
<pre><em>[root@dns-pri ~]# vi /var/named/forward.house.cpb</em>
<em>; ### infrastructure WordPress ###</em>
<em>;</em>
<em>; Cluster HAproxy</em>
<em>node01-haw IN A 172.16.186.20</em>
<em>node02-haw IN A 172.16.186.21</em>
<em>node03-haw IN A 172.16.186.22</em>
<em>node-haw IN A 192.168.1.230</em>
<em>; Cluster GlusterFS</em>
<em>node01-gfsw IN A 172.16.186.24</em>
<em>node02-gfsw IN A 172.16.186.25</em>
<em>node03-gfsw IN A 172.16.186.26</em>
<em>; Cluster MySQL</em>
<em>node01-sqlw IN A 172.16.186.27</em>
<em>node02-sqlw IN A 172.16.186.28</em>
<em>node03-sqlw IN A 172.16.186.29</em>
<em>; Cluster Web Httpd/PHP</em>
<em>node01-webw IN A 172.16.186.30</em>
<em>node02-webw IN A 172.16.186.31</em>
<em>node03-webw IN A 172.16.186.32</em></pre>
<p><em><img loading="lazy" decoding="async" width="439" height="122" class="wp-image-2288" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-577.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-577.png 439w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-577-300x83.png 300w" sizes="auto, (max-width: 439px) 100vw, 439px" /></em></p>
<p>Modifier le numéro de série et redémarrer le service apache.</p>
<pre>[root@dns-pri ~]# systemctl reload named</pre>
<p>Côté DNS Primaire<br />
<img loading="lazy" decoding="async" width="1361" height="193" class="wp-image-2290" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-578.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-578.png 1361w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-578-300x43.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-578-1024x145.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-578-768x109.png 768w" sizes="auto, (max-width: 1361px) 100vw, 1361px" /></p>
<p>Côté DNS Secondaire<br />
<img loading="lazy" decoding="async" width="1444" height="148" class="wp-image-2291" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-579.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-579.png 1444w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-579-300x31.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-579-1024x105.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-579-768x79.png 768w" sizes="auto, (max-width: 1444px) 100vw, 1444px" /></p>
<p>Test sur un client<br />
<img loading="lazy" decoding="async" width="962" height="447" class="wp-image-2293" src="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-580.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-580.png 962w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-580-300x139.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2021/06/word-image-580-768x357.png 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></p>
<p>Views: 25</p>
<p>L’article <a href="https://coffeebreak.en-images.info/modop-installation-wordpress-en-ha-presentation/">MODOP – PARTIE 1 &#8211; Installation WordPress en HA – Présentation</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://coffeebreak.en-images.info/modop-installation-wordpress-en-ha-presentation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
