{ "info": { "author": "Josiah Kerley", "author_email": "josiahkerley@gmail.com", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent" ], "description": "Lightweight Management and Provisioning Service\n===============================================\nlMaPS provides a simple way the use schema defined \"instances\" that can\nbe passed to an underlying configuration management system. This will\nprovide the ability to allow desperate systems to use a common namespace\napplication scheme to interact directly with configuration management\nsystems.\n\n## Installation\n```\npip install lmaps\n```\n\n## Overview\n![System Architecture](.readmeimg/sysarch.png)\n\n## Example use cases\n\n### Using lMaPS to reconfigure a host using using ansible\nIn this example, an ansible playbook can be written with the expectation\nthat a vars file containing the proper data structure will have the\ncorrect information to turn up a given service.\n\nLet's assume the following playbook /my-playbook.yaml:\n```\n- name: An example playbook\n hosts: localhost\n connection: local\n vars:\n some_structure:\n - message: This is one\n - message: This is two\n - message: This is three\n tasks:\n - debug:\n msg: '{{ item.message }}'\n with_items: '{{ some_structure }}'\n```\nUsing this, a unit can be defined to call it via the `ansible_playbook`\nunit handler.\n\nWe define the unit on the host as /etc/lmaps/units/some_example.yaml:\n```\n---\nmeta:\n name: some_example\n data_type: YamlKeyList\n store_key: some_structure\n store_root: /some/dir/to/store/instances\nhandler:\n name: ansible_some_example\n type: ansible_playbook\n args:\n playbook: /my-playbook.yaml\n params:\n additionalProperties: false\n properties:\n message:\n type: string\n```\n\nNow when the daemon is run (`lmaps -D`), we can create instances.\n\nWith no instances defined, ansible will use the default vars declared\nin the playbook, but if we created the following as hello_world.yaml:\n```\nmessage: Hello world!\n```\nand created it via:\n`lmaps --create --file hello_world.yaml --unit some_example`\nthen when applied, the loop will get the following output:\n\n[![asciicast](https://asciinema.org/a/AZC5wiglgxG5Vt83a1YBsOhyP.png)](https://asciinema.org/a/AZC5wiglgxG5Vt83a1YBsOhyP)\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://josiahkerley.github.io/python-lmaps/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "lmaps", "package_url": "https://pypi.org/project/lmaps/", "platform": "", "project_url": "https://pypi.org/project/lmaps/", "project_urls": { "Homepage": "https://josiahkerley.github.io/python-lmaps/" }, "release_url": "https://pypi.org/project/lmaps/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "Lightweight Management and Provisioning Service", "version": "1.1.0" }, "last_serial": 3885995, "releases": { "0.0.1.dev9": [ { "comment_text": "", "digests": { "md5": "58daf6b41928c9af3fa4e9b7df0aa5ec", "sha256": "a5b5002287d96fce629519b0e7016da7a46142a1ed54dd8be8c3a7214dbfed38" }, "downloads": -1, "filename": "lmaps-0.0.1.dev9.tar.gz", "has_sig": false, "md5_digest": "58daf6b41928c9af3fa4e9b7df0aa5ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 699117, "upload_time": "2018-05-20T04:51:08", "url": "https://files.pythonhosted.org/packages/14/f0/70be7ea93f9d948d4f41bf770ba87dbdd83751af144ccf51f39e34035e2c/lmaps-0.0.1.dev9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "2b82e4cae83293fd78282f8e2b241f8e", "sha256": "1b373fcbf515a7f33c3f8b4893a1d30e20bc00c7e75c2e880d11af0ab86cf4cb" }, "downloads": -1, "filename": "lmaps-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2b82e4cae83293fd78282f8e2b241f8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 699310, "upload_time": "2018-05-21T00:07:49", "url": "https://files.pythonhosted.org/packages/77/6d/e87009cf79046475b2810c136fdabb1cb7360fe04b34ee2aa6f34835170f/lmaps-1.0.0.tar.gz" } ], "1.0.0.dev9": [ { "comment_text": "", "digests": { "md5": "da03f87764eb16e6eec3b81e61408bf0", "sha256": "ef7ac6244ea4f5dbf94314c132cadc9ba86ecc91003731fe5afd4edbf5d23ddc" }, "downloads": -1, "filename": "lmaps-1.0.0.dev9.tar.gz", "has_sig": false, "md5_digest": "da03f87764eb16e6eec3b81e61408bf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 699209, "upload_time": "2018-05-20T04:59:52", "url": "https://files.pythonhosted.org/packages/21/12/f642b66a5258027c4c132305a3b2096a39dc57dfbcc09dac9e0220e9538d/lmaps-1.0.0.dev9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6df8e2ca823a420872035d7068cce2b7", "sha256": "4e69d2dc8e9a86a7a4047fb5b2c6b2f47b48f119ba64a5b4a5a4cb4e8000792f" }, "downloads": -1, "filename": "lmaps-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6df8e2ca823a420872035d7068cce2b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 701549, "upload_time": "2018-05-22T03:31:09", "url": "https://files.pythonhosted.org/packages/bf/fd/ccee57719b13a8c60476fa3e531a30dc996e9682cf13499eadf83b3d6db1/lmaps-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6df8e2ca823a420872035d7068cce2b7", "sha256": "4e69d2dc8e9a86a7a4047fb5b2c6b2f47b48f119ba64a5b4a5a4cb4e8000792f" }, "downloads": -1, "filename": "lmaps-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6df8e2ca823a420872035d7068cce2b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 701549, "upload_time": "2018-05-22T03:31:09", "url": "https://files.pythonhosted.org/packages/bf/fd/ccee57719b13a8c60476fa3e531a30dc996e9682cf13499eadf83b3d6db1/lmaps-1.1.0.tar.gz" } ] }