<?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 HaProxy - CoffeeBreak Info</title>
	<atom:link href="https://coffeebreak.en-images.info/tag/haproxy/feed/" rel="self" type="application/rss+xml" />
	<link>https://coffeebreak.en-images.info/tag/haproxy/</link>
	<description>Une petite pause :)</description>
	<lastBuildDate>Sun, 02 Apr 2023 10:01:22 +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 HaProxy - CoffeeBreak Info</title>
	<link>https://coffeebreak.en-images.info/tag/haproxy/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MODOP – Partie 3 – PostrgreSQL &#8211; Installation du Cluster HaPoxy</title>
		<link>https://coffeebreak.en-images.info/modop-partie-3-postrgresql-installation-du-cluster-hapoxy/</link>
					<comments>https://coffeebreak.en-images.info/modop-partie-3-postrgresql-installation-du-cluster-hapoxy/#respond</comments>
		
		<dc:creator><![CDATA[chris]]></dc:creator>
		<pubDate>Sun, 02 Apr 2023 10:01:19 +0000</pubDate>
				<category><![CDATA[Cluster HA PostgreSQL]]></category>
		<category><![CDATA[OS Linux]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Cluster HA]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[HaProxy]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[Serveur]]></category>
		<guid isPermaLink="false">https://coffeebreak.en-images.info/?p=8008</guid>

					<description><![CDATA[<p>MODOP sur la mise en place de HA Proxy/KeepAlived pour un cluster de service Haute disponibilité de base de données postgreSQL. Le service KeepAlived va permettre de gérer la mise à disposition d’une « Virual IP » et la bascule de celle-ci lors de la perte d’un nœud KeepAlived/HA Proxy. Le service HAProxy va permettre de faire du « Balancing » de flux réseau de requêtes SQL Read/Write sur les nœuds du cluster postgreSQL.</p>
<p>L’article <a href="https://coffeebreak.en-images.info/modop-partie-3-postrgresql-installation-du-cluster-hapoxy/">MODOP – Partie 3 – PostrgreSQL &#8211; Installation du Cluster HaPoxy</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><span style="color: #000000;">Inventaire des machines</span></h2>
<p><img fetchpriority="high" decoding="async" width="975" height="206" class="wp-image-8010" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-2.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-2.png 975w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-2-300x63.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-2-768x162.png 768w" sizes="(max-width: 975px) 100vw, 975px" /></p>
<h3><span style="color: #000000;">Cluster HaProxy</span></h3>
<ul>
<li>hostname : <strong>Node-hsql01</strong>
<ul>
<li>IP&nbsp;: 192.168.1.106/24</li>
<li>VIP&nbsp;: <strong>192.168.1.110/24</strong>
<ul>
<li>Virtuel Host&nbsp;: node-sql</li>
</ul>
</li>
<li>RAM&nbsp;: 2Go</li>
<li>CPU&nbsp;: 1</li>
</ul>
</li>
<li>hostname : <strong>Node-hsql02</strong>
<ul>
<li>IP&nbsp;: 192.168.1.107/24</li>
<li>VIP&nbsp;:<strong> 192.168.1.110/24</strong>
<ul>
<li>Virtuel Host&nbsp;: node-sql</li>
</ul>
</li>
<li>RAM&nbsp;: 2Go</li>
<li>CPU&nbsp;: 1</li>
</ul>
</li>
</ul>
<h2><span style="color: #000000;">1. Mise à jour (2 nodes)</span></h2>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf update -y</span></pre>
<h2><span style="color: #000000;">2. Ajout des Hosts (pas de DNS)</span></h2>
<h3><span style="color: #000000;">Copy de /etc/hosts node-esql01 vers les hosts hsql</span></h3>
<pre>[root@node-hsql01 ~]#<span style="color: #ff0000;"> scp root@192.168.1.100:/etc/hosts /etc/hosts</span>
[root@node-hsql02 ~]# <span style="color: #ff0000;">scp root@192.168.1.100:/etc/hosts /etc/hosts</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">cat /etc/hosts</span></pre>
<p><img decoding="async" width="829" height="224" class="wp-image-8011" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-3.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-3.png 829w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-3-300x81.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-3-768x208.png 768w" sizes="(max-width: 829px) 100vw, 829px" /></p>
<h3><span style="color: #000000;">Check résolution hosts (2 hosts)</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">ping -c 2 node-esql01</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">ping -c 2 node-psql01</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">ping -c 2 node-hsql02</span></pre>
<p><img decoding="async" width="943" height="312" class="wp-image-8012" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-4.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-4.png 943w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-4-300x99.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-4-768x254.png 768w" sizes="(max-width: 943px) 100vw, 943px" /></p>
<h2><span style="color: #000000;">3. Désactiver SELinux (2 nodes)</span></h2>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">setenforce 0</span>
[root@node-psql0x ~]# <span style="color: #ff0000;">sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config</span></pre>
<h2><span style="color: #000000;">4. Synchroniser DateTime sur le fuseau de PARIS (2 nodes)</span></h2>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">timedatectl set-timezone Europe/Paris</span></pre>
<h2><span style="color: #000000;">5. Installation des middlewares (2 nodes)</span></h2>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf install epel-release net-tools nmap curl wget tar –y</span></pre>
<h2><span style="color: #000000;">6. Installation KeepAlive (2 nodes)</span></h2>
<h3><span style="color: #000000;">Installation des paquets</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y install keepalived</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y install ipvsadm</span></pre>
<h3><span style="color: #000000;">Chargement du module ip_vs</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">modprobe ip_vs</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">lsmod |grep ip_vs</span></pre>
<p><img loading="lazy" decoding="async" width="664" height="94" class="wp-image-8013" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-5.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-5.png 664w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-5-300x42.png 300w" sizes="auto, (max-width: 664px) 100vw, 664px" /></p>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">echo ip_vs &gt;&gt; /etc/module</span></pre>
<h3><span style="color: #000000;">Configuration KeepAlive</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">cp /etc/keepalived/keepalived.conf{,-old}</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">sh -c '&gt; /etc/keepalived/keepalived.conf'</span></pre>
<h4><span style="color: #000000;">Fichier conf <span style="text-decoration: underline;">node-hsql01</span></span></h4>
<pre>[root@<span style="color: #ff0000;"><strong>node-hsql01</strong></span> ~]#<span style="color: #ff0000;"> vi /etc/keepalived/keepalived.conf</span>

<span style="color: #ff0000;"><em>! /etc/keepalived/keepalived.conf</em></span>
<span style="color: #ff0000;"><em>! Configuration File for keepalived</em></span>
<span style="color: #ff0000;"><em>
global_defs {</em></span>
<span style="color: #ff0000;"><em> notification_email {</em></span>
<span style="color: #ff0000;"><em> chris@en-images.info</em></span>
<span style="color: #ff0000;"><em> }</em></span>

<span style="color: #ff0000;"><em> notification_email_from chris@en-images.info</em></span>
<span style="color: #ff0000;"><em> smtp_server localhost</em></span>
<span style="color: #ff0000;"><em> smtp_connect_timeout 30</em></span>
<span style="color: #ff0000;"><em> }</em></span>

<span style="color: #ff0000;"><em>vrrp_instance VI_1 {</em></span>
<span style="color: #ff0000;"><em> state MASTER</em></span>
<span style="color: #ff0000;"><em> interface </em><strong><em>ens18</em></strong></span>
<span style="color: #ff0000;"><em> virtual_router_id 100</em></span>
<span style="color: #ff0000;"><em> priority </em><strong><em>200</em></strong></span>

<span style="color: #ff0000;"><em> authentication {</em></span>
<span style="color: #ff0000;"><strong><em>auth_type PASS</em></strong></span>
<span style="color: #ff0000;"><strong><em> auth_pass chris@2023</em></strong></span>
<span style="color: #ff0000;"><em> }</em></span>

<span style="color: #ff0000;"><em> virtual_ipaddress {</em></span>
<span style="color: #ff0000;"><strong><em> 192.168.1.110/24 dev ens18</em></strong></span>
<span style="color: #ff0000;"><em> }</em></span>

<span style="color: #ff0000;"><em>}</em></span></pre>
<h4><span style="color: #000000;">Fichier conf <span style="text-decoration: underline;">node-hsql02</span></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-hsql02</span></strong> ~]#<span style="color: #ff0000;"> vi /etc/keepalived/keepalived.conf</span>

<span style="color: #ff0000;"><em>! /etc/keepalived/keepalived.conf</em></span>
<span style="color: #ff0000;"><em>! Configuration File for keepalived</em></span>

<span style="color: #ff0000;"><em>global_defs {</em></span>
<span style="color: #ff0000;"><em>notification_email {</em></span>
<span style="color: #ff0000;"><em>chris@en-images.info</em></span>
<span style="color: #ff0000;"><em>}</em></span>
<span style="color: #ff0000;"><em>
 notification_email_from chris@en-images.info</em></span>
<span style="color: #ff0000;"><em> smtp_server localhost</em></span>
<span style="color: #ff0000;"><em> smtp_connect_timeout 30</em></span>

<span style="color: #ff0000;"><em>}</em></span>

<span style="color: #ff0000;"><em>vrrp_instance VI_1 {</em></span>
<span style="color: #ff0000;"><em> state BACKUP</em></span>
<span style="color: #ff0000;"><em> interface </em><strong><em>ens18</em></strong></span>
<span style="color: #ff0000;"><em> virtual_router_id 100</em></span>
<span style="color: #ff0000;"><em> priority </em><strong><em>199</em></strong></span>

<span style="color: #ff0000;"><em>authentication {</em></span>
<span style="color: #ff0000;"><strong><em> auth_type PASS</em></strong></span>
<span style="color: #ff0000;"><strong><em> auth_pass chris@2023</em></strong></span>
<span style="color: #ff0000;"><em>}</em></span>

<span style="color: #ff0000;"><em>virtual_ipaddress {</em></span>
<span style="color: #ff0000;"><strong><em>192.168.1.110/24 dev ens18</em></strong></span>
<span style="color: #ff0000;"><em>}</em></span>

<span style="color: #ff0000;"><em>}</em></span></pre>
<h4><span style="color: #000000;">Prérequis réseau KeepAlive</span></h4>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">echo "net.ipv4.ip_nonlocal_bind = 1" &gt;&gt; /etc/sysctl.conf</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">sysctl -p</span>
<span style="color: #ff0000;"><em>net.ipv4.ip_nonlocal_bind = 1</em></span></pre>
<h4><span style="color: #000000;">Règles firewall</span></h4>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent --zone=public</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">firewall-cmd --remove-service={cockpit,dhcpv6-client} --permanent</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">firewall-cmd --reload</span></pre>
<h4><span style="color: #000000;">Lancement KeepAlive</span></h4>
<h5><span style="text-decoration: underline; color: #000000;">Node-hsql01</span></h5>
<pre>[root@<strong><span style="color: #ff0000;">node-hsql01</span></strong> ~]# <span style="color: #ff0000;">systemctl start --now keepalived</span>
[root@<span style="color: #ff0000;"><strong>node-hsql01</strong></span> ~]# <span style="color: #ff0000;">systemctl enable keepalived</span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-hsql01</span></strong> ~]# <span style="color: #ff0000;">systemctl status keepalived</span></pre>
<p><img loading="lazy" decoding="async" width="1223" height="329" class="wp-image-8014" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-6.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-6.png 1223w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-6-300x81.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-6-1024x275.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-6-768x207.png 768w" sizes="auto, (max-width: 1223px) 100vw, 1223px" /></p>
<pre>[root@<strong><span style="color: #ff0000;">node-hsql01</span></strong> ~]# <span style="color: #ff0000;">ip a</span></pre>
<p><img loading="lazy" decoding="async" width="983" height="201" class="wp-image-8015" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-7.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-7.png 983w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-7-300x61.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-7-768x157.png 768w" sizes="auto, (max-width: 983px) 100vw, 983px" /></p>
<h5><span style="text-decoration: underline; color: #000000;">Node-hsql02</span></h5>
<pre>[root@<strong><span style="color: #ff0000;">node-hsql02</span></strong> ~]# <span style="color: #ff0000;">systemctl start --now keepalived</span>
[root@<span style="color: #ff0000;"><strong>node-hsql02</strong></span> ~]# <span style="color: #ff0000;">systemctl enable keepalived</span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-hsql02</span></strong> ~]# <span style="color: #ff0000;">systemctl status keepalived</span></pre>
<p><img loading="lazy" decoding="async" width="1135" height="320" class="wp-image-8016" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-8.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-8.png 1135w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-8-300x85.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-8-1024x289.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-8-768x217.png 768w" sizes="auto, (max-width: 1135px) 100vw, 1135px" /></p>
<pre>[root@<span style="color: #ff0000;"><strong>node-hsql02</strong></span> ~]#<span style="color: #ff0000;"> ip a</span></pre>
<p><img loading="lazy" decoding="async" width="889" height="186" class="wp-image-8017" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-9.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-9.png 889w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-9-300x63.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-9-768x161.png 768w" sizes="auto, (max-width: 889px) 100vw, 889px" /></p>
<h2><span style="color: #000000;">7. Installation client postgreSQL ( 2 nodes)</span></h2>
<h3><span style="color: #000000;">Installation Repository PostgreSQL</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y install yum-utils</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y install <a style="color: #ff0000;" href="https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm">https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm</a></span></pre>
<h3><span style="color: #000000;">Sélection version 12 PostgreSQL</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y module list postgresql</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y module enable postgresql:12</span></pre>
<h3><span style="color: #000000;">Installation du paquet client de postgresql</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -qy module disable postgresql</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf -y install postgresql12</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">ls /usr/pgsql-12/bin</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">ln -s /usr/pgsql-12/bin/* /usr/sbin/</span></pre>
<h2><span style="color: #000000;">8. Installation HaProxy (2 nodes)</span></h2>
<h3><span style="color: #000000;">Installation du paquet</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">dnf install -y haproxy</span></pre>
<h3><span style="color: #000000;">Inventaire des ports Utiles</span></h3>
<ul>
<li>Port <strong>5000</strong>&nbsp;: «&nbsp;Writes&nbsp;SQL»</li>
<li>Port <strong>5001&nbsp;</strong>: «&nbsp;Read&nbsp;SQL»</li>
<li>Port <strong>7000&nbsp;</strong>: «&nbsp;DashBoard HaProxy&nbsp;»</li>
<li>Port <strong>8008</strong>&nbsp;: «&nbsp;Patroni Rest api&nbsp;»</li>
<li>Port <strong>5432</strong>&nbsp;: PostgreSQL</li>
</ul>
<h3><span style="color: #000000;">Check Accès Cluster Psql</span></h3>
<h4><span style="text-decoration: underline; color: #000000;">Check rest api patroni</span></h4>
<pre>[root@node-hsql01 ~]# <span style="color: #ff0000;">curl -s <a style="color: #ff0000;" href="http://node-psql01:8008">http://node-psql01:8008</a></span></pre>
<p><img loading="lazy" decoding="async" width="1655" height="83" class="wp-image-8018" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-10.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-10.png 1655w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-10-300x15.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-10-1024x51.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-10-768x39.png 768w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-10-1536x77.png 1536w" sizes="auto, (max-width: 1655px) 100vw, 1655px" /></p>
<pre>[root@node-hsql01 ~]# <span style="color: #ff0000;">curl -s <a style="color: #ff0000;" href="http://node-psql02:8008">http://node-psql02:8008</a></span>
[root@node-hsql01 ~]# <span style="color: #ff0000;">curl -s <a style="color: #ff0000;" href="http://node-psql03:8008">http://node-psql03:8008</a></span></pre>
<p><img loading="lazy" decoding="async" width="1661" height="136" class="wp-image-8019" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-11.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-11.png 1661w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-11-300x25.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-11-1024x84.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-11-768x63.png 768w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-11-1536x126.png 1536w" sizes="auto, (max-width: 1661px) 100vw, 1661px" /></p>
<h5><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Check connexion postgreSQL via les nodes HaProxy</span></span></h5>
<pre>[root@node-hsql01 ~]# <span style="color: #ff0000;">psql -U chris -h <strong>node-psql01</strong> -d <strong>chris2023</strong></span></pre>
<p><img loading="lazy" decoding="async" width="644" height="98" class="wp-image-8020" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-12.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-12.png 644w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-12-300x46.png 300w" sizes="auto, (max-width: 644px) 100vw, 644px" /></p>
<pre>[root@node-hsql01 ~]# <span style="color: #ff0000;">psql -U chris -h <strong>node-psql02</strong> -d <strong>chris2023</strong></span>
[root@node-hsql01 ~]# <span style="color: #ff0000;">psql -U chris -h <strong>node-psql03</strong> -d <strong>chris2023</strong></span></pre>
<p><img loading="lazy" decoding="async" width="713" height="186" class="wp-image-8021" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-13.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-13.png 713w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-13-300x78.png 300w" sizes="auto, (max-width: 713px) 100vw, 713px" /></p>
<h3><span style="color: #000000;">Configuration HaProxy ( 2 nodes)</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">mv /etc/haproxy/haproxy.cfg{,-old}</span></pre>
<pre>[root@node-hsql0x ~]# vi /etc/haproxy/haproxy.cfg

<span style="color: #ff0000;"><em>global</em></span>
<span style="color: #ff0000;"><em> maxconn 100</em></span>
<span style="color: #ff0000;"><em>defaults</em></span>
<span style="color: #ff0000;"><em> log global</em></span>
<span style="color: #ff0000;"><em> mode tcp</em></span>
<span style="color: #ff0000;"><em> retries 2</em></span>
<span style="color: #ff0000;"><em> timeout client 30m</em></span>
<span style="color: #ff0000;"><em> timeout connect 4s</em></span>
<span style="color: #ff0000;"><em> timeout server 30m</em></span>
<span style="color: #ff0000;"><em> timeout check 5s</em></span>

<span style="color: #ff0000;"><em>listen stats</em></span>
<span style="color: #ff0000;"><em> mode http</em></span>
<span style="color: #ff0000;"><em> bind *:7000</em></span>
<span style="color: #ff0000;"><em> stats enable</em></span>
<span style="color: #ff0000;"><em> stats uri /status</em></span>
<span style="color: #ff0000;"><em> stats refresh 2s</em></span>
<span style="color: #ff0000;"><em> stats auth chris:Chris</em></span>
<span style="color: #ff0000;"><em> stats admin if TRUE</em></span>

<span style="color: #ff0000;"><em>listen master</em></span>
<strong><span style="color: #ff0000;"><em> bind *:5000</em></span></strong>
<span style="color: #ff0000;"><em> option httpchk OPTIONS /master</em></span>
<span style="color: #ff0000;"><em> http-check expect status 200</em></span>
<span style="color: #ff0000;"><em> default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions</em></span>
<span style="color: #ff0000;"><em> s<strong>erver node-psql01 node-psql01:5432 maxconn 100 check port 8008</strong></em></span>
<strong><span style="color: #ff0000;"><em> server node-psql02 node-psql02:5432 maxconn 100 check port 8008</em></span></strong>
<strong><span style="color: #ff0000;"><em> server node-psql03 node-psql03:5432 maxconn 100 check port 8008</em></span></strong>

<span style="color: #ff0000;"><em>listen replicats</em></span>
<span style="color: #ff0000;"><em> balance roundrobin</em></span>
<strong><span style="color: #ff0000;"><em> bind *:5001</em></span></strong>
<span style="color: #ff0000;"><em> option httpchk OPTIONS /replica</em></span>
<span style="color: #ff0000;"><em> http-check expect status 200</em></span>
<span style="color: #ff0000;"><em> default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions</em></span>
<strong><span style="color: #ff0000;"><em> server node-psql01 node-psql01:5432 maxconn 100 check port 8008</em></span></strong>
<strong><span style="color: #ff0000;"><em> server node-psql02 node-psql02:5432 maxconn 100 check port 8008</em></span></strong>
<strong><span style="color: #ff0000;"><em>&nbsp;server node-psql03 node-psql03:5432 maxconn 100 check port 8008</em></span></strong></pre>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">haproxy -c -V -f /etc/haproxy/haproxy.cfg</span>
<span style="color: #ff0000;"><em>Configuration file is valid</em></span></pre>
<h3><span style="color: #000000;">Régles Firewall (2 nodes)</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">firewall-cmd --add-port={5000,5001,7000}/tcp --permanent</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">firewall-cmd --add-service=http –permanent</span>
[root@node-hsql0x ~]#<span style="color: #ff0000;"> firewall-cmd --reload</span></pre>
<h3><span style="color: #000000;">Démarrage du service HaProxy (2 nodes)</span></h3>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">systemctl start haproxy</span>
[root@node-hsql0x ~]# <span style="color: #ff0000;">systemctl enable haproxy</span></pre>
<pre>[root@node-hsql0x ~]# <span style="color: #ff0000;">systemctl status haproxy</span></pre>
<p><img loading="lazy" decoding="async" width="951" height="202" class="wp-image-8022" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-14.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-14.png 951w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-14-300x64.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-14-768x163.png 768w" sizes="auto, (max-width: 951px) 100vw, 951px" /></p>
<h2><span style="color: #000000;">9. Connexion IHM HaProxy</span></h2>
<ul>
<li><strong><a href="http://192.168.1.110:7000/status">http://192.168.1.110:7000/status</a></strong></li>
</ul>
<p><img loading="lazy" decoding="async" width="1032" height="274" class="wp-image-8023" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-15.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-15.png 1032w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-15-300x80.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-15-1024x272.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-15-768x204.png 768w" sizes="auto, (max-width: 1032px) 100vw, 1032px" /><br />
Login/passwod&nbsp;: <strong>chris/Chris</strong></p>
<p><img loading="lazy" decoding="async" width="1895" height="324" class="wp-image-8024" src="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-16.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-16.png 1895w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-16-300x51.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-16-1024x175.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-16-768x131.png 768w, https://coffeebreak.en-images.info/wp-content/uploads/2023/03/word-image-8008-16-1536x263.png 1536w" sizes="auto, (max-width: 1895px) 100vw, 1895px" /><br />
Ici on peut constater les deux configurations suivantes</p>
<ul>
<li>Le master «<strong>&nbsp;Write SQL</strong>&nbsp;» est le <span style="text-decoration: underline;">node-psql02</span></li>
<li>Les réplicas «<strong>&nbsp;Read SQL</strong>&nbsp;» sont <span style="text-decoration: underline;">node-psql01</span> et <span style="text-decoration: underline;">node-psql03</span></li>
</ul>
<p>Views: 8</p><p>L’article <a href="https://coffeebreak.en-images.info/modop-partie-3-postrgresql-installation-du-cluster-hapoxy/">MODOP – Partie 3 – PostrgreSQL &#8211; Installation du Cluster HaPoxy</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-3-postrgresql-installation-du-cluster-hapoxy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
