Skip to content

provide automation for registering baremetal DF? #5

@snowch

Description

@snowch

Thanks to @jaideepjoshi

register-xdf-tenant-storage.sh

#!/bin/bash

exec > >(tee -i generated/$(basename $0).log)
exec 2>&1

set -e
set -u
set -o pipefail

source "./scripts/functions.sh"
source "./scripts/00b-load-env-variables.sh"
export HPECP_CONFIG_FILE="./generated/hpecp.conf"

if [[ ! -d generated ]]; then
   echo "This file should be executed from the project directory"
   exit 1
fi

XDFHOST1=`cat ./generated/novalist |grep $PROJECT_ID|grep externaldf-host-1| awk '{ split($12, v, "="); print v[2]}'`

echo "Creating Service Ticket"
ssh -o StrictHostKeyChecking=no -i "./generated/controller.prv_key" -T ubuntu@$XDFHOST1 << ENDSSH1
  sudo apt-get install -y expect
  set -x
expect <<EOF
   spawn \maprlogin password -user mapr
   expect "Password for user 'mapr' at cluster 'xdf.demo.com': " { send "mapr\r" }
   expect eof
EOF
maprlogin print
maprlogin generateticket -type service -user mapr -out /tmp/mapr-service-ticket
chmod 777 /tmp/mapr-service-ticket
echo "Done Creating Service Ticket"
sudo ls -l /tmp/mapr-service-ticket
ENDSSH1

echo "Creating Secrets File"
scp -i "./generated/controller.prv_key" ./files/gen-external-secrets.sh ubuntu@$XDFHOST1:/tmp/gen-external-secrets.sh
#ssh -i "./generated/controller.prv_key" -T ubuntu@$XDFHOST1 "sudo cp /tmp/gen-external-secrets.sh /home/mapr/gen-external-secrets.sh"
#ssh -i "./generated/controller.prv_key" -T ubuntu@$XDFHOST1 "sudo chmod 777 /home/mapr/gen-external-secrets.sh"
#ssh -i "./generated/controller.prv_key" -T ubuntu@$XDFHOST1 "sudo chown mapr:mapr /home/mapr/gen-external-secrets.sh"
ssh -o StrictHostKeyChecking=no -i "./generated/controller.prv_key" -T ubuntu@$XDFHOST1 << ENDSSH2
  set -x
  sudo cp /tmp/gen-external-secrets.sh /home/mapr/gen-external-secrets.sh
  sudo chmod 777 /home/mapr/gen-external-secrets.sh
  sudo chown mapr:mapr /home/mapr/gen-external-secrets.sh
expect <<EOF
   spawn \sudo runuser -l mapr -c /home/mapr/gen-external-secrets.sh
   expect "Please provide output filename:" { send "mapr-external-secrets.yaml\r" }
   expect "Please provide the MapR username:" { send "mapr\r" }
   expect "Please provide mapr's password:" { send "mapr\r" }
   expect "Is this a Kubernetes Storage Node?" { send "n\r" }
   expect "Please provide the server configmap name:" { send "mapr-external-cm\r" } 
   expect "Please provide the user secret name:" { send "mapr-user-secrets\r" } 
   expect "Please provide the server secret name:" { send "mapr-server-secrets\r" } 
   expect "Please provide the client secret name:" { send "mapr-client-secrets\r" } 
   expect "Please provide the hivesite configmap name:" { send "mapr-hivesite-cm\r" }
   expect eof
EOF
ENDSSH2

echo "Copying Secrets File and ssl trustore to /tmp"
ssh -o StrictHostKeyChecking=no -i "./generated/controller.prv_key" -T ubuntu@$XDFHOST1 << ENDSSH3
sudo cp /home/mapr/mapr-external-secrets.yaml /tmp/mapr-external-secrets.yaml
sudo cp /opt/mapr/conf/ssl_truststore /tmp/ssl_truststore
sudo ls -l /tmp/mapr-external-secrets.yaml
sudo ls -l /tmp/ssl_truststore
echo "Done Secrets File and ssl trustore to /tmp"
ENDSSH3

