Use a Startup Script for Azure Nodes
Updated: June 4, 2014
Applies To: Microsoft HPC Pack 2008 R2, Microsoft HPC Pack 2012, Microsoft HPC Pack 2012 R2
You can configure a startup script that runs automatically on a set of Azure nodes when they are started (provisioned). Using a startup script, you can ensure that a group of nodes are configured properly to run specific jobs. Additionally, the nodes are restored to a known state if they become unavailable because of a service interruption and the role instances need to be provisioned in Azure again. For example, using a startup script, you can install applications or drivers, configure a shared folder, or open firewall ports for specific applications. You can also use a startup script to configure subsets of nodes differently within the set of Azure nodes that are deployed using a particular node template.
In this topic:
The following are the general steps for configuring and using a startup script for your Azure nodes:
Create a configuration script (for example, startup.bat) that uses environment variables to differentiate nodes and to set different configurations. For more information, see the remaining sections in this topic.
Use the hpcpack command to package the script and upload it to the Azure storage account that is used for deploying the Azure nodes.
Do not specify the /relativePath parameter when packaging and uploading the startup script. The startup script should only run from the root directory of the Azure nodes.
Create or edit an Azure node template to specify the startup script.
Start (provision) the Azure nodes.
The startup script is automatically deployed to the Azure nodes and runs on the nodes. If a problem occurs when the script runs, you can review the error logs. For more information, see Troubleshoot Deployments of Azure Nodes with Microsoft HPC Pack.
You must ensure conformity between the name of the package that you upload to Azure and the name of the script that runs (and that is specified in the node template). Only the naming conventions in the following table are allowed:
file.extension (example: startup.bat)
file.extension.zip (example: startup.bat.zip)
file.zip (example: startup.zip)
You can use the environment variables in the following table, which are set automatically on the Azure nodes, to help configure your startup script:
The name of the Azure node that is automatically configured by Microsoft® HPC Pack – for example, AZURECN-0014.
A comma-delimited list of node groups that the node belongs to. Allows the behavior of a script to be specialized for different subsets of the nodes.
The following example is a batch file that configures a firewall rule on a subset of nodes that are identified by the node group Port31337 Server Group. You can adapt this pattern to create startup scripts that perform other tasks.
@echo off echo %HPC_NODE_GROUPS% | findstr /C: "Port31337 Server Group" if %errorlevel% == 0 ( echo Creating firewall exception netsh advfirewall firewall add rule name="MyRule" dir=in protocol=tcp localport=31337 action=allow enable=yes )
If a problem occurs when a startup script runs, review the log files for the script. The logs for the startup scripts are listed in the following table. The log files are in the %CCP_HOME% folder on each Azure worker node.
Exit code and output stream