{ "info": { "author": "SwiftAce Inc.", "author_email": "opensource@swiftace.ai", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# cloudman\n\nCommand line tool for managing single-purpose cloud VMs. Currently works with GCP.\n\n![cloudman-start-demo](https://i.imgur.com/g2DEBgN.gif)\n\nFeatures:\n\n1. Single command to provision cloud-based disk images with Ubuntu, NVIDIA drivers, Anaconda, PyTorch, FastAI and more..\n\n2. Single command to attach a disk image, launch a cloud VM instance with any configuration of CPUs, RAM and GPU, and start Jupyter notebook.\n\n## Installation\n\nInstall the `cloudman` package using `pip`.\n\n```\npip install cloudman\n```\n\n`cloudman` requires the `gcloud` command line tool to be installed. Make sure to complete these steps before moving forward.\n\n1. Install `gcloud` CLI using this link: https://cloud.google.com/sdk/docs/downloads-interactive\n\n2. Make sure the `gcloud` command is added to your PATH.\n\n3. Connect the `gcloud` tool your GCP account by running:\n\n `gcloud init`\n\n4. (Optional) Create a GCP project by running:\n\n `gcloud projects create PROJECT_ID`\n\nReplace PROJECT_ID with a unique name e.g. kitten-puppies-999\nYou can also use an existing project.\n\n5. Activate a project by running:\n\n `gcloud config set project PROJECT_ID`\n\n6. Open the cloud console by running:\n\n `cloudman console`\n\n7. Enable billing to start creating cloud VMs.\n\n## Usage\n\n`cloudman` allows you to crate standalone boot disks which can be flexibly attached to any type of machine & GPU configuration.\n\n### Create a boot disk\n\nRunning the `cloudman create` will create a boot disk of the given size, then install Ubuntu, NVIDIA CUDA libraries, Anaconda, Pytorch and FastAI deep learning libraries. By default, a 50 GB disk is created.\n\nHere are some examples:\n\n```\n# Using default disk size of 50GB\ncloudman create freesound-2019\n```\n\n```\n# Custom disk size\ncloudman create freesound-2019 --disk=100GB\n```\n\nNote that `cloudman` creates a temporary VM instance to install all the required packages, and then deletes the VM, but retains the disk. It uses [this shell script](https://raw.githubusercontent.com/aakashns/cloudman/master/cloudman/setup-scripts/gcp-ubutnu-nvidia410-fastai.sh) for setup.\n\n### Start an instance\n\nYou can launch an instance with the boot disk attached using the `cloudman start` command. You can choose any combination of GPUs and machine types. You can also launch a CPU-only instance, which is the default. Also, you can choose whether you want a preemptible instance (enabled by default, to save cost), or a dedicated instance.\n\nHere are some examples:\n\n```\n# CPU-only, preemptible\ncloudman start jigsaw-ulmfit\n\n# Same as the above command, but explicit\ncloudman start jigsaw-ulmfit --gpu=nogpu --machine=auto --spot\n\n# K80 GPU, dedicated\ncloudman start jigsaw-ulmfit --gpu=k80 --nospot\n\n```\n\nValid GPU types are: `'nogpu', 't4', 'v100', 'p100', 'p4', 'k80'`\nValid machine types can be found here: https://cloud.google.com/compute/docs/machine-types\nIf machine type is set to 'auto', the tool automatically picks a reasonable machine type to match the GPU's RAM & cores. You can see the mapping [here](https://github.com/aakashns/cloudman/blob/master/cloudman/gcp/constants.py).\n\nOnce started, you can use the link to access the Jupyter server. Sometimes it may take a minute or two for the Jupyter server to start.\n\n### SSH into running instance\n\nTo SSH into a running instance use:\n\n```\ncloudman ssh jigsaw-ulmfit\n```\n\n### Stop an instance\n\nUse the `cloudman stop` command to stop a running instance. Example:\n\n```\ncloudman stop jigsaw-ulmfit\n```\n\n### List disks and running instances\n\nTo see the available boot disks and running instances, run\n\n```\ncloudman list\n```\n\n### Delete a boot disk\n\nTo delete a boot disk, run\n\n```\ncloudman delete jigsaw-ulmfit\n```\n\nThis will stop any running instances and delte the boot disk complete. All your data will be lost, so be careful while using this.\n\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/aakashns/cloudman", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "cloudman", "package_url": "https://pypi.org/project/cloudman/", "platform": "", "project_url": "https://pypi.org/project/cloudman/", "project_urls": { "Homepage": "https://github.com/aakashns/cloudman" }, "release_url": "https://pypi.org/project/cloudman/0.0.10/", "requires_dist": [ "fire", "termcolor" ], "requires_python": "", "summary": "Command line tool for managing single-purpose cloud VMs", "version": "0.0.10" }, "last_serial": 5426766, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9a88c9d53811276e5665b1fa4dcc0248", "sha256": "dcaf05ac200ca6de0ece48fe73209d9af43d4f2d54dcf6452197f911256b845d" }, "downloads": -1, "filename": "cloudman-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "9a88c9d53811276e5665b1fa4dcc0248", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2862, "upload_time": "2019-06-16T18:58:23", "url": "https://files.pythonhosted.org/packages/5e/cd/ad670d315f16df26f8c7e68063e952deec43a54a93517893da637070ef48/cloudman-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "392c9ccf8367b9e9e1193c0e27882c0b", "sha256": "e48cdadad1edb61a5ca8d526b71039040cd939a79d03f02dd10fbe80c0977adf" }, "downloads": -1, "filename": "cloudman-0.0.1.tar.gz", "has_sig": false, "md5_digest": "392c9ccf8367b9e9e1193c0e27882c0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1492, "upload_time": "2019-06-16T18:58:25", "url": "https://files.pythonhosted.org/packages/df/8e/b1c331326b15b9296c2221011e4a14c9166e22b91bcfb36f6397594c9684/cloudman-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "3c86772eee77d5f50c33df3f965ba8fc", "sha256": "b3876bca29e9e945eb5ef1e1f3198ac4b988573affd1d6da2593f468e565022e" }, "downloads": -1, "filename": "cloudman-0.0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "3c86772eee77d5f50c33df3f965ba8fc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13048, "upload_time": "2019-06-20T17:07:04", "url": "https://files.pythonhosted.org/packages/d9/b1/2d283ec5faa27d91f9f31cab54fc884722da23f543ff86e17f2af34aeb89/cloudman-0.0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "579cc07a9c62629458c4ea83f58f424b", "sha256": "b290b44d1f5e23c687661ec5ad8f448950e9f960a8982932c0bfc5bd6925d38e" }, "downloads": -1, "filename": "cloudman-0.0.10.tar.gz", "has_sig": false, "md5_digest": "579cc07a9c62629458c4ea83f58f424b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10202, "upload_time": "2019-06-20T17:07:06", "url": "https://files.pythonhosted.org/packages/10/54/9308683c72e528406e37c63f230a1852512909f46e0c64f93682234a15a9/cloudman-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "71dd57e7cdc7450dfad4fd624e82bda1", "sha256": "927f0457f9bc84d03914a683e97836c239d1eb7c36c694d2cb4b0cde8f0a5823" }, "downloads": -1, "filename": "cloudman-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "71dd57e7cdc7450dfad4fd624e82bda1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5449, "upload_time": "2019-06-16T21:25:53", "url": "https://files.pythonhosted.org/packages/cd/ed/8fbbda3390dcf98b3a1f663bae974be667b5ad73f78e33c4f70bd893ff14/cloudman-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f392ca7354ca4f968e64e40fe0170135", "sha256": "7d2b4f98b3477499d7687b7da45e9a4550e5a175c90b53c2fa1f38d64cd61404" }, "downloads": -1, "filename": "cloudman-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f392ca7354ca4f968e64e40fe0170135", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3359, "upload_time": "2019-06-16T21:25:55", "url": "https://files.pythonhosted.org/packages/78/be/f7ad2da0e4f0c7cfb9edd1e71aff4565b9e293fc72d51d2dc1598ef33774/cloudman-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "6fd3dadb7864a0bf13b0be654d31f984", "sha256": "0e6ad73feb15f47f033ee5188b36b45f9813b4b92174ebe19b015bc335ee5631" }, "downloads": -1, "filename": "cloudman-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "6fd3dadb7864a0bf13b0be654d31f984", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11256, "upload_time": "2019-06-20T05:29:20", "url": "https://files.pythonhosted.org/packages/09/98/43966f4eb8c624bf0c4b2b470b99e6c108062a47b7d677a833736ca23fb8/cloudman-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc71ad8eee4f3863bbfc75deba6fe6b1", "sha256": "678647512bf649b7312272a8ef5f6f04303d90920bb32b4377e86db5de6888e3" }, "downloads": -1, "filename": "cloudman-0.0.3.tar.gz", "has_sig": false, "md5_digest": "dc71ad8eee4f3863bbfc75deba6fe6b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7221, "upload_time": "2019-06-20T05:29:22", "url": "https://files.pythonhosted.org/packages/f5/5d/334100361072f212c941a1078ec70a139986b4766736bdb3f292f226dfd4/cloudman-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "01a95cd91d14df47183ac76196349047", "sha256": "6d3933920c786183ea0394b87ae8992a3f3b55430df49f6943e6475fe2c08fc7" }, "downloads": -1, "filename": "cloudman-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "01a95cd91d14df47183ac76196349047", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12715, "upload_time": "2019-06-20T06:03:34", "url": "https://files.pythonhosted.org/packages/61/c9/52cf861af958d983f92e21ebd1d331fb5c0ea151b23f4bad36f2df675909/cloudman-0.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9beeb22227fe58b1acaf75c6ba928bcf", "sha256": "d3d4071f019642b01b1b98a8bcc6d7d339eb6e56b86aee52d2a330168c8d961c" }, "downloads": -1, "filename": "cloudman-0.0.4.tar.gz", "has_sig": false, "md5_digest": "9beeb22227fe58b1acaf75c6ba928bcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9793, "upload_time": "2019-06-20T06:03:36", "url": "https://files.pythonhosted.org/packages/9f/48/151cbfdd26b5e85c03b406842c138de9d531b5af3556611356fc3b39d6fa/cloudman-0.0.4.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "1f2683dbf13f45c568b35a7359770edc", "sha256": "0e6629f04ad0182879bc0a381950637dcc3db1922fce04fad50de9f9f63902ed" }, "downloads": -1, "filename": "cloudman-0.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "1f2683dbf13f45c568b35a7359770edc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12810, "upload_time": "2019-06-20T07:13:36", "url": "https://files.pythonhosted.org/packages/4e/4e/1e5b0e913277ef76d520b06481992b1b43b608e882a57250191415b33abb/cloudman-0.0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e2d9883661c829b32a1c90f7445cfc2", "sha256": "8084f84e4a3ba9fba999776aee3452f3780300cafe90911ddd3ec6820835751b" }, "downloads": -1, "filename": "cloudman-0.0.6.tar.gz", "has_sig": false, "md5_digest": "6e2d9883661c829b32a1c90f7445cfc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9982, "upload_time": "2019-06-20T07:13:37", "url": "https://files.pythonhosted.org/packages/75/3d/796774dfa41190cdc809b4aa97c2a7f0de414624c384c8138890105abd80/cloudman-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "90e9c3d8294a13d58f9db4e144402fd3", "sha256": "8cb34290e78ecdb14e99d5aa4c1a981068283f49e36c3210e3695847243b519b" }, "downloads": -1, "filename": "cloudman-0.0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "90e9c3d8294a13d58f9db4e144402fd3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12870, "upload_time": "2019-06-20T08:08:32", "url": "https://files.pythonhosted.org/packages/53/a7/5f4353c59cec9e0dc845623b97900dcfa19e1b23fef845a3cb357f7929ea/cloudman-0.0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68de11090e2c86a84638540d8a22d4af", "sha256": "102baba72e01030f243065e5682956ffba26612bc5fa1c11abf6a023f90b14b0" }, "downloads": -1, "filename": "cloudman-0.0.7.tar.gz", "has_sig": false, "md5_digest": "68de11090e2c86a84638540d8a22d4af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10019, "upload_time": "2019-06-20T08:08:34", "url": "https://files.pythonhosted.org/packages/24/37/c421e8342d5c9e450d2d1f0e20f398d43a9dec630319fb32ff82330f39fc/cloudman-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "fa20256617e80b52085a1d14f0e5dece", "sha256": "574bd2649b0a04fdacd57e2c134d34e042d349caabc1a312ce97916e4a40377d" }, "downloads": -1, "filename": "cloudman-0.0.8-py2-none-any.whl", "has_sig": false, "md5_digest": "fa20256617e80b52085a1d14f0e5dece", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12892, "upload_time": "2019-06-20T08:12:26", "url": "https://files.pythonhosted.org/packages/4a/a8/f6ef5ff823f27af8000e08c994dd01bb26eb577e7e8d4973d44037683d89/cloudman-0.0.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "962dee0f60da8e2fdad430dacbd4e986", "sha256": "367cd283f93ca55f4c706d68b15a6aa3d71a80617cb176b9677976e8abae8263" }, "downloads": -1, "filename": "cloudman-0.0.8.tar.gz", "has_sig": false, "md5_digest": "962dee0f60da8e2fdad430dacbd4e986", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10072, "upload_time": "2019-06-20T08:12:28", "url": "https://files.pythonhosted.org/packages/b3/72/903a970ca7704e283c35310c274e3c83993174309da033d4091edd4fa819/cloudman-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "c271349cd965fc56dd42892277c6c7b1", "sha256": "94510ea1bf2fe7136de657ec1c374a28115609b1ecdeee0e81af946bef1e4771" }, "downloads": -1, "filename": "cloudman-0.0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "c271349cd965fc56dd42892277c6c7b1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12992, "upload_time": "2019-06-20T12:04:14", "url": "https://files.pythonhosted.org/packages/7e/ce/a83658a05617122c722805d573c42c78d2685328ae69a799ab992a9c72f2/cloudman-0.0.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6d7841b8182532bd382f7ccbf8cb464", "sha256": "874669412a523998c206d3ea5552ccde54a1fe8742a4efd2a197ae1f0181ff69" }, "downloads": -1, "filename": "cloudman-0.0.9.tar.gz", "has_sig": false, "md5_digest": "a6d7841b8182532bd382f7ccbf8cb464", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10178, "upload_time": "2019-06-20T12:04:16", "url": "https://files.pythonhosted.org/packages/95/ea/2bf39dcad92f382ca40f9b3aa1229386994efe8eaf8a91fc1c28c2438310/cloudman-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c86772eee77d5f50c33df3f965ba8fc", "sha256": "b3876bca29e9e945eb5ef1e1f3198ac4b988573affd1d6da2593f468e565022e" }, "downloads": -1, "filename": "cloudman-0.0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "3c86772eee77d5f50c33df3f965ba8fc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13048, "upload_time": "2019-06-20T17:07:04", "url": "https://files.pythonhosted.org/packages/d9/b1/2d283ec5faa27d91f9f31cab54fc884722da23f543ff86e17f2af34aeb89/cloudman-0.0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "579cc07a9c62629458c4ea83f58f424b", "sha256": "b290b44d1f5e23c687661ec5ad8f448950e9f960a8982932c0bfc5bd6925d38e" }, "downloads": -1, "filename": "cloudman-0.0.10.tar.gz", "has_sig": false, "md5_digest": "579cc07a9c62629458c4ea83f58f424b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10202, "upload_time": "2019-06-20T17:07:06", "url": "https://files.pythonhosted.org/packages/10/54/9308683c72e528406e37c63f230a1852512909f46e0c64f93682234a15a9/cloudman-0.0.10.tar.gz" } ] }