echo "Copying Ticket, Secrets, SSL TrustStore, Manifest File to ./generated"
scp -i "./generated/controller.prv_key" ubuntu@$XDFHOST1:/tmp/mapr-service-ticket ./generated/mapr-service-ticket
scp -i "./generated/controller.prv_key" ubuntu@$XDFHOST1:/tmp/mapr-external-secrets.yaml ./generated/mapr-external-secrets.yaml
scp -i "./generated/controller.prv_key" ubuntu@$XDFHOST1:/tmp/ssl_truststore ./generated/ssl_truststore
cp ./files/ext-dftenant-manifest ./generated/ext-dftenant-manifest

echo "Copying Ticket, Secrets, SSL TrustStore, Manifest File to Controller"
for CONTROLLER in `cat ./generated/novalist |grep $PROJECT_ID|grep controller | awk '{ split($12, v, "="); print v[2]}'`
do 
scp -i "./generated/controller.prv_key" ./generated/mapr-service-ticket centos@$CONTROLLER:/opt/bluedata/bundles/hpe-cp-rhel-release-5.4-150/scripts/mapr-service-ticket
scp -i "./generated/controller.prv_key" ./generated/mapr-external-secrets.yaml centos@$CONTROLLER:/opt/bluedata/bundles/hpe-cp-rhel-release-5.4-150/scripts/mapr-external-secrets.yaml
scp -i "./generated/controller.prv_key" ./generated/ssl_truststore centos@$CONTROLLER:/opt/bluedata/bundles/hpe-cp-rhel-release-5.4-150/scripts/ssl_truststore
ssh -i "./generated/controller.prv_key" -T centos@$CONTROLLER "mkdir /opt/bluedata/tmp/ext-bm-mapr"
scp -i "./generated/controller.prv_key" ./generated/ext-dftenant-manifest centos@$CONTROLLER:/opt/bluedata/tmp/ext-bm-mapr/ext-dftenant-manifest
done 

echo "Congiguring XDF as Tenant Storage"
ssh -i "./generated/controller.prv_key" -T centos@$CONTROLLER "LOG_FILE_PATH=/tmp/"ext_configure_dftenants_"`date +"%Y-%m-%d.%H.%M"`".txt" HCP_ADMIN_PASS="admin123" /opt/bluedata/bundles/hpe-cp-*/startscript.sh --action ext_configure_dftenants"
echo "Registering XDF as Tenant Storage"
ssh -i "./generated/controller.prv_key" -T centos@$CONTROLLER "LOG_FILE_PATH=/tmp/"ext_register_dftenants_"`date +"%Y-%m-%d.%H.%M"`".txt" HCP_ADMIN_PASS="admin123" /opt/bluedata/bundles/hpe-cp-*/startscript.sh --action ext_register_dftenants"

#need expect for the following 
#Enter Site Admin username: admin
#Enter Site Admin password: admin123

ext-dftenant-manifest

CLDB_LIST="jai-ecp-demo-externaldf-host-1.demo.com"
CLDB_PORT="7222"
SECURE="true" 
CLUSTER_NAME="xdf.demo.com"
REST_URL="https://jai-ecp-demo-externaldf-host-1.demo.com:8443/rest/"
EXT_MAPR_MOUNT_DIR="/xdf"
TICKET_FILE_LOCATION="/opt/bluedata/bundles/hpe-cp-rhel-release-5.4-150/scripts/mapr-service-ticket"
SSL_TRUSTSTORE_LOCATION="/opt/bluedata/bundles/hpe-cp-rhel-release-5.4-150/scripts/ssl_truststore"
EXT_SECRETS_FILE_LOCATION="/opt/bluedata/bundles/hpe-cp-rhel-release-5.4-150/scripts/mapr-external-secrets.yaml"
HCP_ADMIN="admin"
FORCE_ERASE="false" 
RESTART_CNODE="false"

`

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions