{ "info": { "author": "Florian Schulze", "author_email": "florian.schulze@gmx.net", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: System Administrators", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 2 :: Only", "Topic :: System :: Installation/Setup", "Topic :: System :: Systems Administration" ], "description": "Overview\n========\n\nThe ploy_ec2 plugin provides integration of `Amazon EC2`_ with `ploy`_.\n\n.. _Amazon EC2: http://aws.amazon.com/ec2/\n.. _ploy: https://github.com/ployground/\n\n\nInstallation\n============\n\nploy_ec2 is best installed with easy_install, pip or with zc.recipe.egg in a buildout.\n\n\nMasters\n=======\n\nTo use ploy_ec2 you need an Amazon account and `AWS keys `_.\n\nOnce you got your keys, you should put them in a secure location and reference them in your ``ploy.conf``.\nAdditionally you need to set the region of the master::\n\n [ec2-master:ec2eu]\n access-key-id = ~/.aws/ec2.id\n secret-access-key = ~/.aws/ec2.key\n region = eu-west-1\n\nYou can also set the ``AWS_ACCESS_KEY_ID`` and ``AWS_SECRET_ACCESS_KEY`` environment variables instead.\n\nYou need to define a master for each `region `_ you want to use.\n\n\nInstances\n=========\n\nEach instance has the following mandatory settings:\n\n``image``\n The `Amazon Machine Image (AMI) `_ that this instance will start up with.\n\n``keypair``\n The name of the `SSH keypair `_ to use.\n\n``placement``\n The `availability zone `_ in which to launch the instances.\n\n``securitygroups``\n The name of the `Securitygroups`_ this instance should be assigned to.\n\nThe following settings are optional:\n\n``instance_type``\n\n``ip``\n\n``startup_script``\n Path to a script which will be run right after creation and first start of the instance.\n This uses the `User Data `_ feature and needs to be supported by the AMI.\n\n``volumes``\n\n``snapshots``\n\n``device_map``\n\n``delete-volumes-on-terminate``\n\n\nSecuritygroups\n==============\n\n``description``\n\n``connections``\n ::\n\n [ec2-securitygroup:app-server]\n description = The production server\n connections =\n tcp 22 22 0.0.0.0/0\n tcp 80 80 0.0.0.0/0\n\n\nVolumes\n=======\n\nYou can define volumes via ``ec2-volume`` sections.\nThe id of the section must not start with ``vol-``.\nYou can declare the ``size`` as a number of GB.\n\nIf the volume doesn't exist, it is automatically created.\n\n::\n\n [ec2-volume:a-volume-name]\n size = 100\n\n [ec2-instance:foo]\n ...\n volumes = a-volume-name /dev/sdf\n\n\nMacro expansion\n===============\n\nFor instances the ``ip`` and ``volumes`` options aren't copied when expanding macros.\n\n\nFingerprint verification\n========================\n\nAutomatic ssh fingerprint verification works by checking whether the fingerprint is in the console output of the instance.\n\nAfter reboot or stop/start of an instance, the console output is refreshed.\nThe problem with that is, that the fingerprint isn't included in the console anymore by default.\nTo fix that you need to log the fingerprint on reboot somehow.\nOne way to do that with Ubuntu is to add a script at ``/var/lib/cloud/scripts/per-boot/ssh-keys`` with this content:\n\n.. code-block:: sh\n\n #!/bin/sh\n /usr/bin/ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub\n\nMake sure that script is executable.\n\n\nChangelog\n=========\n\n1.2.0 - 2015-09-03\n------------------\n\n* Check status of volume to give helpful error message if it's still attached.\n [fschulze]\n\n* Allow volume definition via ``ec2-volume`` sections.\n [fschulze]\n\n* Fix support of console output for the ``ploy debug -c`` command.\n [fschulze]\n\n* Reuse init_ssh_key from ploy.plain to get way more options and error checking.\n [fschulze]\n\n\n1.1.1 - 2015-01-22\n------------------\n\n* Only set device_map if it's in the config, the previous ``None`` default\n didn't always work.\n [fschulze]\n\n* Fixed console output availability test for the status command.\n [fschulze]\n\n* Better error message if fingerprint isn't in console output.\n [fschulze]\n\n* There can be multiple instances for the same name if they were quickly started\n and stopped. Handle that case when requesting status of master.\n [fschulze]\n\n\n1.1.0 - 2014-10-27\n------------------\n\n* Print status of all ec2 instances when requesting status of master.\n [fschulze]\n\n\n1.0.0 - 2014-07-19\n------------------\n\n* Added documentation.\n [fschulze]\n\n\n1.0b4 - 2014-07-15\n------------------\n\n* Fix confusion between instance from ploy and ec2 instance.\n [fschulze]\n\n\n1.0b3 - 2014-07-08\n------------------\n\n* Moved ``snapshots`` list command here after ploy enabled it.\n [fschulze]\n\n* Renamed mr.awsome to ploy and mr.awsome.ec2 to ploy_ec2.\n [fschulze]\n\n\n1.0b2 - 2014-05-15\n------------------\n\n* Renamed ``conn`` to ``ec2_conn`` to allow reuse of ``conn`` from BaseInstance.\n [fschulze]\n\n* Moved setuptools-git from setup.py to .travis.yml, it's only needed for\n releases and testing.\n [fschulze]\n\n\n1.0b1 - 2014-03-24\n------------------\n\n* Initial release\n [fschulze]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/ployground/ploy_ec2", "keywords": null, "license": "BSD 3-Clause License", "maintainer": null, "maintainer_email": null, "name": "ploy_ec2", "package_url": "https://pypi.org/project/ploy_ec2/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ploy_ec2/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/ployground/ploy_ec2" }, "release_url": "https://pypi.org/project/ploy_ec2/1.2.0/", "requires_dist": null, "requires_python": null, "summary": "Plugin for ploy to provision Amazon EC2 instances.", "version": "1.2.0" }, "last_serial": 3559573, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1185699c8376c3023870f9d0f70bf2fd", "sha256": "08b2b8ed4f38d416d7c01538335f3abb4495d1203eef37322da15f5152631a26" }, "downloads": -1, "filename": "ploy_ec2-1.0.0.zip", "has_sig": false, "md5_digest": "1185699c8376c3023870f9d0f70bf2fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16707, "upload_time": "2014-07-19T19:24:50", "url": "https://files.pythonhosted.org/packages/da/eb/751b342257247544cbfcc598c84fe57fd11e0434fe77724000b0638abc56/ploy_ec2-1.0.0.zip" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "2457a94997cc02f05104a827b7ad6492", "sha256": "e827eaa9cc60cb14151d0534be645a27f3f204eb7828cbb1979c0eafd8de0aec" }, "downloads": -1, "filename": "ploy_ec2-1.0b3.zip", "has_sig": false, "md5_digest": "2457a94997cc02f05104a827b7ad6492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13602, "upload_time": "2014-07-08T09:29:45", "url": "https://files.pythonhosted.org/packages/44/20/45a6640e1fbed896519465a9b386a4bdf755a5e074644ea6555abf54a0f6/ploy_ec2-1.0b3.zip" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "8622fd5135309cb64d44fb931c2f2d64", "sha256": "07c09a32718a35ff875cfea91d34b64208e056dfdcf6045f7ba3a2bfc19ababb" }, "downloads": -1, "filename": "ploy_ec2-1.0b4.zip", "has_sig": false, "md5_digest": "8622fd5135309cb64d44fb931c2f2d64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13724, "upload_time": "2014-07-15T13:16:01", "url": "https://files.pythonhosted.org/packages/18/75/576db53453b2e2b91be445bd088c97a2d31949478adf56873652249003a7/ploy_ec2-1.0b4.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "bc4698675276756f80437ff26f87082b", "sha256": "3ae31c68a34738eb9643fd77a935b263dfbf9dabfd677a3a79e8cff4bafbcdfc" }, "downloads": -1, "filename": "ploy_ec2-1.1.0.zip", "has_sig": false, "md5_digest": "bc4698675276756f80437ff26f87082b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17564, "upload_time": "2014-10-27T11:10:38", "url": "https://files.pythonhosted.org/packages/c5/33/c788277bca44a8dc9e881ac387756bbfd4d3803841b8a2b8727824754c6f/ploy_ec2-1.1.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "37e8f40ff97fee4a01a831565e436b78", "sha256": "7153c67660b6d9dc9f02cabeac1f3feecdf3982441ba25656e0159c7b8f31aca" }, "downloads": -1, "filename": "ploy_ec2-1.1.1.zip", "has_sig": false, "md5_digest": "37e8f40ff97fee4a01a831565e436b78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19070, "upload_time": "2015-01-22T11:44:48", "url": "https://files.pythonhosted.org/packages/71/d2/09454e0933b00ae278258b90fe202680367efb6c7df5a8824c67a20d7198/ploy_ec2-1.1.1.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "2602c1cf974418702efbf19faac3ac12", "sha256": "de74c860f64742749a69327bd013ade9c7ea08fe764017bb713671dfe06f5662" }, "downloads": -1, "filename": "ploy_ec2-1.2.0.tar.gz", "has_sig": false, "md5_digest": "2602c1cf974418702efbf19faac3ac12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16121, "upload_time": "2015-09-03T06:27:41", "url": "https://files.pythonhosted.org/packages/4e/83/caf9a381ccd58f12e652e171a9dded2eb3fc3a57019cb8022b5f1a29f986/ploy_ec2-1.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "0623e2f7e208091ed3a69f2dfc223437", "sha256": "3f45f05fdc60646c9a3b8676d6005d14e8cbd676049a4b00314121f334b03410" }, "downloads": -1, "filename": "ploy_ec2-1.2.0.zip", "has_sig": false, "md5_digest": "0623e2f7e208091ed3a69f2dfc223437", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21005, "upload_time": "2015-09-03T06:27:38", "url": "https://files.pythonhosted.org/packages/ff/29/2f068a98dc4b90c5ac834364f8f3e8b0a126c5c4636449c1fdcf75f9de19/ploy_ec2-1.2.0.zip" } ], "2.0.0b1": [ { "comment_text": "", "digests": { "md5": "f105fc85e65f39895659ec5195652f30", "sha256": "2fb2d33cf429c8a5ab6a46d024903aea4f23f988fde085ed07b1ff5d4db9e785" }, "downloads": -1, "filename": "ploy_ec2-2.0.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f105fc85e65f39895659ec5195652f30", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16948, "upload_time": "2018-02-07T08:25:01", "url": "https://files.pythonhosted.org/packages/cb/6b/c3f285e0994e113cdb06acf304cc652bb553ea1292fe1941167d3257f4bc/ploy_ec2-2.0.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5cefd96c6c80cb436372551855d14777", "sha256": "1fef00dda573a60a7398f440a3ecda9ccb2eb81d3acdd2179a19c3d86a6ae404" }, "downloads": -1, "filename": "ploy_ec2-2.0.0b1.tar.gz", "has_sig": false, "md5_digest": "5cefd96c6c80cb436372551855d14777", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16868, "upload_time": "2018-02-07T08:24:59", "url": "https://files.pythonhosted.org/packages/3d/20/e1d843e1e1b3240d70fa11872b9e7fafb1be5f86fbd4cebd8d2a7a2191d2/ploy_ec2-2.0.0b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2602c1cf974418702efbf19faac3ac12", "sha256": "de74c860f64742749a69327bd013ade9c7ea08fe764017bb713671dfe06f5662" }, "downloads": -1, "filename": "ploy_ec2-1.2.0.tar.gz", "has_sig": false, "md5_digest": "2602c1cf974418702efbf19faac3ac12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16121, "upload_time": "2015-09-03T06:27:41", "url": "https://files.pythonhosted.org/packages/4e/83/caf9a381ccd58f12e652e171a9dded2eb3fc3a57019cb8022b5f1a29f986/ploy_ec2-1.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "0623e2f7e208091ed3a69f2dfc223437", "sha256": "3f45f05fdc60646c9a3b8676d6005d14e8cbd676049a4b00314121f334b03410" }, "downloads": -1, "filename": "ploy_ec2-1.2.0.zip", "has_sig": false, "md5_digest": "0623e2f7e208091ed3a69f2dfc223437", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21005, "upload_time": "2015-09-03T06:27:38", "url": "https://files.pythonhosted.org/packages/ff/29/2f068a98dc4b90c5ac834364f8f3e8b0a126c5c4636449c1fdcf75f9de19/ploy_ec2-1.2.0.zip" } ] }