Merge "Enable HAProxy consider MariaDB wsrep_local_state"
This commit is contained in:
commit
058d8606b5
@ -25,3 +25,10 @@
|
||||
dest: "{{ node_config_directory }}/{{ item }}/galera.cnf"
|
||||
with_items:
|
||||
- "mariadb"
|
||||
|
||||
- name: Copying over wsrep_notify.sh
|
||||
template:
|
||||
src: "{{ role_path }}/templates/wsrep_notify.sh.j2"
|
||||
dest: "{{ node_config_directory }}/{{ item }}/wsrep_notify.sh"
|
||||
with_items:
|
||||
- "mariadb"
|
||||
|
@ -24,6 +24,7 @@ wsrep_node_name={{ ansible_hostname }}
|
||||
wsrep_sst_method=xtrabackup-v2
|
||||
wsrep_sst_auth={{ database_user }}:{{ database_password }}
|
||||
wsrep_slave_threads=4
|
||||
wsrep_notify_cmd=/usr/local/bin/wsrep_notify.sh
|
||||
|
||||
max_connections=10000
|
||||
|
||||
|
@ -7,6 +7,12 @@
|
||||
"dest": "/etc/{{ mysql_dir }}/my.cnf",
|
||||
"owner": "mysql",
|
||||
"perm": "0600"
|
||||
},
|
||||
{
|
||||
"source": "{{ container_config_directory }}/wsrep_notify.sh",
|
||||
"dest": "/usr/local/bin/wsrep_notify.sh",
|
||||
"owner": "mysql",
|
||||
"perm": "0700"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
75
ansible/roles/mariadb/templates/wsrep_notify.sh.j2
Normal file
75
ansible/roles/mariadb/templates/wsrep_notify.sh.j2
Normal file
@ -0,0 +1,75 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# Edit parameters below to specify the address and login to server.
|
||||
USER={{ database_user }}
|
||||
PSWD={{ database_password }}
|
||||
HOST={{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
|
||||
PORT={{ mariadb_port }}
|
||||
LB_USER=haproxy
|
||||
|
||||
ENABLE_LB="UPDATE mysql.user SET User='${LB_USER}' WHERE User='${LB_USER}_blocked';"
|
||||
DISABLE_LB="UPDATE mysql.user SET User='${LB_USER}_blocked' WHERE User='${LB_USER}';"
|
||||
MYSQL_CMD="`type -p mysql` -B -u$USER -p$PSWD -h$HOST -P$PORT"
|
||||
|
||||
status_update()
|
||||
{
|
||||
echo "SET SESSION wsrep_on=off;"
|
||||
echo "$@"
|
||||
echo "FLUSH PRIVILEGES;"
|
||||
}
|
||||
|
||||
get_sst_method()
|
||||
{
|
||||
$MYSQL_CMD -s -N -e "SHOW VARIABLES LIKE 'wsrep_sst_method';" | awk '{ print $2 }'
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
case $1 in
|
||||
--status)
|
||||
STATUS=$2
|
||||
shift
|
||||
;;
|
||||
--uuid)
|
||||
CLUSTER_UUID=$2
|
||||
shift
|
||||
;;
|
||||
--primary)
|
||||
[ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0"
|
||||
shift
|
||||
;;
|
||||
--index)
|
||||
INDEX=$2
|
||||
shift
|
||||
;;
|
||||
--members)
|
||||
MEMBERS=$2
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
case $STATUS in
|
||||
Synced)
|
||||
CMD=$ENABLE_LB
|
||||
;;
|
||||
Donor)
|
||||
# enabling donor only if xtrabackup configured
|
||||
SST_METHOD=`get_sst_method`
|
||||
[[ $SST_METHOD =~ 'xtrabackup' ]] && CMD=$ENABLE_LB || CMD=$DISABLE_LB
|
||||
;;
|
||||
Undefined)
|
||||
# shutting down database: do nothing
|
||||
;;
|
||||
*)
|
||||
CMD=$DISABLE_LB
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$CMD" ]
|
||||
then
|
||||
status_update "$CMD" | $MYSQL_CMD
|
||||
fi
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user