Skip to main content

A basic tool to deploy AWS Instances and MongoDB Atlas Clusters for when using Cloud Formation, Terraform, Habitat, or others is overkill.

Project description

Deploy AWS Blueprint

A basic tool to deploy AWS Instances and MongoDB Atlas Clusters for when using Cloud Formation, Terraform, Habitat, or others is overkill.

Installation

From PyPi

Run pip install DeployBlueprint

From Source

Download all source code here. From the root directory of the git clone, run pip install --editable .

Use

Config file

The script requires a configuration file in ~/.gskyaws.conf in the same format as my MongoDBInit/updateAWSSG.sh script.

The format should look like:

sgID="sg-YourSGIDfromAWS"
keypair="NameOfYourKeypairFileInAWS"
name="firstname.lastname"
atlasapikey="YourMongoDBAtlasAPIKey"
atlasusername="YourMongoDBAtlasUsernameEmail"

Help

graboskycMBP:~ graboskyc$ DeployBlueprint --help
usage: DeployBlueprint [-h] [-b BLUEPRINT] [-s] [-d DAYS] [-k KEYPATH]

CLI Tool to easily deploy a blueprint to aws instances or MongoDB Atlas clusters

optional arguments:
  -h, --help    show this help message and exit
  -b BLUEPRINT  path to the blueprint
  -s, --sample  download a sample blueprint yaml
  -d DAYS       how many days should we reserve this for before reaping
  -k KEYPATH    ssh private key location, required if using tasks

Sample

graboskycMBP:~ graboskyc$ DeployBlueprint -b sampleblueprint.yaml

Blueprint Syntax

See the sampleblueprint.yaml for an example. But here is the hierarchy:

Root Child Child Notes
apiversion: v1 API version to use, use v1 for now
resources begins list of things to dpeloy
-name name of deployed vm
description used in description tag
os ubuntu,rhel,win2016dc, amazon, or amazon2
size name of AWS sizes
postinstallorder order of operations, only use if tasks are provided. Useful for things where one VM must be configured before others. Lower numbers get done before higher ones.
tasks OPTIONAL and completed in order
-type playbook, shell, ps, local for ansible or bash/winrm on deployed system, or a local cmd to run on system running DeployBlueprint
url URL to where the script sits, used for playbook and shell and ps only
cmd command to run in local shell. Used by local type only
description text field to describe what it does
services list of atlas clusters to deploy
-name name of cluster to be deployed and will strip all non alphanumerics
description used for details
groupid your group within MongoDB Atlas
backup true or false to enable backup which has upcharge
biconnector true or false to enable BI Connector which has upcharge
type REPLICASET or SHARDED or GEOSHARDED but first only implemented
version version of MongoDB and should be 3.4 or 3.6 or 4.0
cloud AWS or AZURE or GCP or TENANT but only first implemented
region Cloud Provider region to deploy to, see the docs
size name of the size of machines, see the docs
encrypted true or false to enable at-rest encryption which has upcharge
disksize size of data directory disk in GB, only 16 tested
iops amount of IOPS requested, only 100 tested
rscount number of nodes in replica set
shards number of shards, only 1 tested
postinstallorder required if using tasks, numerical order. Lower numbers get done before higher ones. All tasks for services done after all tasks for instances.
tasks OPTIONAL and completed in order
-type local for command to run from local machine running DeployBlueprint
cmd shell command to run
description text field to describe what it does

Order of operations

  • All instances are deployed in the order listed. We use launch instance API and check for pass/fail
  • VM names are prepended with a random 8 character string and taged with use-group of this UUID so you know they were deployed together
  • All Atlas clusters deployed
  • Wait for all instances to return running state and Atlas to return IDLE
  • The post configuration plan for Instances is generated as follows:
    • Loop through blueprint and find all resources that have a task list
    • Order the resources based on postinstallorder in ascending order
    • Tasks for each resource are done in order listed
    • Execute this plan in the order provided
  • The post configuration plan for Atlas is generated as follows:
    • Loop through blueprint and find all services that have a task list
    • Order the resources based on postinstallorder in ascending order
    • Tasks for each resource are done in order listed
    • Execute this plan in the order provided

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for DeployBlueprint, version 0.6.4
Filename, size File type Python version Upload date Hashes
Filename, size DeployBlueprint-0.6.4-py2-none-any.whl (16.8 kB) File type Wheel Python version py2 Upload date Hashes View hashes
Filename, size DeployBlueprint-0.6.4.tar.gz (10.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page