{ "info": { "author": "graboskyc", "author_email": "chris@grabosky.net", "bugtrack_url": null, "classifiers": [], "description": "# Deploy AWS Blueprint \nA basic tool to deploy AWS Instances and MongoDB Atlas Clusters for when using Cloud Formation, Terraform, Habitat, or others is overkill.\n\n# Installation\n## From PyPi\nRun `pip install DeployBlueprint`\n\n## From Source\nDownload all source code here. From the root directory of the git clone, run `pip install --editable .`\n\n# Use\n## Config file\nThe script requires a configuration file in `~/.gskyaws.conf` in the same format as [my MongoDBInit/updateAWSSG.sh script](https://github.com/graboskyc/MongoDBInit/blob/master/updateAWSSG.sh).\n\nThe format should look like:\n```\nsgID=\"sg-YourSGIDfromAWS\"\nkeypair=\"NameOfYourKeypairFileInAWS\"\nname=\"firstname.lastname\"\natlasapikey=\"YourMongoDBAtlasAPIKey\"\natlasusername=\"YourMongoDBAtlasUsernameEmail\"\n```\n\n## Help\n```\ngraboskycMBP:~ graboskyc$ DeployBlueprint --help\nusage: DeployBlueprint [-h] [-b BLUEPRINT] [-s] [-d DAYS] [-k KEYPATH]\n\nCLI Tool to easily deploy a blueprint to aws instances or MongoDB Atlas clusters\n\noptional arguments:\n -h, --help show this help message and exit\n -b BLUEPRINT path to the blueprint\n -s, --sample download a sample blueprint yaml\n -d DAYS how many days should we reserve this for before reaping\n -k KEYPATH ssh private key location, required if using tasks\n```\n\n## Sample\n```\ngraboskycMBP:~ graboskyc$ DeployBlueprint -b sampleblueprint.yaml\n```\n## Blueprint Syntax\nSee the [sampleblueprint.yaml](Samples/sampleblueprint.yaml) for an example. But here is the hierarchy:\n\n| Root | Child | Child | Notes |\n|----|---|-|-|\n| `apiversion: v1` | | | API version to use, use v1 for now | \n| `metadata` | | | Optional metadata about the blueprint |\n| | `blueprint_author` | | (optional) github username |\n| | `blueprint_name` | | (optional) name of blueprint to be used in `blueprint-name` aws tag |\n| | `blueprint_description` | | (optional) more detail about this blueprint, used in `blueprint-desc` aws tag, capped at 255 char |\n| | `blueprit_version` | |(optional) versioning field of blueprint |\n|`resources` | | | begins list of things to dpeloy |\n| | `-name` | | name of deployed vm |\n| | `description` | | used in description tag |\n| | `os` | | `ubuntu`,`rhel`,`win2016dc`, `amazon`, or `amazon2` but you can also provide the AWS ami ID here |\n| | `overrideuser` | | can be specifified to manually specify the user to which run a task. If using a task and an AMI id for `os`, you must provide this |\n| | `size` | | name of AWS sizes |\n| | `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. |\n| | `tasks` | | OPTIONAL and completed in order | \n| | | `-type` | `playbook`, `shell`, `ps`, `local` for ansible or bash/winrm on deployed system, or a local cmd to run on system running `DeployBlueprint` |\n| | | `url` | URL to where the script sits, used for `playbook` and `shell` and `ps` only |\n| | | `cmd` | command to run in local shell. Used by `local` type only |\n| | | `description` | text field to describe what it does |\n| `services` | | | list of atlas clusters to deploy|\n| | `-name` | | name of cluster to be deployed and will strip all non alphanumerics |\n| | `description` | | used for details |\n| | `groupid` | | your group within MongoDB Atlas |\n| | `backup` | | `true` or `false` to enable backup which has upcharge |\n| | `biconnector` | | `true` or `false` to enable BI Connector which has upcharge |\n| | `type` | | `REPLICASET` or `SHARDED` or `GEOSHARDED` but first only implemented |\n| | `version` | | version of MongoDB and should be `3.4` or `3.6` or `4.0` |\n| | `cloud` | | `AWS` or `AZURE` or `GCP` or `TENANT` but only first implemented |\n| | `region` | | Cloud Provider region to deploy to, see [the docs](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/) |\n| | `size` | | name of the size of machines, see [the docs](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/) |\n| | `encrypted` | | `true` or `false` to enable at-rest encryption which has upcharge |\n| | `disksize` | | size of data directory disk in GB, only `16` tested |\n| | `iops` | | amount of IOPS requested, only `100` tested |\n| | `rscount` | | number of nodes in replica set |\n| | `shards` | | number of shards, only `1` tested |\n| | `postinstallorder` | | required if using tasks, numerical order. Lower numbers get done before higher ones. All tasks for services done after all tasks for instances. |\n| | `tasks` | | OPTIONAL and completed in order | \n| | | `-type` | `local` for command to run from local machine running `DeployBlueprint` |\n| | | `cmd` | shell command to run |\n| | | `description` | text field to describe what it does |\n\n## Order of operations\n* All instances are deployed in the order listed. We use launch instance API and check for pass/fail\n* 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\n* All Atlas clusters deployed\n* Wait for all instances to return `running` state and Atlas to return `IDLE`\n* The post configuration plan for Instances is generated as follows:\n * Loop through blueprint and find all resources that have a `task` list\n * Order the resources based on `postinstallorder` in ascending order\n * Tasks for each resource are done in order listed\n * Execute this plan in the order provided\n* The post configuration plan for Atlas is generated as follows:\n * Loop through blueprint and find all services that have a `task` list\n * Order the resources based on `postinstallorder` in ascending order\n * Tasks for each resource are done in order listed\n * Execute this plan in the order provided\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/graboskyc/DeployBlueprint", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "DeployBlueprint", "package_url": "https://pypi.org/project/DeployBlueprint/", "platform": "", "project_url": "https://pypi.org/project/DeployBlueprint/", "project_urls": { "Homepage": "https://github.com/graboskyc/DeployBlueprint" }, "release_url": "https://pypi.org/project/DeployBlueprint/0.8.13/", "requires_dist": [ "paramiko", "scp", "ConfigParser", "boto3", "requests" ], "requires_python": "", "summary": "A basic tool to deploy AWS Instances and MongoDB Atlas Clusters for when using Cloud Formation, Terraform, Habitat, or others is overkill.", "version": "0.8.13" }, "last_serial": 4625963, "releases": { "0.5.3": [ { "comment_text": "", "digests": { "md5": "1fc88eb29615e8258901306ac9f87a07", "sha256": "32d208a03a100250c7f2e5348dd7e81019f48206a6626d31192957ec9de02988" }, "downloads": -1, "filename": "DeployBlueprint-0.5.3-py2-none-any.whl", "has_sig": false, "md5_digest": "1fc88eb29615e8258901306ac9f87a07", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11760, "upload_time": "2018-09-19T16:37:48", "url": "https://files.pythonhosted.org/packages/b9/01/30a925ab9aea90c7857bfac31ae2ede4f43ce1bc964abd0c6ddd6d8fb3aa/DeployBlueprint-0.5.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c86b0c296ec2259e81a4544de85e624", "sha256": "5527c2585f41997506f100547316b2f630a3a6c7e34f2cd4d65606993cbe3b88" }, "downloads": -1, "filename": "DeployBlueprint-0.5.3.tar.gz", "has_sig": false, "md5_digest": "4c86b0c296ec2259e81a4544de85e624", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9525, "upload_time": "2018-09-19T16:37:49", "url": "https://files.pythonhosted.org/packages/36/ee/47f7bf4022af7487e50ece338577236e25ad37af102ff9be7e6cb45be6bc/DeployBlueprint-0.5.3.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "55300a5086ae084f1e9f7ea93eb20096", "sha256": "affdbf92445fd693fe5785f4d0679040f78814ec0040c56a6e102c6e77f61b0b" }, "downloads": -1, "filename": "DeployBlueprint-0.5.7-py2-none-any.whl", "has_sig": false, "md5_digest": "55300a5086ae084f1e9f7ea93eb20096", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12573, "upload_time": "2018-09-21T19:17:30", "url": "https://files.pythonhosted.org/packages/9f/62/2205d47050c7fb001eb3059266a86671ff484217ef34f3f136410b2b43fd/DeployBlueprint-0.5.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "670aa65d9d174777f491d67fafe5b72f", "sha256": "d7312e8aeade90fb52f8f75a5554c6cd4f8b639dfbf30cf229d3a6554833a1f2" }, "downloads": -1, "filename": "DeployBlueprint-0.5.7.tar.gz", "has_sig": false, "md5_digest": "670aa65d9d174777f491d67fafe5b72f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10356, "upload_time": "2018-09-21T19:17:32", "url": "https://files.pythonhosted.org/packages/35/e0/c40ef98ad2ff9b086881f189d57fce55fb87120472c6c2b5dfe06410d5e3/DeployBlueprint-0.5.7.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "1572688ac5d14cc4af9680554d85909b", "sha256": "561464c52b012b575df7b0d5ffc10aa38aae1734eb62e6387d200cfc70e19c6f" }, "downloads": -1, "filename": "DeployBlueprint-0.6.4-py2-none-any.whl", "has_sig": false, "md5_digest": "1572688ac5d14cc4af9680554d85909b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16814, "upload_time": "2018-11-28T19:32:33", "url": "https://files.pythonhosted.org/packages/d1/2a/494e1d44150075044ee2350457b8f72398bde2334f80a17c4c861e08235e/DeployBlueprint-0.6.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a65229b5c74ce7811445a5d2dd8cc64", "sha256": "35b9f3406ed5b96c3a4c46a0420d1f7fbdff72633f2e9f5664f48f1434d8319f" }, "downloads": -1, "filename": "DeployBlueprint-0.6.4.tar.gz", "has_sig": false, "md5_digest": "0a65229b5c74ce7811445a5d2dd8cc64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10454, "upload_time": "2018-11-28T19:32:35", "url": "https://files.pythonhosted.org/packages/5a/4e/68230ef9ee8474d09f21e00db5e5b924827f016f530348623c97e73b030d/DeployBlueprint-0.6.4.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "f431210c120c7eb0ad9cc214b1da544f", "sha256": "198acb6147385e2e2e8f28a4ee3b0ff9b4b846ad8f514a5b5f37efbf11966c88" }, "downloads": -1, "filename": "DeployBlueprint-0.6.6-py2-none-any.whl", "has_sig": false, "md5_digest": "f431210c120c7eb0ad9cc214b1da544f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16927, "upload_time": "2018-12-12T01:32:39", "url": "https://files.pythonhosted.org/packages/0a/53/d302792d974f99ccd229e10245ae601cd7ca262bda4479410c931cf1a244/DeployBlueprint-0.6.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e3def92d5b9b0335acac56bdaf191bc", "sha256": "0ed5c3c4440502e1a3bdae9b99019baca11069546df8302aa0cbb76e877e3306" }, "downloads": -1, "filename": "DeployBlueprint-0.6.6.tar.gz", "has_sig": false, "md5_digest": "5e3def92d5b9b0335acac56bdaf191bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10568, "upload_time": "2018-12-12T01:32:40", "url": "https://files.pythonhosted.org/packages/1e/98/018ade4f7b96d103903e378d6cda7412e185abe18eed700eb7322480ca85/DeployBlueprint-0.6.6.tar.gz" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "46722ede250015584cab723855c8a52f", "sha256": "ffbaed3f84770fb8893514443a6c19ce9fb3c9f58555b1b8ae9a5a7aa48056f4" }, "downloads": -1, "filename": "DeployBlueprint-0.7.5-py2-none-any.whl", "has_sig": false, "md5_digest": "46722ede250015584cab723855c8a52f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17296, "upload_time": "2018-12-19T15:11:59", "url": "https://files.pythonhosted.org/packages/50/62/6d2d5136bb58f1a37ace9b1b115f2bf463f7236459cf2aee4b885c719a63/DeployBlueprint-0.7.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f8dd1e3f6d71f6945ec3063b4c7eb88", "sha256": "119b2ab685f4977c520f589b7306bbff3a513267fa3e875d90cde68ee1692db1" }, "downloads": -1, "filename": "DeployBlueprint-0.7.5.tar.gz", "has_sig": false, "md5_digest": "6f8dd1e3f6d71f6945ec3063b4c7eb88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10894, "upload_time": "2018-12-19T15:12:01", "url": "https://files.pythonhosted.org/packages/89/fd/85e129aadc5c0c17139d91f8c37e7f4d47704112cc0e684d865f14a4771b/DeployBlueprint-0.7.5.tar.gz" } ], "0.8.13": [ { "comment_text": "", "digests": { "md5": "11f54af48d091439b497f34bdf7f8695", "sha256": "e497dcb6dbcacc8d6571f972e92e70434ea921b437be5f2386f226f6049ebd3b" }, "downloads": -1, "filename": "DeployBlueprint-0.8.13-py2-none-any.whl", "has_sig": false, "md5_digest": "11f54af48d091439b497f34bdf7f8695", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17902, "upload_time": "2018-12-21T18:03:36", "url": "https://files.pythonhosted.org/packages/85/1a/d0d897f921269ce0c3bb2ff3d7b9a3535bac123a1ae3da180575c065298a/DeployBlueprint-0.8.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a94f16d11394d4590ddbed43317efa24", "sha256": "9038d76f5653e90adcdcd0df9a5efde349635c489536eb0f014abc4f0979c41f" }, "downloads": -1, "filename": "DeployBlueprint-0.8.13.tar.gz", "has_sig": false, "md5_digest": "a94f16d11394d4590ddbed43317efa24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11517, "upload_time": "2018-12-21T18:03:37", "url": "https://files.pythonhosted.org/packages/f0/30/84725534c1155f700e57fa3f8a9b7a6e79c0c0ad0bec99573564b13f98f4/DeployBlueprint-0.8.13.tar.gz" } ], "0.8.7": [ { "comment_text": "", "digests": { "md5": "89ae7caeb67d049653a078e6c299a083", "sha256": "34c08b14d87d5c77ab85ad1efb11d295dc0996830f98c80929871398ef09c6c1" }, "downloads": -1, "filename": "DeployBlueprint-0.8.7-py2-none-any.whl", "has_sig": false, "md5_digest": "89ae7caeb67d049653a078e6c299a083", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17610, "upload_time": "2018-12-19T15:44:11", "url": "https://files.pythonhosted.org/packages/8c/08/3c973acc16dc1af88f599f3bd50e987dadb3dab076ff2dba30ed825eb50a/DeployBlueprint-0.8.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3aa16a0409c5cc5b2f07076727a80e5e", "sha256": "3bede3a355ece1ef2d2634be48d8586bff51c550050f8c905a357d75ef1bf77a" }, "downloads": -1, "filename": "DeployBlueprint-0.8.7.tar.gz", "has_sig": false, "md5_digest": "3aa16a0409c5cc5b2f07076727a80e5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11256, "upload_time": "2018-12-19T15:44:12", "url": "https://files.pythonhosted.org/packages/d2/bb/54e22a5ee636cdb31aa2d6ffdcc734a77d37ae4d4dc7b43a9e19b482597e/DeployBlueprint-0.8.7.tar.gz" } ], "0.8.9": [ { "comment_text": "", "digests": { "md5": "4a1ca1b8a2bf0205e461b851697d6b89", "sha256": "880bc66e8ab591d802de5cfef50a0b2e1800c09e2cacf314835508f8e58b5593" }, "downloads": -1, "filename": "DeployBlueprint-0.8.9-py2-none-any.whl", "has_sig": false, "md5_digest": "4a1ca1b8a2bf0205e461b851697d6b89", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17685, "upload_time": "2018-12-19T15:52:34", "url": "https://files.pythonhosted.org/packages/ee/54/d08f5c754513e462ebb51b644ee05a3bbb079d38b4819e7b0014e4706e0c/DeployBlueprint-0.8.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9eef925558b06a9cbf92feab0f64c368", "sha256": "6c974962b682c1e97648394f881dc11da3478ba14731f7b20332b404cc40d327" }, "downloads": -1, "filename": "DeployBlueprint-0.8.9.tar.gz", "has_sig": false, "md5_digest": "9eef925558b06a9cbf92feab0f64c368", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11319, "upload_time": "2018-12-19T15:52:35", "url": "https://files.pythonhosted.org/packages/94/9d/d07dfe8f2248d7c9cbb4667aa4df1d1eb87c9f3a953b994decfa52d32502/DeployBlueprint-0.8.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "11f54af48d091439b497f34bdf7f8695", "sha256": "e497dcb6dbcacc8d6571f972e92e70434ea921b437be5f2386f226f6049ebd3b" }, "downloads": -1, "filename": "DeployBlueprint-0.8.13-py2-none-any.whl", "has_sig": false, "md5_digest": "11f54af48d091439b497f34bdf7f8695", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17902, "upload_time": "2018-12-21T18:03:36", "url": "https://files.pythonhosted.org/packages/85/1a/d0d897f921269ce0c3bb2ff3d7b9a3535bac123a1ae3da180575c065298a/DeployBlueprint-0.8.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a94f16d11394d4590ddbed43317efa24", "sha256": "9038d76f5653e90adcdcd0df9a5efde349635c489536eb0f014abc4f0979c41f" }, "downloads": -1, "filename": "DeployBlueprint-0.8.13.tar.gz", "has_sig": false, "md5_digest": "a94f16d11394d4590ddbed43317efa24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11517, "upload_time": "2018-12-21T18:03:37", "url": "https://files.pythonhosted.org/packages/f0/30/84725534c1155f700e57fa3f8a9b7a6e79c0c0ad0bec99573564b13f98f4/DeployBlueprint-0.8.13.tar.gz" } ] }