]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
vstart: -x to start up with cephx
authorSage Weil <sage@newdream.net>
Fri, 13 Nov 2009 18:40:10 +0000 (10:40 -0800)
committerSage Weil <sage@newdream.net>
Fri, 13 Nov 2009 18:40:10 +0000 (10:40 -0800)
src/config.cc
src/vstart.sh

index 5c9c6025173a5326e19b0cd6fa9afeddb5169c59..3753660c336a5bb4ffaabf86bb8d92b0dde85ede 100644 (file)
@@ -347,7 +347,7 @@ static struct config_option config_optionsp[] = {
        OPTION(debug_paxos, 0, OPT_INT, 0),
        OPTION(debug_tp, 0, OPT_INT, 0),
        OPTION(debug_auth, 0, OPT_INT, 1),
-       OPTION(keys_file, 'k', OPT_STR, "~/.ceph/keyring.bin, /etc/ceph/keyring.bin"),
+       OPTION(keys_file, 'k', OPT_STR, "~/.ceph/keyring.bin, /etc/ceph/keyring.bin, .ceph_keyring"),
        OPTION(supported_auth, 0, OPT_STR, "none"),
        OPTION(clock_lock, 0, OPT_BOOL, false),
        OPTION(clock_tare, 0, OPT_BOOL, false),
index 90adbce5851156a65e0a62271a7a82c257a24fa3..3c0a34d62d829950077b15db7e739b273ec30e24 100755 (executable)
@@ -13,6 +13,8 @@ start_osd=0
 localhost=0
 nodaemon=0
 overwrite_conf=1
+cephx=0
+
 MON_ADDR=""
 
 conf="ceph.conf"
@@ -88,6 +90,9 @@ case $1 in
            MON_ADDR=$2
            shift
            ;;
+    -x )
+           cephx=1
+           ;;
     -k )
            overwrite_conf=0
            shift
