Blog Post

Azure High Performance Computing (HPC) Blog
2 MIN READ

Automating Ubuntu Pro Integration with Azure CycleCloud HPC Clusters

egmsft's avatar
egmsft
Icon for Microsoft rankMicrosoft
Apr 28, 2025

Ubuntu Pro is a premium subscription service offered by Canonical. It is designed to provide additional features, tools, and extended support for Ubuntu users, particularly those in enterprise or production environments. 

A key feature of Ubuntu Pro is that it offers extended security updates and patches for older versions of Ubuntu that are no longer supported under standard updates. This helps ensure that businesses can continue using older Ubuntu LTS (Long Term Support) releases securely even after their standard support period ends.

Ubuntu Pro can be purchased through a private offer, which allows enterprises to achieve more efficient cost management. However, to use a private offer in Azure one must ensure that a VM is 'attached' to an Ubuntu Pro subscription at creation. Furthermore, while VMs do get detached from a subscription when deleted, it is best practice to 'detach' from the subscription, when the VM no longer needs the pro features. 

In this blog post, we will explore the process of automating Ubuntro Pro subscription management in an Azure CycleCloud HPC cluster. Azure CycleCloud is an Azure service tailored for managing high-performance computing (HPC) and AI workloads at scale. With CycleCloud, users can seamlessly execute jobs of any magnitude while automating the creation, scaling, and configuration of infrastructure for HPC+AI systems. It also integrates with familiar HPC+AI schedulers such as Slurm, PBSPro, and Grid Engine, ensuring a streamlined experience for advanced computing environments.

The cyclecloud-ubuntupro project will help ensure that the compute infrastructure deployed via Azure CycleCloud is automatically attached to an existing Ubuntu Pro subscription at resource creation and detached when deallocated. 

Pre-Requisites
  • An active Ubuntu Pro subscription
  • Azure CycleCloud installed and running (CycleCloud 8.0 or later)
  • Supported Templates:
    • Slurm
Configuring the project
  1. Open a terminal session in the CycleCloud server with the CycleCloud CLI enabled.

  2. Clone the cyclecloud-ubuntupro repo
    git clone  https://github.com/egmsft/cyclecloud-ubuntupro.git
  3. Switch to the cyclecloud-ubuntupro project directory and upload the project to the cyclecloud locker.
    cd cyclecloud-ubuntupro/
    cyclecloud project upload <locker name>

     

  4. Import the required template
    cyclecloud import_template -f templates/slurm-ubuntupro.txt -c Slurm slurm-ubuntupro 
Creating the Cluster
  1. After the import you should see an entry for slurm-ubuntupro under the list of supported schedulers. Select the template to build the cluster.
  2. Follow the steps to configure the cluster.
  3. Once you reach the Ubuntu Pro tab, enter your token for your Ubuntu Pro Subscription
Testing the Cluster

After configuring the cluster, you can start it and validate that the VMs are getting attached to your subscription by running this command:

pro status

The output of that command should look something like this: 

Note, when VMs get terminated, the VMs will detach from your subscription before they get deallocated. The detachment is done using scheduled events and CycleCloud's jetpack will log the successful execution of the onTerminate.sh script that gets applied during the VM's initial configuration.

Resources
Updated Apr 28, 2025
Version 1.0
No CommentsBe the first to comment