pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

OpenStack環境構築メモ(HAProxyセットアップ & Pacemaker組込)

カーネルパラメタ変更

$ echo 'net.ipv4.ip_nonlocal_bind = 1' | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

 

②HAProxyインストール

$ sudo apt -y install haproxy

 

③HAproxy設定ファイル編集

/etc/haproxy/haproxy.cfg

global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon
	maxconn 4000

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
	ssl-default-bind-options no-sslv3

defaults
	log	global
        timeout connect 5000
        timeout client  50000
        timeout server  50000

listen galera_cluster
	bind 192.168.1.50:3306
	balance source
	mode tcp
	option tcpka
	option mysql-check user haproxy
	server cnt1 192.168.1.51:3306             inter 2000 rise 2 fall 5
	server cnt2 192.168.1.52:3306 check inter 2000 rise 2 fall 5
	server cnt3 192.168.1.53:3306 check inter 2000 rise 2 fall 5

 
④HAProxyのDB死活監視で利用するユーザーをDBに登録
以下は1号機のみで実施

$ mysql -uroot -pPASSWORD -e "create user 'haproxy'@'192.168.1.51';"
$ mysql -uroot -pPASSWORD -e "create user 'haproxy'@'192.168.1.52';"
$ mysql -uroot -pPASSWORD -e "create user 'haproxy'@'192.168.1.53';"

 
⑤PacemakerリソースとしてHAProxyを組み込む
以下は1号機のみで実施

$ sudo crm configure primitive haproxy lsb:haproxy op monitor interval="1s"
$ sudo crm configure colocation vip-with-haproxy inf: vip-public vip-local haproxy
$ sudo crm configure order haproxy-after-vip mandatory: vip-public vip-local haproxy

※上記のvip-publicとvip-localは、Pacemaker & Corosyncセットアップ実施時に定義したもの