Mubadala
| Customer Name | Mubadala |
|---|---|
| Status | Live |
| Onboarded Date | 01 Apr 2025 |
| SF Number | 103776https://rhapsody.lightning.force.com/lightning/r/Account/0018Z00002Xdc0QQAR/view |
| Environments | Dev, Test and Prod |
| Networking (VPN, ExpressRoute or Vnet Peering) | M42 Provisioned |
| Technical Contact | Ashish Shinde - ashinde@m42.aeVenkateswaran Ramanathan - vramanathan@m42.ae |
Customer Details
Mubadala are a customer operating under the M42 owned tenant.
They were introduced by Digitiza and are part of our reseller agreement within the UAE.
In this environment “Rhapsody” do not have any control over networking, such as VPNs, ExpressRoute etc.
Configurations
American Hospital have the following environments configured.
| Environment | Size | Disk Capacity | Access Point | Rhapsody Version |
|---|---|---|---|---|
| Devvmss-m42-RhapsodyServices-uaen-dev | Medium | 2Tb | 10.13.39.102 | 7.5.1 |
| Testvmss-m42-RhapsodyServices-uaen-test | Medium | 1Tb | 10.13.39.103 | 7.5.1 |
| Prodvmss-m42-RhapsodyServices-uaen-prod | Large | 3Tb | 10.13.39.69 | 7.5.1 |
Cases
Knowledge Sharing
This customer was originally deployed using Terraform, however over the past 6/8 months there has been significant drift which has caused the team to rethink the management of this environment.
Terraform will not be in play when managing the infrastructure, instead we will manually need to configure and update resources directly from the portal.
We will still use Ansible runners to manage specific attributes, such as status checks, service restarts, password resets etc.
Each environment is managed as such.
Production
The production environment pulls its pre-built image from the following location.
Image Gallery
Compute Gallery: ImageGalleryProd
VM image definition: SnowflakeImagesProd
Versions: 1.0.0 (latest version)
The above image was cut from the prod running instance on 21 Jan 2026
This means that if the server is rebuilt from a failure more than 6 months from this date, it is likely the image may need to be updated with the latest patches.
The user-data bootstrapping script has been modified from its original incarnation to a stand alone model.
#!/bin/bash
set -e
# --- Configuration ---
DISK_NAME="disk-m42-RhapsodyServices-uaen-prod-ASGDEV-2"
# --- 1. Identity & Discovery ---
# Get the current VM's Resource Group and Name from Azure Instance Metadata Service (IMDS)
MY_RG=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/resourceGroupName?api-version=2021-02-01&format=text")
MY_VM_NAME=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/name?api-version=2021-02-01&format=text")
# Log in using the VM's Managed Identity
az login --identity
# --- 2. Attach the Disk ---
echo "Attaching disk: $DISK_NAME..."
az vm disk attach \
--resource-group "$MY_RG" \
--vm-name "$MY_VM_NAME" \
--name "$DISK_NAME"
# Wait a moment for the kernel to register the new block device
sleep 10
# --- 3. Mount & Verify ---
echo "Mounting all filesystems..."
if mount -a; then
echo "Mount verified successfully."
# --- 4. Start Services ---
echo "Starting services..."
systemctl start rhapsody.service
systemctl start otelcol-contrib.service
systemctl start otelcol-rhapsody.service
else
echo "CRITICAL: Mount failed. Services will not start."
exit 1
fi
Dev
The dev environment pulls its pre-built image from the following location.
Image Gallery
Compute Gallery: ImageGallery
VM image definition: SnowflakeImages
Versions: 1.0.0 (latest version)
The above image was cut from the prod running instance on 20 Jan 2026
This means that if the server is rebuilt from a failure more than 6 months from this date, it is likely the image may need to be updated with the latest patches.
The user-data bootstrapping script has been modified from its original incarnation to a stand alone model.
#!/bin/bash
set -e
# --- Configuration ---
DISK_NAME="disk-m42-RhapsodyServices-uaen-dev-ASGDEV4"
# --- 1. Identity & Discovery ---
MY_RG=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/resourceGroupName?api-version=2021-02-01&format=text")
MY_VM_NAME=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/name?api-version=2021-02-01&format=text")
# Log in using Managed Identity
az login --identity
# --- 2. Attach the Disk ---
echo "Attaching disk: $DISK_NAME..."
az vm disk attach \
--resource-group "$MY_RG" \
--vm-name "$MY_VM_NAME" \
--name "$DISK_NAME"
sleep 10
# --- 3. Mount & Verify ---
echo "Mounting all filesystems..."
if mount -a; then
echo "Mount verified successfully."
# --- 4. Start Services ---
echo "Starting services..."
systemctl start rhapsody.service
systemctl start otelcol-contrib.service
systemctl start otelcol-rhapsody.service
else
echo "CRITICAL: Mount failed. Services will not start."
exit 1
fi
Test
The test environment pulls its pre-built image from the following location.
Image Gallery
Compute Gallery: ImageGallery
VM image definition: SnowflakeImagesTest
Versions: 1.0.1 (latest version)
The above image was cut from the prod running instance on 21 Jan 2026
This means that if the server is rebuilt from a failure more than 6 months from this date, it is likely the image may need to be updated with the latest patches.
The user-data bootstrapping script has been modified from its original incarnation to a stand alone model.
#!/bin/bash
set -e
# --- Configuration ---
DISK_NAME="disk-m42-RhapsodyServices-uaen-test-ASGDEV-3"
# --- 1. Identity & Discovery ---
MY_RG=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/resourceGroupName?api-version=2021-02-01&format=text")
MY_VM_NAME=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/name?api-version=2021-02-01&format=text")
# Log in using Managed Identity
az login --identity
# --- 2. Attach the Disk ---
echo "Attaching disk: $DISK_NAME..."
az vm disk attach \
--resource-group "$MY_RG" \
--vm-name "$MY_VM_NAME" \
--name "$DISK_NAME"
sleep 10
# --- 3. Mount & Verify ---
echo "Mounting all filesystems..."
if mount -a; then
echo "Mount verified successfully."
# --- 4. Start Services ---
echo "Starting services..."
systemctl start rhapsody.service
systemctl start otelcol-contrib.service
systemctl start otelcol-rhapsody.service
else
echo "CRITICAL: Mount failed. Services will not start."
exit 1
fi