Skip to content
This repository has been archived by the owner on Jan 19, 2022. It is now read-only.

Deploy a BOSH release on an RackHD node

meganmurawski edited this page Jul 6, 2017 · 10 revisions

Prerequisites

First, follow the instructions for making a RackHD CPI release.

Then, follow the instructions for deploying a BOSH Director.

Deploy to a physical environment

Download release tarball

From the BOSH website, download a BOSH release tarball and a stemcell tarball that are compatible with your environment. (We're using redis as our release and the OpenStack KVM stemcell.)

Generate a public/private key pair

To access the machines that BOSH provisions for you via ssh, you will need to generate a valid public/private key pair.

Generate a key pair using ssh-keygen.

$ ssh-keygen -f director-ssh-key After prompting you for a passphrase, the command creates a public key, director-ssh-key.pub, and a matching private key, director-ssh-key, in your current directory. Later, if you want to log into provisioned machines on your network, you can specify the key explicitly with ssh -i /path/to/director-ssh-key ..., or you can configure a tool like ssh-agent to manage your keys for you.

Create manifest

In your project's root directory, create a new file called redis.yml and fill in your config:

name: redis
director_uuid: ${director uuid}

releases:
  - name: redis
    version: latest

compilation:
  workers: 1
  network: default
  reuse_compilation_vms: true
  cloud_properties:
    public_key: ${public key}

update:
  canaries: 1
  canary_watch_time: 3000-90000
  update_watch_time: 3000-90000
  max_in_flight: 1

networks:
- name: default
  type: manual
  subnets:
  - range: ${ip range}
    reserved:
      - ${director ip}
    static: [${machine ip}]
    gateway: ${gateway ip}

resource_pools:
  - name: common
    network: default
    size: 1
    stemcell:
      name: bosh-openstack-kvm-ubuntu-trusty-go_agent-raw
      version: 3126
    cloud_properties:
      public_key: ${public key}
jobs:
  - name: redis
    instances: 1
    resource_pool: common
    networks:
      - name: default
        type: manual
        static_ips: [${machine-ip}]
    templates:
    - {name: redis, release: redis}
    properties:
      redis:
        password: ${REDIS_PASSWORD}
        port: 6379

Upload the stemcell

$ bosh upload stemcell ~/Downloads/bosh-stemcell-3126-ubuntu-trusty-go_agent-raw.tgz

Upload the release

$ bosh upload release ~/Downloads/redis-bosh-release.tgz

Add the deployment manifest

$ bosh deployment manifests/redis.yml

Deploy from manifest

Use bosh to deploy the node to a physical environment.

$ bosh deploy