]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
vstart.sh: start up mgr restful API
authorSage Weil <sage@redhat.com>
Thu, 1 Jun 2017 04:06:24 +0000 (00:06 -0400)
committerSage Weil <sage@redhat.com>
Thu, 8 Jun 2017 18:29:37 +0000 (14:29 -0400)
We try to stagger the ports that mgr modules bind to so that
concurrent vstart instances can run with consecutive ports but
the services will not collide.  Yes, this is awkward.

Signed-off-by: Sage Weil <sage@redhat.com>
src/vstart.sh

index d855b372a35897b1cc758b8c766f047492f08c9b..214558b7bf5c7dd4935de66d1de1b6391bc8ec7d 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # abort on failure
 set -e
@@ -116,6 +116,7 @@ VSTART_SEC="client.vstart.sh"
 
 MON_ADDR=""
 DASH_URLS=""
+RESTFUL_URLS=""
 
 conf_fn="$CEPH_CONF_PATH/ceph.conf"
 keyring_fn="$CEPH_CONF_PATH/keyring"
@@ -611,7 +612,7 @@ EOF
 start_mgr() {
     local mgr=0
     # avoid monitors on nearby ports (which test/*.sh use extensively)
-    DASH_PORT=$(($CEPH_PORT + 1000))
+    MGR_PORT=$(($CEPH_PORT + 1000))
     for name in x y z a b c d e f g h i j k l m n o p
     do
         [ $mgr -eq $CEPH_NUM_MGR ] && break
@@ -628,14 +629,33 @@ start_mgr() {
         host = $HOSTNAME
 EOF
 
-        $SUDO $CEPH_BIN/ceph config-key put mgr/$name/dashboard/server_addr $IP
-       $SUDO $CEPH_BIN/ceph config-key put mgr/$name/dashboard/server_port $DASH_PORT
-       DASH_URLS="$DASH_URLS http://$IP:$DASH_PORT/"
-       DASH_PORT=$(($DASH_PORT - 1))
+       ceph_adm config-key put mgr/$name/dashboard/server_addr $IP
+       ceph_adm config-key put mgr/$name/dashboard/server_port $MGR_PORT
+       DASH_URLS+="http://$IP:$MGR_PORT/"
+       MGR_PORT=$(($MGR_PORT + 1000))
+
+       CERT=`mktemp`
+       PKEY=`mktemp`
+       openssl req -new -nodes -x509 \
+               -subj "/O=IT/CN=ceph-mgr-restful" \
+               -days 3650 -keyout "$PKEY" -out "$CERT" -extensions v3_ca
+       ceph_adm config-key put mgr/$name/restful/server_addr $IP
+       ceph_adm config-key put mgr/$name/restful/server_port $MGR_PORT
+       ceph_adm config-key put mgr/$name/restful/cert -i $CERT
+       ceph_adm config-key put mgr/$name/restful/pkey -i $PKEY
+       rm $CERT $PKEY
+
+       RESTFUL_URLS+="https://$IP:$MGR_PORT"
+       MGR_PORT=$(($MGR_PORT + 1000))
 
         echo "Starting mgr.${name}"
         run 'mgr' $CEPH_BIN/ceph-mgr -i $name $ARGS
     done
+
+    SF=`mktemp`
+    ceph_adm --debug-ms 1 tell mgr.x create_key admin -o $SF
+    RESTFUL_SECRET=`cat $SF`
+    rm $SF
 }
 
 start_mds() {
@@ -967,7 +987,8 @@ echo "started.  stop.sh to stop.  see out/* (e.g. 'tail -f out/????') for debug
 
 echo ""
 echo "dashboard urls: $DASH_URLS"
-
+echo "  restful urls: $RESTFUL_URLS"
+echo "  w/ user/pass: admin / $RESTFUL_SECRET"
 echo ""
 echo "export PYTHONPATH=./pybind:$PYTHONPATH"
 echo "export LD_LIBRARY_PATH=$CEPH_LIB"