| #!/bin/bash -x |
| exec > >(tee -i /tmp/"$(basename "$0" .sh)"_"$(date '+%Y-%m-%d_%H-%M-%S')".log) 2>&1 |
| |
| RABBITMQ_SERVICE=$(salt -C 'I@rabbitmq:server' test.ping 1>/dev/null 2>&1 && echo true) |
| GALERA_SERVICE=$(salt -C 'I@galera:master or I@galera:slave' test.ping 1>/dev/null 2>&1 && echo true) |
| MEMCACHED_SERVICE=$(salt -C 'I@memcached:server' test.ping 1>/dev/null 2>&1 && echo true) |
| NGINX_SERVICE=$(salt -C 'I@nginx:server' test.ping 1>/dev/null 2>&1 && echo true) |
| |
| # Install keepaliveds |
| salt -C 'I@keepalived:cluster' state.sls keepalived -b 1 |
| # Check the VIPs |
| salt -C 'I@keepalived:cluster' cmd.run "ip a | grep 172.16.10.2" |
| |
| # Install gluster services |
| salt -C 'I@glusterfs:server' state.sls glusterfs.server.service |
| salt -C 'I@glusterfs:server' state.sls glusterfs.server.setup -b 1 |
| # Check the gluster status |
| salt -C 'I@glusterfs:server' cmd.run "gluster peer status; gluster volume status" -b 1 |
| # Configure gluster clients |
| salt -C 'I@glusterfs:client' state.sls glusterfs.client |
| |
| if [[ "$RABBITMQ_SERVICE" == "true" ]]; then |
| # Install rabbitmq |
| salt -C 'I@rabbitmq:server' state.sls rabbitmq |
| # Check the rabbitmq status |
| salt -C 'I@rabbitmq:server' cmd.run "rabbitmqctl cluster_status" |
| fi |
| |
| if [[ "$GALERA_SERVICE" == "true" ]]; then |
| # Install galera |
| salt -C 'I@galera:master' state.sls galera |
| salt -C 'I@galera:slave' state.sls galera |
| # Check galera status |
| salt -C 'I@galera:master' mysql.status | grep -A1 wsrep_cluster_size |
| salt -C 'I@galera:slave' mysql.status | grep -A1 wsrep_cluster_size |
| fi |
| |
| # Install haproxy |
| salt -C 'I@haproxy:proxy' state.sls haproxy |
| salt -C 'I@haproxy:proxy' service.status haproxy |
| salt -I 'haproxy:proxy' service.restart rsyslog |
| |
| if [[ "$MEMCACHED_SERVICE" == "true" ]]; then |
| # Install memcached |
| salt -C 'I@memcached:server' state.sls memcached |
| fi |
| |
| if [[ "$NGINX_SERVICE" == "true" ]]; then |
| # Install memcached |
| salt -C 'I@nginx:server' state.sls nginx |
| fi |