Giter Club home page Giter Club logo

bosh-gpdb-lessons-learned's Introduction

bosh-gpdb-lessons-learned

This is my attempt to preserve what I learned in my attempt to get the GPDB BOSH release working, including getting the Director running.

Quick Overview

  • It was not easy or intuitive for me
  • Each time I attempted bosh-init deploy ./bosh.yml, it failed with the same error: Post https://mbus:[email protected]:6868/agent: dial tcp 52.204.81.118:6868: i/o timeout
  • It did, eventually, work, and I was able to use this in a demo in Reston, VA on June 9, 2016
  • The above would not have been possible without the helpful assistance of Todd Ritchie, via the #big-data-services Slack channel
  • It is not possible to deploy GPDB using BOSH lite due to its lack of support for Power DNS
  • I am a huge fan of the differentiating power of cloud agnosticism, which BOSH provides

Resources

  1. The IaaS Account & Consolidated Bill Request form got me started with an AWS account. This is accessible via the PA Wiki
  2. The GPDB BOSH release code
  3. The README.md contained within the above archive
  4. Deploying ... with BOSH: this link appears within the README.md
  5. Initializing BOSH environment on AWS, which is linked from item 4
  6. The bosh.yml I used to deploy the BOSH Director
  7. A diff showing the mods I made within the greenplum-0.11.4-artifacts.tgz material
  8. A dump of Bash history from the Ubuntu Trusty node I deployed into EC2 and ran all of this on

These Steps Were Run from a Mac Laptop

  1. Install AWS CLI tools: pip install awscli

  2. Configure this CLI, based on details of your AWS account (just hit ENTER to preserve existing values):

    [airmike:example-tile-docs-resources]$ aws configure
    AWS Access Key ID [****************ZDDA]:
    AWS Secret Access Key [****************ciqx]:
    Default region name [us-east]: us-east-1
    Default output format [json]:
    
  3. Refer to Step 1: Prepare an Environment, here, and perform 1 through 6, but change ExampleKeyPair to bosh throughout, since a later phase will assume the existence of a key pair called bosh.

  4. At this point, you will want to check your security group to ensure you have it configured per the figure below. sg-00cb477b is the security group resulting from the actions carried out above. Security Group Details

  5. I also found it useful to go into the VPC Dashboard and modify the subnet for my VPC so that it would automatically assign a public IP to any VM deployed there (see below). Auto assign public IP

  6. The next part is to launch an Ubuntu Trusty VM. I did this using the Vagrant bosh-lite setup, but the result was I had the AMI ami-ffa94192 running on an m3.xlarge VM, in the subnet created earlier. For now, I will omit the details on this, but can add them later if this is useful. I used the same key pair, bosh, for this VM.

  7. SSH into this VM: ssh -i ./bosh.pem [email protected] (replace 52.91.102.63 with your public IP)

The Following Steps Were Run from the VM, via the SSH Connection

  1. Refer to my Bash history if you need clarification

  2. Install bosh-init:

    curl -O https://s3.amazonaws.com/bosh-init-artifacts/bosh-init-0.0.92-linux-amd64
    chmod +x ./bosh-init-0.0.92-linux-amd64
    ln -s ./bosh-init-0.0.92-linux-amd64 ./bosh-init
  3. Edit the BOSH deployment manifest to suit your environment. Look for <--- Replace

  4. Deploy the BOSH Director: ./bosh-init deploy ./bosh.yml

  5. Install BOSH CLI: sudo gem install bosh_cli

  6. Target this BOSH Director: bosh target 192.168.1.6. Then you are prompted to enter a user name and password, use admin for each of them.

  7. Download, extract GPDB BOSH release: curl https://s3.amazonaws.com/bds-ci/gpdb-bosh-release/greenplum-0.11.4-artifacts.tgz | tar xzvf -

  8. Change into the new directory: cd greenplum-0.11.4/

  9. Refer to the README.md there, starting with step 2 (though, you already performed step 5). You may find it useful to also refer to the diff showing my mods and that Bash history.

Caveats

  • I have tried to avoid duplicating all the steps outlined within references cited here, but it could be that having a single, concise (and correct, though I am not the authority) reference, is simpler than one containing multiple links to external resources.
  • It has been a few days since I walked through all of this, so I need to attempt it again, following these steps, and update this document to correct any inaccuracies or omissions.

bosh-gpdb-lessons-learned's People

Contributors

mgoddard-pivotal avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.