{ "info": { "author": "Lorenzo Villani", "author_email": "lorenzo@villani.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License" ], "description": "# vagrant-metadata\n\n\n\n_Creates and updates Vagrant box metadata files (metadata.json)_\n\n[![Build Status](https://dev.azure.com/EuRLdC3BDg/vagrant-metadata/_apis/build/status/lvillani.vagrant-metadata?branchName=master)](https://dev.azure.com/EuRLdC3BDg/vagrant-metadata/_build/latest?definitionId=8&branchName=master)\n[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://choosealicense.com/licenses/mit/)\n\n--------------------------------------------------------------------------------\n\nAn utility program which creates and updates Vagrant\n[box metadata files](http://docs.vagrantup.com/v2/boxes/format.html). This program is meant for\nsmall-scale deployment and versioning of Vagrant base boxes to private servers. For large scale\ndeployment it always better to just use [Atlas](https://atlas.hashicorp.com/).\n\n\n## Usage\n\n### Installation\n\nThis program requires Python 2.7 and can be installed via PIP:\n\n pip install vagrant-metadata\n\n\n### Publishing Your First Box\n\nNow, let's suppose you have a base box called `precise64` in two flavors: one for Virtualbox and\nthe other for VMWare. `vagrant-metadata` follows the \"convention over configuration\" principle and\nit expects a certain directory layout to do its magic. Let's start by creating the required\ndirectory structure:\n\n mkdir -p precise64/1.0.0/virtualbox\n mkdir -p precise64/1.0.0/vmware_desktop\n\nAt this point you should have a directory tree like this:\n\n .\n \u2514\u2500\u2500 precise64\n \u2514\u2500\u2500 1.0.0\n \u251c\u2500\u2500 virtualbox\n \u2514\u2500\u2500 vmware_desktop\n\nNow you should copy your boxes to their appropriate directory and end up with something like this:\n\n .\n \u2514\u2500\u2500 precise64\n \u2514\u2500\u2500 1.0.0\n \u251c\u2500\u2500 virtualbox\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 precise64.box\n \u2514\u2500\u2500 vmware_desktop\n \u2514\u2500\u2500 precise64.box\n\nNow let's go into the `precise64` directory:\n\n cd precise64\n\nSince this is the first time we run `vagrant-metadata` we'll have to tell it something about the\nbase box such as its URL, name and description:\n\n vagrant-metadata --name=\"lvillani/precise64\" --description=\"Ubuntu 12.04 64-bit\" \\\n --baseurl=\"http://lorenzo.villani.me/vagrant/precise64\"\n\nAfter a while, when `vagrant-metadata` exits, you will find a fresh `metadata.json` file which\ncontains all the box metadata. At this point you can publish the whole `precise64` directory\nsomewhere.\n\n\n### Updating a Box\n\nUpdating a box is easier than preparing a new one for publication. Let's suppose we want to\npublish version `2.0.0` of the `precise64` box described before: create a new `2.0.0` directory\nwith the same layout as before and copy your boxes there ending up with something like:\n\n .\n \u2514\u2500\u2500 precise64\n \u251c\u2500\u2500 1.0.0\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 virtualbox\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 precise64.box\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 vmware_desktop\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 precise64.box\n \u251c\u2500\u2500 2.0.0\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 virtualbox\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 precise64.box\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 vmware_desktop\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 precise64.box\n \u2514\u2500\u2500 metadata.json\n\nAt this point go to the `precise64` directory and run `vagrant-metadata`:\n\n cd precise64\n vagrant-metadata\n\nNotice that we don't even have to specify the box name, description or base URL.\n\nSync this directory with your remote server and you are done.\n\nIf you don't have all box files downloaded locally, and want to add new version\nto existing metadata.json simply add `--append` (`-a`) option to only add new\nversion box to existing metadata\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/lvillani/vagrant-metadata/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "vagrant-metadata", "package_url": "https://pypi.org/project/vagrant-metadata/", "platform": "", "project_url": "https://pypi.org/project/vagrant-metadata/", "project_urls": { "Homepage": "https://github.com/lvillani/vagrant-metadata/" }, "release_url": "https://pypi.org/project/vagrant-metadata/1.1.2/", "requires_dist": null, "requires_python": "", "summary": "Vagrant metadata.json generator", "version": "1.1.2" }, "last_serial": 5456030, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "46ff5a5f898cabb872e7035a52ed09e9", "sha256": "6a276b16d9d5f1b29782b9f11253e6da3a177fb39bd51654b9a9a456b52fdc64" }, "downloads": -1, "filename": "vagrant-metadata-1.0.1.tar.gz", "has_sig": false, "md5_digest": "46ff5a5f898cabb872e7035a52ed09e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2852, "upload_time": "2014-12-15T21:46:40", "url": "https://files.pythonhosted.org/packages/ca/76/af8d3a420f3afa105b0936e664b21cee4b036bbe7b5e9798a3b5a07863bd/vagrant-metadata-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "48d85179c08d2c123706dc5599e151a7", "sha256": "5a94927ed11a20092a177959950fda673a475baf594c6185e2e505aaca27a2d6" }, "downloads": -1, "filename": "vagrant-metadata-1.0.2.tar.gz", "has_sig": false, "md5_digest": "48d85179c08d2c123706dc5599e151a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2848, "upload_time": "2015-09-30T06:19:06", "url": "https://files.pythonhosted.org/packages/2d/22/25a4ee3d809d47e3ffa5f989cb28ba1546481402970b5536e581cc4f8c62/vagrant-metadata-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5f099fd51ee6c7c65665b917f24de92c", "sha256": "01ac0cd364c05473e181ef6127922b817dd331041e45d5416c2eb67bc74a43c6" }, "downloads": -1, "filename": "vagrant-metadata-1.1.0.tar.gz", "has_sig": false, "md5_digest": "5f099fd51ee6c7c65665b917f24de92c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2980, "upload_time": "2017-04-12T16:27:42", "url": "https://files.pythonhosted.org/packages/fe/c2/f5119f8600c6ef8a1946548b485e16aff86ead0b1189bbe90b35981dfa75/vagrant-metadata-1.1.0.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "aedd45ef4560532a1cc3b40c718ec7d6", "sha256": "6e68ae2f99179a309510b1989c5d725425236e565ccc961ec8aa7a677408c7ab" }, "downloads": -1, "filename": "vagrant_metadata-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "aedd45ef4560532a1cc3b40c718ec7d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6971, "upload_time": "2019-06-27T09:19:06", "url": "https://files.pythonhosted.org/packages/b0/d5/370a2c488fd49e8c9a60f038ea253855ab69e8fbf8596387dd1a5a9b0208/vagrant_metadata-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e08fa1c7f87c5d3f06fb41201eeec2d", "sha256": "e14f90cf813480a460c982bb2ab489b2452b88934f69938f4d4afbd45089fafe" }, "downloads": -1, "filename": "vagrant-metadata-1.1.2.tar.gz", "has_sig": false, "md5_digest": "0e08fa1c7f87c5d3f06fb41201eeec2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5067, "upload_time": "2019-06-27T09:19:08", "url": "https://files.pythonhosted.org/packages/ea/be/2b266b9074a9b2492a4f1e7c9c49fab18d2a66aa84721fe3ad51f104188e/vagrant-metadata-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aedd45ef4560532a1cc3b40c718ec7d6", "sha256": "6e68ae2f99179a309510b1989c5d725425236e565ccc961ec8aa7a677408c7ab" }, "downloads": -1, "filename": "vagrant_metadata-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "aedd45ef4560532a1cc3b40c718ec7d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6971, "upload_time": "2019-06-27T09:19:06", "url": "https://files.pythonhosted.org/packages/b0/d5/370a2c488fd49e8c9a60f038ea253855ab69e8fbf8596387dd1a5a9b0208/vagrant_metadata-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e08fa1c7f87c5d3f06fb41201eeec2d", "sha256": "e14f90cf813480a460c982bb2ab489b2452b88934f69938f4d4afbd45089fafe" }, "downloads": -1, "filename": "vagrant-metadata-1.1.2.tar.gz", "has_sig": false, "md5_digest": "0e08fa1c7f87c5d3f06fb41201eeec2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5067, "upload_time": "2019-06-27T09:19:08", "url": "https://files.pythonhosted.org/packages/ea/be/2b266b9074a9b2492a4f1e7c9c49fab18d2a66aa84721fe3ad51f104188e/vagrant-metadata-1.1.2.tar.gz" } ] }