Skip to content

trustedanalytics/cf-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trusted Analytics Platform AWS CloudFormation Templates

Prerequisites

  1. Install virtualenv.
  2. Allocate an Elastic IP address.
  3. Create a key pair.

Parameters

Name Description Default value
cfPassword
cfSystemDomain
cfElasticIP
KeyName
ClouderaMasterInstanceType m3.xlarge
ClouderaWorkerCount 3
ClouderaWorkerInstanceType m3.xlarge
NATInstanceType t2.micro
cfRunnerZ1InstanceType c3.large
cfRunnerZ1Instances 1
TerminationProtectionEnabled true

You can use xip.io as a domain. For example for Elastic IP 75.101.155.119, domain 75.101.155.119.xip.io can be used.

Creating an AWS CloudFormation template

Create and activate virtualenv:

$ virtualenv venv
$ source venv/bin/activate

Install requirements:

$ pip install -r requirements.txt

Configure ansible-pull:

$ export ANSIBLE_PULL_URL=https://<username>:<token>@github.com/<repository>/ansible-playbooks.git
$ export ANSIBLE_PULL_CHECKOUT=master

Create AWS CloudFormation descriptions:

$ ./TAP.py >TAP.template

Creating a stack using AWS CloudFormation Console

Launch Stack

Creating an AWS CloudFormation stack using cfn script

Configure the AWS CLI using environment variables:

$ export AWS_ACCESS_KEY_ID=<access_key>
$ export AWS_SECRET_ACCESS_KEY=<secret_key>

Create and upload template to S3 bucket, then create stack using template.

$ cfn -c TAP.template -b <bucket> -p cfPassword=<password> -p cfSystemDomain=<domain> -p cfElasticIP=<elastic_ip> -p KeyName=<key_name> -r <region> -t -C CAPABILITY_IAM <stack>

CAPABILITY_IAM is required for the IAM resources.