Deploying Cloud Foundry on AWS

Page last updated:

Note: This topic assumes you are using the BOSH CLI v2.

This topic describes the process for deploying Cloud Foundry using BOSH on Amazon Web Services (AWS).

Before deploying Cloud Foundry, you must have already deployed BOSH, targeted your BOSH Director, created a Cloud Foundry manifest, and set it as your deployment by completing the procedures in the Deploying BOSH on AWS and Customizing the Cloud Foundry Deployment Manifest for AWS topics.

Upload a Stemcell

Deploying Cloud Foundry starts with specifying a stemcell, which BOSH installs on each component virtual machine (VM). A stemcell is a versioned image of a minimal OS skeleton, wrapped with IaaS-specific packaging.

Perform following steps to upload a stemcell.

  1. Open https://bosh.io/stemcells in a web browser to view the current list of publicly available BOSH stemcells.

  2. Choose a BOSH stemcell for your IaaS. Click the build number to download the stemcell to your computer. The stemcell downloads as a gzipped tar archive which you should not unzip.

  3. In a terminal window, run bosh upload-stemcell STEMCELL-PATH to upload your stemcell to the BOSH Director, where STEMCELL-PATH is the location of your downloaded stemcell file.

    Example:

    $ bosh upload-stemcell ~/downloads/light-bosh-stemcell-3202-aws-xen-hvm-ubuntu-trusty-go_agent.tgz
    

Build the Cloud Foundry Release

Run bosh create-release to create a Cloud Foundry release.

$ bosh create-release

After some processing, this command prompts you for a development release name. The release names correspond to the files in cf-release/releases.

Upload the Cloud Foundry Release

Run bosh upload-release to upload the generated release to the BOSH Director.

$ bosh upload-release

Deploy Cloud Foundry

Run bosh -d cf deploy cf-deployment.yml to deploy the uploaded Cloud Foundry release, using the manifest you created in the Customizing the Cloud Foundry Deployment Manifest for AWS topic:

$ bosh -d cf deploy cf-deployment.yml

Verify the Deployment

  1. Run bosh -d cf vms. This command provides an overview of the VMs that BOSH manages as part of the Cloud Foundry deployment. The state of every VM should show as running.

  2. Run curl api.YOUR-SYSTEM-DOMAIN/info to test the API endpoint of your Cloud Foundry installation, where YOUR-SYSTEM-DOMAIN is the domain you chose for your Cloud Foundry instance.

    Examples:

    $ curl api.incorrect.example.com/info
    404 Not Found: Requested route ('api.incorrect.example.com') does not exist.

    $ curl api.cloud.example.com { "code": 10000, "description": "Unknown request", "error_code": "CF-NotFound" }

    $ curl api.api.cloud.example.com/info {"name":"vcap","build":"2222","version":2,"description":"Cloud Foundry","authorizationendpoint":"https://login.cloud.example.com","tokenendpoint":"https://uaa.cloud.example.com","allow_debug":true}

    If curl succeeds, it should return specific JSON-formatted information about your deployment. If curl does not succeed, review your networking and make sure your domain has an NS record for your subdomain.

    If you do not know YOUR-SYSTEM-DOMAIN for your Cloud Foundry installation, examine the system_domain property in your deployment manifest.

  3. You should be able to target your Cloud Foundry installation with the Cloud Foundry Command Line Interface (cf CLI) and log in as an administrator. The username is admin and the password is specified in the deployment manifest:

    properties:
      ...
      uaa:
        ...
        scim:
          ...
          users:
          - admin|ADMIN_PASSWORD|...
    

For more information about managing organizations, spaces, users, and applications, refer to the cf CLI topic.

Update Cloud Foundry

  • If you make change to your manifest, run bosh deploy to update your Cloud Foundry deployment with these changes.

  • If you make changes to the cf-release directory, run the following commands to update your Cloud Foundry deployment with these changes:

    $ bosh create-release && bosh upload-release && bosh -d cf deploy cf-deployment.yml
    

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