# 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.
- 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
- The IaaS Account & Consolidated Bill Request form got me started with an AWS account. This is accessible via the PA Wiki
- The GPDB BOSH release code
- The README.md contained within the above archive
- Deploying ... with BOSH: this link appears within the README.md
- Initializing BOSH environment on AWS, which is linked from item 4
- The bosh.yml I used to deploy the BOSH Director
- A diff showing the mods I made within the greenplum-0.11.4-artifacts.tgz material
- A dump of Bash history from the Ubuntu Trusty node I deployed into EC2 and ran all of this on
-
Install AWS CLI tools:
pip install awscli
-
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]:
-
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.
-
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. -
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).
-
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.
-
SSH into this VM:
ssh -i ./bosh.pem [email protected]
(replace 52.91.102.63 with your public IP)
-
Refer to my Bash history if you need clarification
-
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
-
Edit the BOSH deployment manifest to suit your environment. Look for
<--- Replace
-
Deploy the BOSH Director:
./bosh-init deploy ./bosh.yml
-
Install BOSH CLI:
sudo gem install bosh_cli
-
Target this BOSH Director:
bosh target 192.168.1.6
. Then you are prompted to enter a user name and password, useadmin
for each of them. -
Download, extract GPDB BOSH release:
curl https://s3.amazonaws.com/bds-ci/gpdb-bosh-release/greenplum-0.11.4-artifacts.tgz | tar xzvf -
-
Change into the new directory:
cd greenplum-0.11.4/
-
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.
- 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.