{ "info": { "author": "Ryan Belgrave", "author_email": "rmb1993@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: System :: Systems Administration" ], "description": "vmw-cloudinit-metadata\n######################\n\nLibrary and Tool to run a Cloud-Init NoCloud compatible metadata server for VMWare VCenter\n\nVSPC\n****\n\nThe application uses serial ports on virtual machines configured to use the network,\nwith the direction configured to client, the port uri configured to any string and the vSPC\nURI configured to :code:`telnet://$ADDRESS:13370`\n\nUsage\n=====\n\n.. code:: \n\n vmw-cloudinit-metadata run --uri my-metadata --driver vmw_cloudinit_metadata.drivers.file:FileDriver --driver-opts '{\"directory\": \"/some/directory/here\"}'\n\nDrivers\n*******\n\nThe application can use various different drivers to load cloud-init metadata.\n\nCustom drivers can be made by implementing the :code:`vmw_cloudinit_metadata.drivers.driver:Driver` interface.\n\nFile Driver\n===========\n\nThe file dirver looks in the given path for yaml files with the name of the VM.\n\nOptions\n-------\n\n.. code::\n\n directory - path to yaml definition files\n\n\nExample\n-------\n\n.. code::\n\n my-vm.yaml\n\n ---\n metadata:\n ami-id: my-image\n instance-id: my-instance\n region: us-east1\n availability-zone: us-east1-a\n tags:\n - a\n - b\n - c\n public-keys:\n - ssh....\n hostname: myhostnamehere\n network:\n address: 192.168.1.1\n netmask: 255.255.255.0\n gateway: 192.168.1.254\n search: 'example.com'\n nameservers:\n - 8.8.8.8\n - 8.8.4.4\n userdata: |\n #cloud-config\n growpart:\n mode: auto\n devices: ['/']\n ignore_growroot_disabled: false\n\n\nSerial Communication\n********************\n\nAll serial communication is done using \"packets\". All packets start with the string :code:`!!`\nfollowed the by packet code, then the symbol :code:`#` followed by base64 encoded data.\n The data returned is compatible with `Cloud-Init NoCloud `_\n\nExample\n=======\n\nClient Sends\n\n.. code::\n\n !!REQUEST_METADATA#\n\n\nServer Response\n\n.. code::\n\n !!RESPONSE_METADATA#ew0KICAgICJhbWktaWQiOiAibXktaW1hZ2UiLA0KICAgICJpbnN0YW5jZS1pZCI6ICJteS1pbnN0YW5jZSIsDQogICAgInJlZ2lvbiI6ICJteS1yZWdpb24iLA0KICAgICJhdmFpbGFiaWxpdHktem9uZSI6ICJteS16b25lIiwNCiAgICAidGFncyI6IFsiYSIsICJiIiwgImMiXSwNCiAgICAicHVibGljLWtleXMiOiBbDQogICAgICAgICJwdWJsaWMtc3NoLWtleS1oZXJlIg0KICAgIF0sDQogICAgImhvc3RuYW1lIjogIm15LWhvc3RuYW1lIiwNCiAgICAibG9jYWwtaG9zdG5hbWUiOiAibXktaG9zdG5hbWUiDQp9\n\n\nAfter decoding the base64 data the response contains the following:\n\n.. code::\n\n {\n \"ami-id\": \"my-image\",\n \"instance-id\": \"my-instance\",\n \"region\": \"my-region\",\n \"availability-zone\": \"my-zone\",\n \"tags\": [\"a\", \"b\", \"c\"],\n \"public-keys\": [\n \"public-ssh-key-here\"\n ],\n \"hostname\": \"my-hostname\",\n \"local-hostname\": \"my-hostname\"\n }\n\nPackets\n=======\n\n:code:`REQUEST_METADATA`\n------------------\n\nClient requests instance metadata\n\n:code:`REQUEST_NETWORKDATA`\n---------------------\n\nClient requests instance network data\n\n:code:`REQUEST_USERDATA`\n------------------\n\nClient requests instance user data\n\n:code:`RESPONSE_METADATA`\n-------------------\n\nServer responds with instance metadata\n\nExample:\n\n.. code::\n\n {\n \"ami-id\": \"my-image\",\n \"instance-id\": \"my-instance\",\n \"region\": \"my-region\",\n \"availability-zone\": \"my-zone\",\n \"tags\": [\"a\", \"b\", \"c\"],\n \"public-keys\": [\n \"public-ssh-key-here\"\n ],\n \"hostname\": \"my-hostname\",\n \"local-hostname\": \"my-hostname\"\n }\n\n\n:code:`RESPONSE_NETWORKDATA`\n----------------------\n\nServer responds with instance networkdata\n\nExample:\n\n.. code::\n\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: static\n address: 192.168.1.1\n netmask: 255.255.255.0\n gateway: 192.168.1.254\n dns_search:\n - example.com\n dns_nameservers:\n - 8.8.8.8\n - 8.8.4.4\n\n\n\n:code:`RESPONSE_USERDATA`\n-------------------\n\nServer responds with instance userdata\n\nExample:\n\n.. code::\n\n #cloud-config\n growpart:\n mode: auto\n devices: ['/']\n ignore_growroot_disabled: false\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rmb938/vmw-cloudinit-metadata/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "vmw-cloudinit-metadata", "package_url": "https://pypi.org/project/vmw-cloudinit-metadata/", "platform": "", "project_url": "https://pypi.org/project/vmw-cloudinit-metadata/", "project_urls": { "Homepage": "https://github.com/rmb938/vmw-cloudinit-metadata/" }, "release_url": "https://pypi.org/project/vmw-cloudinit-metadata/0.0.8/", "requires_dist": [ "PyYAML (==3.12)", "clify (==0.0.3)", "pbr (==4.0.3)", "schematics (==2.0.1)", "cryptography (==2.1.4)" ], "requires_python": "", "summary": "Library and Tool to run a Cloud-Init NoCloud compatible metadata server for VMWare VCenter", "version": "0.0.8" }, "last_serial": 3969533, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "72fbd18ba21914a644ff6160d37a91a2", "sha256": "31fc291bd68559130f755d35cbe4252877c35bed5ab8bbb1bb7bf164ae80af7b" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "72fbd18ba21914a644ff6160d37a91a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14341, "upload_time": "2018-06-03T16:08:18", "url": "https://files.pythonhosted.org/packages/28/eb/d93001c4f721643f4bebb098e145b44429b6111df6c2194715a7a1df3da6/vmw_cloudinit_metadata-0.0.3-py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "9d3ecfe8e462713ab9b48f448a4fd217", "sha256": "785aa6c30348732e85508e81ca00cd3de80d33ae05fc2fbc3b73a75b4673bf9e" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9d3ecfe8e462713ab9b48f448a4fd217", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14341, "upload_time": "2018-06-03T16:14:05", "url": "https://files.pythonhosted.org/packages/f1/b5/20b3fe2fcbbb2eeb143ac61e0e9c4952adb1245be856c9aba386e474ecc5/vmw_cloudinit_metadata-0.0.4-py3-none-any.whl" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "ad1acaccc51e992c0bbb26031812c155", "sha256": "2b804b86ebb46ade8c684b10ff3ede89064cc316e095ee5ef0aa892982d446a2" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ad1acaccc51e992c0bbb26031812c155", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14340, "upload_time": "2018-06-03T16:25:31", "url": "https://files.pythonhosted.org/packages/dd/33/1621e5a144851a5e5ae165eabdd6edc51f5c671a46c85ea914ae10dc6b71/vmw_cloudinit_metadata-0.0.5-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f0623bbe3cb3e35aa1ac6ab0585a5935", "sha256": "1cabab710fb7858bcf6228f5059d03820f689b063cfb4a07d517a21c54fe674a" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f0623bbe3cb3e35aa1ac6ab0585a5935", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14467, "upload_time": "2018-06-15T21:34:51", "url": "https://files.pythonhosted.org/packages/3d/04/a7f59fb052fa593aa989e574a7ebbf5cfa4e49ef80f9397df43a64f46167/vmw_cloudinit_metadata-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "ef2c406a8e8a01515d46b0711d2844da", "sha256": "c289638f8f0e4fe5a240366b6fd74557c9f2ee46976673c9102aeadbe5eec303" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "ef2c406a8e8a01515d46b0711d2844da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14535, "upload_time": "2018-06-15T21:52:46", "url": "https://files.pythonhosted.org/packages/d8/ea/1e9148eed2361de16a107d1b723dbe80bacf5079eb74940fc2214e68b7c5/vmw_cloudinit_metadata-0.0.7-py3-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "12baa62bdf5cbdc81522038299287fe5", "sha256": "e1cd4a4fec94a0d7a1b6a3db557a446a16ecdddf654969a4ab5517383214c466" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "12baa62bdf5cbdc81522038299287fe5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14548, "upload_time": "2018-06-16T14:51:34", "url": "https://files.pythonhosted.org/packages/bb/5c/be6b8741b5a5da5c8ba28267e7b8902d4bcc2a11182b1e6d5157edc76dcc/vmw_cloudinit_metadata-0.0.8-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "12baa62bdf5cbdc81522038299287fe5", "sha256": "e1cd4a4fec94a0d7a1b6a3db557a446a16ecdddf654969a4ab5517383214c466" }, "downloads": -1, "filename": "vmw_cloudinit_metadata-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "12baa62bdf5cbdc81522038299287fe5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14548, "upload_time": "2018-06-16T14:51:34", "url": "https://files.pythonhosted.org/packages/bb/5c/be6b8741b5a5da5c8ba28267e7b8902d4bcc2a11182b1e6d5157edc76dcc/vmw_cloudinit_metadata-0.0.8-py3-none-any.whl" } ] }