Sync scripts from stacklight-model
This allows to deploy OpenStack (with OVS or OpenContrail) and
Kubernetes deployments with the same tools.
Change-Id: I5efeab98e70d083a8c54a649b7b59101edc497a6
diff --git a/scripts/core_services_install.sh b/scripts/core_services_install.sh
new file mode 100755
index 0000000..62f32e1
--- /dev/null
+++ b/scripts/core_services_install.sh
@@ -0,0 +1,51 @@
+#!/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