This topic describes how to upgrade BOSH Director for VMware Tanzu Operations Manager (Ops Manager) on Azure.
Complete the tasks in this topic as part of the Ops Manager upgrade process. For more information, see Upgrading Ops Manager.
In this procedure, you create an Ops Manager VM instance to host the upgraded version of Ops Manager. Then, to complete the Ops Manager upgrade, you export your existing Ops Manager installation onto this new VM.
Note: The Azure portal sometimes displays the names of resources with incorrect capitalization. Always use the Azure CLI to retrieve the correctly capitalized name of a resource.
To create an Ops Manager VM instance:
Export environment variables. For more information, see Export Environment Variables.
Copy the Ops Manager image into your storage account. For more information, see Copy the Ops Manager Image.
Configure the Ops Manager IP Address. For more information, see Configure Ops Manager IP Address.
Create Ops Manager VM instance. For more information, see Create Ops Manager VM Instance.
To complete the Ops Manager upgrade, you must have your Ops Manager decryption passphrase. You defined this decryption passphrase during the initial installation of Ops Manager.
Export the connectionString
variable for your Azure account and assign it to a new environment variable. You use the connectionString
environment variable when you copy the Ops Manager image in the following procedure.
To export environment variables:
Install the Azure CLI v2.0 by following the instructions for your operating system in Install the Azure CLI in the Microsoft Azure documentation.
Set your cloud by running:
az cloud set --name AzureCloud
If you deployed Ops Manager in an environment other than Azure Cloud, consult the following list:
AzureCloud
with AzureChinaCloud
. If logging in to AzureChinaCloud
fails with a CERT_UNTRUSTED
error, use Node v4 or later.AzureCloud
with AzureUSGovernment
.AzureCloud
with AzureGermanCloud
.Log in:
az login
Authenticate by navigating to the URL in the output, entering the provided code, and clicking your account.
Ensure that the following environment variables are set to the names of the resources you created when deploying Ops Manager as part of the procedures in Deploying Ops Manager on Azure:
$RESOURCE_GROUP
: This should be set to the name of your resource group. To list the resource groups for your subscription, run:
az group list
$LOCATION
: This should be set to your location, such as westus
. To view a list of available locations, run:
az account list-locations
$STORAGE_NAME
: This should be set to your BOSH storage account name. To list your storage accounts, run:
az storage account list
Retrieve the connection string for the account by running:
az storage account show-connection-string \
--name $STORAGE_NAME --resource-group $RESOURCE_GROUP
The command returns output similar to the following:
{ "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=cfdocsboshstorage;AccountKey=EXAMPLEaaaaaaaaaleiIy/Lprnc5igFxYWsgq016Tu9uGwseOl8bqNBEL/2tp7wX92QMUM19Pz9BYTXt8aq4A==" }
From the data:
field in the output above, record the full value of connectionString
from the output above, starting with and including DefaultEndpointsProtocol=
.
Export the value of connectionString
as the environment variable $AZURE_STORAGE_CONNECTION_STRING
by running:
export AZURE_STORAGE_CONNECTION_STRING="ACCOUNT-KEY-STRING"
Where ACCOUNT-KEY-STRING
is the value of connectionString
.
Copy the Ops Manager image into your storage account. You use the Ops Manager image to create the VM that hosts that the new version of Ops Manager.
To copy the Ops Manager image into your storage account:
Navigate to the Ops Manager page on VMware Tanzu Network and download the release of Ops Manager for Azure to which you want to upgrade.
View the downloaded PDF and locate the Ops Manager image URL appropriate for your region.
Export the Ops Manager image URL as an environment variable by running:
export OPS_MAN_IMAGE_URL="OPS-MANAGER-IMAGE-URL"
Where OPS-MANAGER-IMAGE-URL
is the URL of your Ops Manager image.
This command overrides the old Ops Manager image URL with the new Ops Manager image URL.
Copy the Ops Manager image into your storage account. For compatibility when upgrading to future versions of Ops Manager, choose a unique name for the image that includes the Ops Manager version number. For example, replace opsman-image-version
in the following examples with opsman-image-2.0.1
. Run:
az storage blob copy start --source-uri $OPS_MAN_IMAGE_URL \
--connection-string $AZURE_STORAGE_CONNECTION_STRING \
--destination-container opsmanager \
--destination-blob opsman-image-version.vhd
Copying the image may take several minutes. Run:
az storage blob show --name opsman-image-version.vhd \
--container-name opsmanager \
--account-name $STORAGE_NAME
Examine the output under "copy"
, as in the example below:
"copy": { "completionTime": "2017-06-26T22:24:11+00:00", "id": "b9c8b272-a562-4574-baa6-f1a04afcefdf", "progress": "53687091712/53687091712", "source": "https://opsmanagerwestus.blob.core.windows.net/images/ops-manager-2.0.x.vhd", "status": "success", "statusDescription": null },
When status
reads success
, continue to the next step.
Remove the old Ops Manager VM and record the IP address for the Ops Manager network interface. You use this IP address when creating the new Ops Manager VM that hosts the upgraded version of Ops Manager.
To configure the Ops Manager IP address, follow one of these procedures:
To reuse an existing dynamic public IP address:
List your VMs and record the name of your Ops Manager VM by running:
az vm list
Delete your old Ops Manager VM by running:
az vm delete --name OPS-MANAGER-VM --resource-group $RESOURCE_GROUP
Where OPS-MANAGER-VM
is your old Ops Manager VM.
List your network interfaces and record the name of the Ops Manager network interface. Run:
az resource list --resource-group $RESOURCE_GROUP \
--resource-type Microsoft.Network/networkInterfaces
To use a new dynamic public IP address:
Create a new public IP address named ops-manager-ip-new
by running:
az network public-ip create --name ops-manager-ip-new \
--resource-group $RESOURCE_GROUP --location $LOCATION \
--allocation-method Static
{
"publicIp": {
"dnsSettings": null,
"etag": "W/\"4450ebe2-9e97-4b17-9cf2-44838339c661\"",
"id": "/subscriptions/995b7eed-77ef-45ff-a5c9-1a405ffb8243/resourceGroups/cf-docs/providers/Microsoft.Network/publicIPAddresses/ops-manager-ip-new",
"idleTimeoutInMinutes": 4,
"ipAddress": "40.83.148.183",
"ipConfiguration": null,
"location": "westus",
"name": "ops-manager-ip-new",
"provisioningState": "Succeeded",
"publicIpAddressVersion": "IPv4",
"publicIpAllocationMethod": "Static",
"resourceGroup": "cf-docs",
"resourceGuid": "950d4831-1bec-42da-8a79-959bcddea9dd",
"tags": null,
"type": "Microsoft.Network/publicIPAddresses"
}
}
Record the value for ipAddress
from the output above. This is the public IP address of Ops Manager.
Create a network interface for Ops Manager by running:
az network nic create --vnet-name pcf-net \
--subnet pcf --network-security-group opsmgr-nsg \
--private-ip-address 10.0.0.5 \
--public-ip-address ops-manager-ip-new \
--resource-group $RESOURCE_GROUP \
--name ops-manager-nic-new --location $LOCATION
Shut down your old Ops Manager VM, if it still exists. Run:
az vm deallocate --name ops-manager --resource-group $RESOURCE_GROUP
If your Ops Manager VM is not named ops-manager
, provide the correct name. To list all VMs in your account, run:
az vm list
Update your DNS record to point to your new public IP address of Ops Manager.
Create an Ops Manager VM instance to host the new version of Ops Manager.
To create an Ops Manager VM instance:
To use the key pair from your previous Ops Manager, locate the path to the file on your local machine. To create a new key pair, enter:
ssh-keygen -t rsa -f opsman -C ubuntu
When prompted for a passphrase, press the Enter
key to provide an empty passphrase.
Create the Ops Manager VM.
If you are using unmanaged disks, create your Ops Manager VM by running:
az vm create --name OPS-MANAGER-VERSION --resource-group $RESOURCE_GROUP \
--location $LOCATION \
--nics opsman-nic \
--image https://$STORAGE_NAME.AZURE-INSTANCE-URL.com/opsmanager/OPS-MANAGER-IMAGE-VERSION.vhd \
--os-disk-name OPS-MANAGER-VERSION-osdisk \
--os-disk-size-gb 128 \
--os-type Linux \
--use-unmanaged-disk \
--storage-account $STORAGENAME \
--storage-container-name opsmanager \
--admin-username ubuntu \
--ssh-key-value PATH-TO-PUBLIC-KEY
Where:
OPS-MANAGER-VERSION
is the version of Ops Manager you are deploying. For example, opsman-2.0.1
.AZURE-INSTANCE-URL.com
is the URL of your Azure instance. Find the complete source URL in the Azure UI by viewing the Blob properties of the Ops Manager image you created earlier in this procedure.OPS-MANAGER-IMAGE-VERSION
is the image version of Ops Manager you are deploying. For example, opsman-image-2.0.1
.PATH-TO-PUBLIC-KEY
is the path to your public key .pub file.If you are using Azure managed disks:
Create a managed image from the Ops Manager VHD file by running:
az image create --resource-group $RESOURCE_GROUP \
--name OPS-MANAGER-VERSION \
--source https://$STORAGE_NAME.blob.core.windows.net/opsmanager/OPS-MANAGER-VERSION.vhd \
--location $LOCATION \
--os-type Linux
Where OPS-MANAGER-VERSION
is the version of Ops Manager you are deploying.
If you are using Azure China, Azure Government Cloud, or Azure Germany, replace blob.core.windows.net
with the following:
blob.core.chinacloudapi.cn
. For more information, see Azure China developer guide in the Microsoft Azure documentation.blob.core.usgovcloudapi.net
. For more information, see Azure Government storage in the Microsoft Azure documentation.blob.core.cloudapi.de
. For more information, see Azure Germany developer guide in the Microsoft Azure documentation.Create your Ops Manager VM by running: replacing PATH-TO-PUBLIC-KEY
with the path to your public key .pub
file, and replacing opsman-version
and opsman-image-version
with the version of Ops Manager you are deploying, for example opsman-2.0.1
, opsman-2.0.1-osdisk
, and opsman-image-2.0.1
.
az vm create --name opsman-version --resource-group $RESOURCE_GROUP \
--location $LOCATION \
--nics opsman-nic \
--image OPS-MANAGER-IMAGE-VERSION \
--os-disk-name OPS-MANAGER-VERSION-osdisk \
--admin-username ubuntu \
--size Standard_DS2_v2 \
--storage-sku Standard_LRS \
--ssh-key-value PATH-TO-PUBLIC-KEY
Where:
OPS-MANAGER-IMAGE-VERSION
is the image version of Ops Manager you are deploying. For example, opsman-image-2.0.1
.OPS-MANAGER-VERSION
is the version of Ops Manager you are deploying. For example, opsman-2.0.1
.PATH-TO-PUBLIC-KEY
is the path to your public key .pub file.If you have deployed more than one tile in this Ops Manager installation, increase the size of the Ops Manager VM disk. You can repeat this process and increase the disk again at a later time if necessary.
Note: If you use Azure Stack, you must increase the Ops Manager VM disk size using the Azure Stack UI.
Stop the VM and detach the disk by running:
az vm deallocate --name OPS-MANAGER-VERSION \
--resource-group $RESOURCE_GROUP
Where OPS-MANAGER-VERSION
is the version of Ops Manager you are deploying. For example, opsman-2.0.1
.
Resize the disk to 128 GB by running:
az disk update --size-gb 128 --name OPS-MANAGER-VERSION-osdisk \
--resource-group $RESOURCE_GROUP
Where OPS-MANAGER-VERSION
is the version of Ops Manager you are deploying. For example, opsman-2.0.1
.
Start the VM by running:
az vm start --name OPS-MANAGER-VERSION --resource-group $RESOURCE_GROUP
Where OPS-MANAGER-VERSION
is the version of Ops Manager you are deploying. For example, opsman-2.0.1
.
After you complete this procedure, continue to the upgrade instructions in Upgrading Ops Manager.