Shell Based Bootstrap Helper Functions

Shell script based bootstrap helper functions exist to update Ambari configurations in Big Data Service.

Note

The custom bootstrap script is run as an opc user. To run a command that needs root access, add sudo.

The following event types are supported for the bootstrap script. For usage example, see Shell Script Examples.

  • CreateBdsInstance
  • on-demand
  • AddWorkerNodes
  • ChangeShape
  • StartBdsInstance

To run a bootstrap script, see Running the Bootstrap Script.

For more information on shell script bootstrap helper functions, see:

Bootstrap Shell Script Helper Functions

For more information on shell bootstrap script, see Shell Based Bootstrap Helper Functions.

For shell script helper function examples, see Shell Script Examples.

To run a bootstrap script, see Running the Bootstrap Script.

Helper Function Functionality
$getClusterName Displays the cluster name.
$getAllNodesIps Displays a space-separated list of IPs of all the nodes.
$getUtilityNodesIps Displays a space-separated list of IPs of the utility nodes.
$getWorkerNodesIps Displays a space-separated list of IPs of the worker nodes.
$getMasterNodesIps Displays a space-separated list of IPs of the master nodes.
$getQueryServerNodesIps Displays a space-separated list of IPs of the query server nodes.
$eventType Displays the event type that initiated the bootstrap script.

Shell Script Examples

For more information on the shell script helper functions, see Bootstrap Shell Script Helper Functions.

Example: Custom bootstrap script with helper functions to find the node types
#!/bin/bash
                    
                    #Helper Method Sample
                    
                    #Use Following Helper function to get list of IPs of all nodes and you can use this to run a command for all nodes
                    for node in $getAllNodesIps
                    do
                    # setup common things for all nodes
                    echo "Node name: $node"
                    done
                    
                    #Cluster Name
                    
                    echo "Cluster Name"+$getClusterName
                    
                    #Master Nodes 
                    for node in $getMasterNodesIps
                    do
                    # setup common things for master nodes
                    echo "Master Node name: $node"
                    done
                    
                    
                    #Worker Nodes 
                    for node in $getWorkerNodesIps
                    do
                    # setup common things for worker nodes
                    echo "Worker Node name: $node"
                    done
                    
                    #Utility Nodes
                    
                    for node in $getUtilityNodesIps
                    do
                    # setup common things for Utility nodes
                    echo "Utility Node name: $node"
                    done
                    
                    #QueryServer Nodes
                    for node in $getQueryServerNodesIps
                    do
                    # setup common things for Query Server nodes
                    echo "QueryServer Node name : $node"
                    done
                    
                    
                    
                    echo "bootstrap script execution complete!!!"
Example: Custom bootstrap script for a cluster life cycle
To run a custom bootstrap script for a cluster life cycle operation such as create cluster, add node, or change shape, use the $eventType helper variable as shown in the following example:
#!/bin/bash
                #Take action on certain Event Types
                
                echo "Customer Bootstrap Script Execution for EventType :$eventType"
                
                if [ $eventType == "CreateBdsInstance" ]
                then
                echo "setup things post Cluster Creation"
                fi
                
                if [ $eventType == "AddWorkerNodes" ]
                then
                echo "setup things post ADD Node "
                fi
                
                if [ $eventType == "ChangeShape" ]
                then
                echo "setup things post Change Shape"
                fi
                
                if [ $eventType == "on-demand" ]
                then
                echo "on demand script execution"
                fi
                
                if [ $eventType == "StartBdsInstance" ]
                then
                echo "set up things post Start operation"
                fi