Pivotal Cloud Foundry v1.7

Installing PCF on Microsoft Azure

Note: This document is preliminary. Official Azure support is expected to be released in September, 2016. PCF on Azure is currently supported via the Pivotal Cloud Foundry Solutions consulting teams.

This topic describes how to deploy Pivotal Cloud Foundry (PCF) on Microsoft Azure. This deployment is suitable for proof-of-concept or trial workloads, not for production.

PCF on Microsoft Azure is available as an offering in Azure Marketplace. The Azure Marketplace offering installs a pre-configured deployment of PCF and key PCF services. No upgrade path is available for this offering to a production deployment.


PCF on Microsoft Azure includes the following components:


You must have the following in order to use PCF on Microsoft Azure:

  • A pay-as-you-go subscription on your Azure account.

  • A Pivotal Network account: If you do not already have an account, create one. Retrieve the API token for your profile by performing the following steps:

    1. Sign into the Pivotal Network.
    2. Navigate to your name in the top right and click Edit Profile.
    3. Record the API token located at the bottom of the page.
  • An Azure command line tool on your machine.

    • For Linux/Unix/Mac OS X, follow these instructions to install the Azure CLI.
    • For Windows, follow these instructions to install the Azure PowerShell.
    • Use azure-sp-tool, follow these instructions to create service principal. The service principal is outputed to azure-credentials.json file.
  • Sufficient resources for your Azure account. PCF on Azure allocates the following resources during deployment:

    • 53 VMs: The deployment uses a total of 53 VMs during the installation. 15 VMs are created to run jobs and errands and are subsequently destroyed. 38 VMs continue to run after installation.
    • 1 storage account
    • 3 public IPs
    • 1 jumpbox VM that runs the deployment using BOSH

    For more information, see Azure subscription and service limits, quotas, and constraints. To raise your quota, follow the instructions in Raise Your Quota below.

    Note: The cost per day for Azure resources varies, but it is likely in the $75-100 (US) range.

Raise Your Quota

  • To request a core quota increase, follow these instructions.

  • When filling in the Details section of the Support Request Description, provide the following information to expedite your request, replacing REGION with your region of choice:

“We are preparing to roll out Pivotal Cloud Foundry from the Azure Marketplace.
We would like to raise our ARM (Azure Resource Manager) core limits.
Requested quantity of ARM Cores: 202
Requested region: REGION
Please fulfill this request as soon as possible.
The request is not temporary.
This will not be a bursting request.
Please allocate 5 TBs of premium storage.
No standard storage will be used.
VM Types to be used: D series, DS series, Dv2 series.
VM count (Number of VMs with Cores ):
2 x D 1 = 2 cores
200 x DS = 150 cores
50 x Dv2 = 50 cores”

Install PCF on Microsoft Azure

  1. Log in to your Microsoft Azure portal.
  2. Select the Azure Marketplace tile.
  3. Search for “Pivotal Cloud Foundry” and select Pivotal Cloud Foundry on Microsoft Azure or navigate directly to the Pivotal Cloud Foundry on Azure Marketplace page. Marketplace
  4. Click Deploy >.

  5. Enter the following User Inputs:

    • Storage Account Name Prefix: Installing PCF on Microsoft Azure creates a new storage account. Use a unique prefix that contains lower-case letters and numbers and is no more than 10 characters long. For more information, see About Azure storage accounts.
    • SSH public key: You must generate 2048-bit RSA public and private key files.
      • Linux/Unix/Mac OS X: From the command line, run $ ssh-keygen -t rsa -b 2048. Locate your public key in ~/.ssh/ and paste the contents into the parameter sshKeyData.
      • Windows: Download, install, and use PuTTYgen. Locate your public key file and paste the contents into the parameter sshKeyData.
    • Service Principal: Upload the azure-credentials.json file that you created from Prerequisites section.
    • Pivotal Network Token: Enter the API token of your Pivotal Network Account that you recorded in the Prerequisites section.
    • Resource Group: Use a new resource group with a unique name for each new deployment. For more information about Azure resource groups, see Manage Azure resources through portal.
    • Location: Choose which Azure location you want to deploy to. If you requested a quota increase, you must choose the same region that you submitted in your request.
  6. Click OK and review the Summary Page.

  7. Click OK and read the Terms of Use and Privacy Policy.

  8. Click Create to be directed to the main Azure portal page, where a new tile shows the deployment is in progress.

    Note: The tile deployment progress shows completed when the initial jumpbox VM is provisioned. This does not indicate the deployment is complete.

    The full deployment takes approximately two hours.

  9. Check the Outputs section of the deployment template. Azure confirms your quota before deploying PCF. If you see this message in the Outputs section of the deployment template CRITICAL Insufficient Quota, PCF will NOT deploy, you need to raise your quota. See Raise Your Quota.


  10. (Optional) In the Outputs section of the deployment template, navigate to the URL shown in PROGRESSMONITORURL textbox. In the tmux session on this page, follow the progress of the deployment. The deployment is complete when the Apps Manager URL is written to the page.

Verify the PCF on Microsoft Azure Installation

  1. From your Azure Portal, navigate to Resource Groups and ensure the new Resource Group has been created. Resource group

  2. SSH into the jumpbox VM by performing the following steps:

    1. Navigate to Resource groups > cf > Deployment history and select your deployment.
    2. Under the Outputs section, record the JUMPBOX-FQDN. This is the fully qualified domain name (FQDN) for the jumpbox VM.
    3. Use a SSH client to open an SSH connection to the jumpbox VM, with the username pivotal.
      • Linux/Unix/Mac OS X: For example, run the command $ ssh
      • Windows: For example, use PuTTY to SSH into the jumpbox VM. Locate your public key file and paste the contents into the appropriate text field in PuTTY.


  3. View the PCF deployment log on the jumpbox VM at /home/pivotal/pcf_install.log.

  4. Find the Apps Manager URL and the admin password:

    1. In the Azure Portal, return to the Outputs section of your deployment.
    2. Navigate to the URL shown in PROGRESSMONITORURL textbox. This is the URL to a tmux session in which you find the Apps Manager URL and admin password that you use to log in to the Apps Manager console. If the URL not longer shows the tmux session, see Cannot find the admin password or Apps Manager URL below.
  5. From your Azure Portal, navigate to Resources and find the Public IP address resource named YOUR-JUMPBOX-NAME–cf and select it. App manager one

  6. Record the IP address. This is the IP address of Apps Manager. App manager two

  7. Navigate to the URL, and log in to Apps Manager with the username admin and the password obtained above.

  8. From Apps Manager, verify that your services are running. Console

Delete a Deployment of PCF on Microsoft Azure

To remove the deployment, navigate to your Azure Portal and delete the Resource Group associated with the deployment.


Deployment fails

Symptom: PCF on Azure fails to deploy.

Solution: If the deployment fails after the jumpbox VM has been created, capture the PCF deployment log as described in the verification procedure above and send it to with any additional information about the installation that you can provide.

Cannot Find the Admin Password or Apps Manager URL

Symptom: The URL in the PROGRESSMONITORURL textbox no longer takes you to the tmux session to locate the Apps Manager URL and admin password.

Solution: Even though the tmux session has been lost, you can retrieve the Apps Manager URL and admin password by searching for admin in the manifests/elastic-runtime.yml file on the jumpbox VM:

$ cat manifests/elastic-runtime.yml | grep admin
  admin_user: admin
  admin_password: "example_password"

Create a pull request or raise an issue on the source for this page in GitHub