- local tmptab="$TMP/keytab.tmp"
- local node
-
- echo "+++ Generating keytabs"
-
- # remove old keytabs
- echo -n "Deleting old keytabs on all nodes..."
- for node in $MY_OSSNODES $MY_MDSNODES $MY_CLIENTNODES; do
- do_node_mute $node "rm -f $KRB5_KEYTAB $TMP/krb5cc*"
- done
- echo "OK!"
-
- # install for MDS nodes
- for node in $MY_MDSNODES; do
- echo -n "Preparing for MDS $node..."
- do_kdc_mute "rm -f $tmptab"
- add_keytab_svc $tmptab $node mds $MDS_ENCTYPE || return ${PIPESTATUS[0]}
- if is_part_of $node $MY_OSSNODES; then
- echo -n "also be an OSS..."
- add_keytab_svc $tmptab $node oss $OSS_ENCTYPE || \
- return ${PIPESTATUS[0]}
- fi
- echo "OK!"
-
- echo -n "Installing krb5.keytab on $node..."
- $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
- $SCP $tmptab root@$node:$KRB5_KEYTAB || return ${PIPESTATUS[0]}
- echo "OK!"
- rm -f $tmptab
- done
-
- # install for OSS nodes
- for node in $MY_OSSNODES; do
- echo -n "Preparing for OSS $node..."
- if ! is_part_of $node $MY_MDSNODES; then
- do_kdc_mute "rm -f $tmptab"
- add_keytab_svc $tmptab $node oss $OSS_ENCTYPE || \
- return ${PIPESTATUS[0]}
- echo "OK!"
-
- echo -n "Installing krb5.keytab on $node..."
- $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
- $SCP $tmptab root@$node:$KRB5_KEYTAB || return ${PIPESTATUS[0]}
- echo "OK!"
- rm -f $tmptab
- else
- echo "also be an MDS, already done, skip"
- fi
- done
-
- # install for client nodes
- do_kdc_mute "rm -f $tmptab"
- if ! $SPLIT_KEYTAB; then
- echo -n "Preparing for client..."
- add_keytab_root $tmptab $CLIENT_ENCTYPE || return ${PIPESTATUS[0]}
- $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
- else
- for node in $MY_CLIENTNODES; do
- echo -n "Preparing for client $node..."
- # don't generate keytabs if it's also an MDS
- if is_part_of $node $MY_MDSNODES; then
- echo "also be an MDS, already done, skip"
- continue
- fi
-
- add_keytab_svc $tmptab $node root $CLIENT_ENCTYPE || \
- return ${PIPESTATUS[0]}
- $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
- done
- fi
- echo "OK!"
- for node in $MY_CLIENTNODES; do
- echo -n "Installing krb5.keytab on client $node..."
-
- # don't install if it's also an MDS
- if is_part_of $node $MY_MDSNODES; then
- echo "also be an MDS, already done, skip"
- continue
- fi
-
- # merge keytab if it's also an OSS
- if is_part_of $node $MY_OSSNODES; then
- echo -n "also be an OSS, merging keytab..."
- merge_keytab $tmptab $node || return ${PIPESTATUS[0]}
- echo "OK!"
- continue
- fi
-
- # simply install otherwise
- $SCP $tmptab root@$node:$KRB5_KEYTAB || return ${PIPESTATUS[0]}
- echo "OK!"
- done
- rm -f $tmptab || true
+ local tmptab="$TMP/keytab.tmp"
+ local node
+
+ echo "+++ Generating keytabs"
+
+ # remove old keytabs
+ echo -n "Deleting old keytabs on all nodes..."
+ for node in $MY_MGSNODE $MY_OSSNODES $MY_MDSNODES $MY_CLIENTNODES; do
+ do_node_mute $node "rm -f $KRB5_KEYTAB $TMP/krb5cc*"
+ done
+ echo "OK!"
+
+ # install for MDS nodes
+ for node in $MY_MDSNODES; do
+ echo -n "Preparing for MDS $node..."
+ do_kdc_mute "rm -f $tmptab"
+ add_keytab_svc $tmptab $node mds $MDS_ENCTYPE || return ${PIPESTATUS[0]}
+
+ if is_part_of $node $MY_MGSNODE; then
+ echo -n "also be an MGS..."
+ add_keytab_svc $tmptab $node mgs $MGS_ENCTYPE ||
+ return ${PIPESTATUS[0]}
+ fi
+
+ if is_part_of $node $MY_OSSNODES; then
+ echo -n "also be an OSS..."
+ add_keytab_svc $tmptab $node oss $OSS_ENCTYPE ||
+ return ${PIPESTATUS[0]}
+ fi
+ echo "OK!"
+
+ echo -n "Installing krb5.keytab on $node..."
+ $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
+ $SCP $tmptab root@$node:$KRB5_KEYTAB || return ${PIPESTATUS[0]}
+ echo "OK!"
+ rm -f $tmptab
+ done
+
+ # install for MGS node
+ echo -n "Preparing for MGS $MY_MGSNODE..."
+ if ! is_part_of $MY_MGSNODE $MY_MDSNODES; then
+ do_kdc_mute "rm -f $tmptab"
+ add_keytab_svc $tmptab $MY_MGSNODE mgs $MGS_ENCTYPE ||
+ return ${PIPESTATUS[0]}
+
+ if is_part_of $MY_MGSNODE $MY_OSSNODES; then
+ echo -n "also be an OSS..."
+ add_keytab_svc $tmptab $MY_MGSNODE oss $OSS_ENCTYPE ||
+ return ${PIPESTATUS[0]}
+ fi
+ echo "OK!"
+
+ echo -n "Installing krb5.keytab on $MY_MGSNODE..."
+ $SCP root@$MY_KDCNODE:$tmptab $tmptab ||
+ return ${PIPESTATUS[0]}
+ $SCP $tmptab root@$MY_MGSNODE:$KRB5_KEYTAB ||
+ return ${PIPESTATUS[0]}
+ echo "OK!"
+ rm -f $tmptab
+ else
+ echo "also be an MDS, already done, skip"
+ fi
+
+ # install for OSS nodes
+ for node in $MY_OSSNODES; do
+ echo -n "Preparing for OSS $node..."
+ if is_part_of $node $MY_MDSNODES; then
+ echo "also be an MDS, already done, skip"
+ elif is_part_of $node $MY_MGSNODE; then
+ echo "also be an MGS, already done, skip"
+ else
+ do_kdc_mute "rm -f $tmptab"
+ add_keytab_svc $tmptab $node oss $OSS_ENCTYPE ||
+ return ${PIPESTATUS[0]}
+ echo "OK!"
+ echo -n "Installing krb5.keytab on $node..."
+ $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
+ $SCP $tmptab root@$node:$KRB5_KEYTAB || return ${PIPESTATUS[0]}
+ echo "OK!"
+ rm -f $tmptab
+ fi
+ done
+
+ # install for client nodes
+ do_kdc_mute "rm -f $tmptab"
+ if ! $SPLIT_KEYTAB; then
+ echo -n "Preparing for client..."
+ add_keytab_root $tmptab $CLIENT_ENCTYPE || return ${PIPESTATUS[0]}
+ $SCP root@$MY_KDCNODE:$tmptab $tmptab || return ${PIPESTATUS[0]}
+ echo "OK!"
+ else
+ for node in $MY_CLIENTNODES; do
+ echo -n "Preparing for client $node..."
+ # don't generate keytabs if it's also an MDS
+ if is_part_of $node $MY_MDSNODES; then
+ echo "also be an MDS, already done, skip"
+ continue
+ fi
+
+ add_keytab_svc $tmptab $node root $CLIENT_ENCTYPE || \
+ return ${PIPESTATUS[0]}
+ $SCP root@$MY_KDCNODE:$tmptab $tmptab ||
+ return ${PIPESTATUS[0]}
+ echo "OK!"
+ done
+ fi
+ for node in $MY_CLIENTNODES; do
+ echo -n "Installing krb5.keytab on client $node..."
+
+ # don't install if it's also an MDS
+ if is_part_of $node $MY_MDSNODES; then
+ echo "also be an MDS, already done, skip"
+ continue
+ fi
+
+ # merge keytab if it's also an MGS
+ if is_part_of $node $MY_MGSNODE; then
+ echo -n "also be an MGS, merging keytab..."
+ merge_keytab $tmptab $node || return ${PIPESTATUS[0]}
+ echo "OK!"
+ continue
+ fi
+
+ # merge keytab if it's also an OSS
+ if is_part_of $node $MY_OSSNODES; then
+ echo -n "also be an OSS, merging keytab..."
+ merge_keytab $tmptab $node || return ${PIPESTATUS[0]}
+ echo "OK!"
+ continue
+ fi
+
+ # simply install otherwise
+ $SCP $tmptab root@$node:$KRB5_KEYTAB || return ${PIPESTATUS[0]}
+ echo "OK!"
+ done
+ rm -f $tmptab || true