Edit

Share via


Running CycleCloud using an ARM template

You can install Azure CycleCloud on Azure resources by using an Azure Resource Manager template (ARM template) that you store on GitHub. The ARM template takes care of most of the CycleCloud setup. The ARM template:

  1. Deploys a virtual network with three separate subnets:
    • cycle: The subnet where the CycleCloud server starts
    • compute: A /22 subnet for the High Performance Computing (HPC) clusters
    • user: The subnet for creating user authentications
  2. Provisions a VM in the cycle subnet and installs Azure CycleCloud on it.

The recommended method of installing CycleCloud is via the CycleCloud Marketplace Image. For more information, see the CycleCloud Marketplace Installation Quickstart. You can also install CycleCloud manually, which gives you greater control over the installation and configuration process. For more information, see the Manual CycleCloud Installation Quickstart.

Prerequisites

You need:

  1. An Azure account with an active subscription.
  2. A Shell session in a terminal.
    • If you're using a Windows machine, use the browser-based Bash shell.
    • For non-Windows machines, install and use Azure CLI v2.0.20 or later. Run az --version to find your current version. If you need to install or upgrade, see Install Azure CLI 2.0.

Open Azure Cloud Shell

Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. There are a few ways to open Cloud Shell:

Select the green Try It button in the upper-right corner of a code block. Cloud Shell in this article
Open Cloud Shell in your browser. Launch Cloud Shell
Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell in the portal

Service principal

Azure CycleCloud needs a service principal with contributor access to your Azure subscription. If you don't have a service principal, you can create one. Your service principal name must be unique. In the following example, CycleCloudApp can be replaced with any name you choose:

az ad sp create-for-rbac --name CycleCloudApp --years 1

The output displays several parameters. Save the appId, password, and tenant values:

"appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": "CycleCloudApp",
"name": "http://CycleCloudApp",
"password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

SSH keypair

You need an SSH key to sign in to the CycleCloud VM and clusters. Generate an SSH keypair:

ssh-keygen -f ~/.ssh/id_rsa -m pem -t rsa -N "" -b 4096

Note

The Python cryptography library used by the CycleCloud CLI doesn't support the newer OpenSSH serialization format. Use ssh-keygen -m pem to generate the key with the older standard format.

Get the SSH public key with:

cat ~/.ssh/id_rsa.pub

The output starts with ssh-rsa followed by a long string of characters. Copy and save this key now.

On Linux, follow these instructions on GitHub to generate a new SSH keypair.

Deploy Azure CycleCloud

Select the following button to deploy Azure CycleCloud into your subscription:

deploy to azure

Enter the required information.

Basics:

  • Subscription: If you have more than one active Azure subscription, select the one to use here
  • Resource Group: Enter the name of a new resource group that holds everything generated by this quickstart (for example, MyQuickstart)
  • Location: Select a region in which to store your instance

Settings:

  • Tenant ID: The tenant from the service principal
  • Application ID: The appId from the service principal
  • Application Secret: The password from the service principal
  • SSH Public Key: The public key you use to sign in to the CycleCloud VM
  • Username: The username for the CycleCloud VM. Use your Azure portal username without the domain (for example, johnsmith instead of [email protected])

Use the default values for the other fields. Agree to the terms and conditions, and select Purchase. The CycleCloud product is free, but you pay for the core hours you use in Azure.

The deployment process runs an installation script as a custom script extension, which installs and sets up CycleCloud. This process takes between 5 and 8 minutes.

Sign in to the CycleCloud application server

To connect to the CycleCloud webserver, get the Fully Qualified Domain Name (FQDN) of the CycleServer VM from either the Azure portal or the CLI:

# Replace "MyQuickstart" with the resource group you created above.
export RESOURCE_GROUP="MyQuickstart"
az network public-ip show -g ${RESOURCE_GROUP?} -n cycle-ip --query dnsSettings.fqdn

Browse to https://<FQDN>/. The installation uses a self-signed SSL certificate, which might show up with a warning in your browser.

Create a Site Name for your installation. You can use any name:

CycleCloud Welcome screen

The Azure CycleCloud End User License Agreement is displayed - accept it. You need to create a CycleCloud admin user for the application server. We recommend using the same user name you used earlier. Make sure the password you enter meets the listed requirements. Select Done to continue.

CycleCloud Create New User screen

After you create your user, set your SSH key so you can more easily access any Linux VMs that CycleCloud creates. To add an SSH key, edit your profile by selecting your name in the upper right corner of the screen.

You now have a running CycleCloud application that lets you create and run clusters.

Note

You can customize the default CycleCloud configuration for specific environments by using settings in the $CS_HOME/config/cycle_server.properties file.

Further reading