@@ -183,7 +188,7 @@ $SUDO rm -f out/*
 test -d log && rm -f log/*
 test -d gmon && $SUDO rm -rf gmon/*
 
-test -e $keyring_fn && rm $keyring_fn
+[ "$cephx" -eq 1 ] && test -e $keyring_fn && rm $keyring_fn
 
 
 # figure machine's ip
@@ -199,7 +204,12 @@ echo "ip $IP"
 [ "$CEPH_BIN" = "" ] && CEPH_BIN=.
 [ "$CEPH_PORT" = "" ] && CEPH_PORT=6789
 
-CEPH_ADM="$CEPH_BIN/ceph -k $keyring_fn -I admin"
+
+if [ "$cephx" -eq 1 ]; then
+    CEPH_ADM="$CEPH_BIN/ceph -c $conf -k $keyring_fn"
+else
+    CEPH_ADM="$CEPH_BIN/ceph -c $conf"
+fi
 
 
 
@@ -218,6 +228,11 @@ if [ "$start_mon" -eq 1 ]; then
        logger dir = log
        chdir = ""
        pid file = out/\$type\$id.pid
+EOF
+                       [ "$cephx" -eq 1 ] && cat<<EOF >> $conf
+        supported auth = cephx
+EOF
+                       cat <<EOF >> $conf
 [mds]
        pid file = out/\$name.pid
 $CMDSDEBUG
@@ -252,8 +267,8 @@ EOF
 EOF
                fi
 
-               $SUDO $CEPH_BIN/authtool --gen-key --name=mon. $keyring_fn
-               $SUDO $CEPH_BIN/authtool --gen-key --name=client.admin --caps=$admin_caps $keyring_fn
+               [ "$cephx" -eq 1 ] && $SUDO $CEPH_BIN/authtool --gen-key --name=mon. $keyring_fn
+               [ "$cephx" -eq 1 ] && $SUDO $CEPH_BIN/authtool --gen-key --name=client.admin --caps=$admin_caps $keyring_fn
 
                # build a fresh fs monmap, mon fs
                str="$CEPH_BIN/monmaptool --create --clobber"
@@ -274,8 +289,10 @@ EOF
 
                for f in `seq 0 $((CEPH_NUM_MON-1))`
                do
-                   echo $CEPH_BIN/mkmonfs -c $conf --clobber --mon-data dev/mon$f -i $f --monmap=$monmap_fn --osdmap=$osdmap_fn --keys-file=$keyring_fn
-                   $CEPH_BIN/mkmonfs -c $conf --clobber --mon-data=dev/mon$f -i $f --monmap=$monmap_fn --osdmap=$osdmap_fn --keys-file=$keyring_fn
+                   cmd="$CEPH_BIN/mkmonfs -c $conf --clobber --mon-data=dev/mon$f -i $f --monmap=$monmap_fn --osdmap=$osdmap_fn"
+                   [ "$cephx" -eq 1 ] && cmd="$cmd --keys-file=$keyring_fn"
+                   echo $cmd
+                   $cmd
                done
        fi
 
@@ -299,22 +316,28 @@ if [ "$start_osd" -eq 1 ]; then
         osd data = dev/osd$osd
         osd journal = dev/osd$osd/journal
         osd journal size = 100
+EOF
+                   [ "$cephx" -eq 1 ] && cat <<EOF >> $conf
         keys file = dev/osd$osd/osd$osd.keyring
 EOF
            fi
            echo mkfs osd$osd
-           echo $SUDO $CEPH_BIN/cosd -i $osd $ARGS --mkfs # --debug_journal 20 --debug_osd 20 --debug_filestore 20 --debug_ebofs 20
-           $SUDO $CEPH_BIN/cosd -i $osd $ARGS --mkfs # --debug_journal 20 --debug_osd 20 --debug_filestore 20 --debug_ebofs 20
-           key_fn=dev/osd$osd/osd$osd.keyring
-           if [ $overwrite_conf -eq 1 ]; then
+           cmd="$SUDO $CEPH_BIN/cosd -i $osd $ARGS --mkfs"
+           echo $cmd
+           $cmd
+
+           if [ "$cephx" -eq 1 ]; then
+               key_fn=dev/osd$osd/osd$osd.keyring
+               if [ $overwrite_conf -eq 1 ]; then
                    cat <<EOF > $osd_caps
 ; generated by vstart.sh on `date`
        mon = "allow rwx"
        osd = "allow rwx"
 EOF
+               fi
+               $SUDO $CEPH_BIN/authtool --gen-key --name=osd.$osd --caps=$osd_caps $key_fn
+               $SUDO $CEPH_ADM -i $key_fn auth add osd.$osd
            fi
-            $SUDO $CEPH_BIN/authtool --gen-key --name=osd.$osd --caps=$osd_caps $key_fn
-            $SUDO $CEPH_ADM -i $key_fn auth add osd.$osd
        fi
        echo start osd$osd
        run 'osd' $SUDO $CEPH_BIN/cosd -i $osd $ARGS $COSD_ARGS
@@ -326,9 +349,9 @@ if [ "$start_mds" -eq 1 ]; then
     mds=0
     for name in a b c d e f g h i j k l m n o p
     do
-        key_fn=dev/mds.$name.keyring
+        [ "$cephx" -eq 1 ] && key_fn=dev/mds.$name.keyring
        if [ "$new" -eq 1 ]; then
-           if [ $overwrite_conf -eq 1 ]; then
+           if [ "$cephx" -eq 1 ] &&[ $overwrite_conf -eq 1 ]; then
                cat <<EOF >> $conf
 [mds.$name]
         keys file = $key_fn
@@ -339,9 +362,9 @@ EOF
        osd = "allow rwx"
        mds = "allow"
 EOF
+               $SUDO $CEPH_BIN/authtool --gen-key --name=mds.$name --caps=$mds_caps $key_fn
+               $SUDO $CEPH_ADM -i $key_fn auth add mds.$name
            fi
-            $SUDO $CEPH_BIN/authtool --gen-key --name=mds.$name --caps=$mds_caps $key_fn
-            $SUDO $CEPH_ADM -i $key_fn auth add mds.$name
        fi
        
        run 'mds' $CEPH_BIN/cmds -i $name $ARGS $CMDS_ARGS
@@ -353,8 +376,9 @@ EOF
 #$CEPH_BIN/cmds -d $ARGS --mds_thrash_fragments 0 --mds_thrash_exports 0 #--debug_ms 20
 #$CEPH_ADM mds set_max_mds 2
     done
-    echo $CEPH_ADM mds set_max_mds $CEPH_NUM_MDS
-    $CEPH_ADM mds set_max_mds $CEPH_NUM_MDS
+    cmd="$CEPH_ADM mds set_max_mds $CEPH_NUM_MDS"
+    echo $cmd
+    $cmd
 fi
 
 echo "started.  stop.sh to stop.  see out/* (e.g. 'tail -f out/????') for debug output."