{ "info": { "author": "Nick Douma", "author_email": "n.douma@nekoconeko.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Topic :: System :: Systems Administration", "Topic :: Utilities" ], "description": "proxmox-deploy\n==============\nUse this tool to deploy ``cloud-init`` enabled images from various Linux\ndistributions on Proxmox.\n\nProxmox does not support ``cloud-init`` enabled images out of the box. It's\npossible to create template from manually installed VMs. However, with the\navailability of ready to deploy images from most major Linux vendors, why\nshould you install a VM manually?\n\nHow it works\n------------\ncloud-init depends on two things:\n\n1. A minimal base installation of the distribution, usually in the form of a\n raw or qcow2 image. I call this a *cloud image*.\n2. The ``cloud-init`` package installed in the image.\n\ncloud-init was originally made for Amazon EC2 and OpenStack. These platforms\nhave native support for cloud-init, and provide a datasource that ``cloud-init``\ncan use to configure the VM. However, there are few alternative datasources\navailable that will work, even if the platform itself has no native support for\n``cloud-init``.\n\n``proxmox-deploy`` uses the `NoCloud`_ datasource. For this approach, the VM\nmust have a copy of the *cloud image* as the first disk, and a read-only vfat or\niso9660 filesystem as the second disk. On this second disk, there must be two\nfiles: ``user-data`` and ``meta-data``.\n\n``proxmox-deploy`` takes care of generating the ``user-data`` and ``meta-data``\nfiles based on user input. ``proxmox-deploy`` also takes care of creating a\nProxmox VM and uploading the *cloud image* and ``cloud-init`` image into the\nproper datastore. All that's left afterwards is turning on the VM.\n\nHow to install\n--------------\n\nAll dependencies are installable using pip. To install globally, execute as\nroot:\n\n.. code-block:: bash\n\n # pip install proxmox-deploy\n\nOr to install into a virtualenv (as a normal user):\n\n.. code-block:: bash\n\n $ virtualenv env\n $ . env/bin/activate\n $ pip install proxmox-deploy\n\nMake sure to activate your virtualenv before using or upgrading the tool later:\n\n.. code-block:: bash\n\n $ . env/bin/activate\n\nTo later upgrade it:\n\n.. code-block:: bash\n\n $ pip install --upgrade proxmox-deploy\n\n\nHow to use\n----------\n\nAfter installing, simply use:\n\n.. code-block:: bash\n\n $ proxmox-deploy --proxmox-host --cloud-images-dir \n\nAnd answer the interactive questions.\n\nTested cloud images\n-------------------\n\nI have tested ``proxmox-deploy`` with the following *cloud images*:\n\n+---------------+---------------+--------------------------------------------------+\n| Distribution | Version | Status |\n+===============+===============+==================================================+\n| Ubuntu | `14.04`_ | The *-amd64-disk1.img* images work. |\n| | `15.10`_ | |\n| | `16.04`_ | |\n+---------------+---------------+--------------------------------------------------+\n| Fedora Server | `23`_ | The *qcow2* image works. |\n+---------------+---------------+--------------------------------------------------+\n| openSUSE | `13.2`_ | The *-OpenStack-Guest.x86_64.qcow2* image works, |\n| | | provided the VM has at least 512 MB RAM. The |\n| | | minimal disk size is 10 GB. However, the first |\n| | | NIC is called ``eth1``, so make sure to select |\n| | | ``eth1`` to configure. There is no *suse* user, |\n| | | login as *root*. |\n+---------------+---------------+--------------------------------------------------+\n| CentOS | `6`_ | The CentOS 6 image fails to boot, hanging at |\n| | | \"Booting from hard disk\". |\n| | | |\n| | `7`_ | The CentOS 7 *-GenericCloud.qcow2.xz* image |\n| | | works. The minimal disk size will be 8G. |\n+---------------+---------------+--------------------------------------------------+\n| Debian | `8`_ | Neither the qcow2 nor the raw image works. The |\n| | | first boot results in a kernel panic and |\n| | | subsequent boots won't run ``cloud-init``, |\n| | | rendering the VM unreachable. |\n+---------------+---------------+--------------------------------------------------+\n| FreeBSD | `10.1 cloud`_ | Does not work, `cloudbase-init-bsd`_ has no |\n| | | support for the NoCloud datasource. |\n| | | |\n| | `10.1 vm`_ | The official VM images boot at least, but |\n| | | cloud-init is not available. It will boot with |\n| | | with DHCP and a default user/password. |\n+---------------+---------------+--------------------------------------------------+\n\nAll distributions provide a default user with the name of the distro (*ubuntu*,\n*fedora*, *centos*, *debian*, *freebsd*), except openSUSE which only has a\n*root* user.\n\nDependencies\n------------\n* Proxmox VE 4.1 or later\n* Python 2.7\n* `proxmoxer`_ as Proxmox API client\n* `openssh-wrapper`_ for communicating with the Proxmox API and\n executing commands.\n* `Jinja2`_ for generating the ``user-data`` and ``meta-data`` files.\n* `configobj`_ for reading configuration files.\n* `pytz`_ for timezone names.\n* ``genisoimage`` (Linux) or ``mkisofs`` (FreeBSD) command.\n\nDo note that we need to access the Proxmox server via SSH, to perform the\nvarious tasks. We also use the `pvesh` and `pvesm` commands over SSH to\ninterface with the Proxmox API and datastores respectively. ``proxmox-deploy``\nwill not ask for passwords to login, so a proper SSH agent and SSH key access\nmust be configured before hand.\n\nChangelog\n---------\n\n+---------+--------------------------------------------------------------------+\n| 0.4.0 | * Support for volumes on zfspool stores. |\n| | * Allow specifying an empty VLAN id. |\n| | * Allow specifying a different SSH port for connecting to Proxmox. |\n+---------+--------------------------------------------------------------------+\n| 0.3 | * Support for volumes on nfs and lvm-thin data stores. |\n| | * Always enable serial console on new VMs. This fixes deploying |\n| | Ubuntu 16.04 cloud images. |\n+---------+--------------------------------------------------------------------+\n| 0.2 | * Support for cloud-init Chef handoff (no autorun yet). |\n| | * Improve EnumQuestion output by listing and sorting options. |\n| | * Add option for automatically starting VMs after deployment. |\n| | * Choose defaults for node and storage selection. |\n| | * Support FreeBSD `mkisofs` command. |\n+---------+--------------------------------------------------------------------+\n| 0.1 | * Initial release |\n+---------+--------------------------------------------------------------------+\n\nLicense\n-------\n``proxmox-deploy`` is licensed under the GPLv3 license.\n\n.. _NoCloud: http://cloudinit.readthedocs.org/en/latest/topics/datasources.html#no-cloud\n.. _14.04: https://cloud-images.ubuntu.com/trusty/current/\n.. _15.10: https://cloud-images.ubuntu.com/wily/current/\n.. _16.04: https://cloud-images.ubuntu.com/xenial/current/\n.. _23: https://getfedora.org/cloud/download/\n.. _13.2: http://download.opensuse.org/repositories/Cloud:/Images:/openSUSE_13.2/images/\n.. _6: http://cloud.centos.org/centos/6/images/\n.. _7: http://cloud.centos.org/centos/7/images/\n.. _8: http://cdimage.debian.org/cdimage/openstack/8.2.0/\n.. _10.1 cloud: https://blog.nekoconeko.nl/blog/2015/06/04/creating-an-openstack-freebsd-image.html\n.. _10.1 vm: https://www.freebsd.org/where.html\n.. _cloudbase-init-bsd: https://pellaeon.github.io/bsd-cloudinit/\n.. _proxmoxer: https://pypi.python.org/pypi/proxmoxer\n.. _openssh-wrapper: https://pypi.python.org/pypi/openssh-wrapper\n.. _Jinja2: https://pypi.python.org/pypi/Jinja2\n.. _configobj: https://pypi.python.org/pypi/configobj\n.. _pytz: https://pypi.python.org/pypi/pytz\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/LordGaav/proxmox-deploy", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "proxmox-deploy", "package_url": "https://pypi.org/project/proxmox-deploy/", "platform": "", "project_url": "https://pypi.org/project/proxmox-deploy/", "project_urls": { "Homepage": "https://github.com/LordGaav/proxmox-deploy" }, "release_url": "https://pypi.org/project/proxmox-deploy/0.4.0/", "requires_dist": [ "proxmoxer", "openssh-wrapper", "Jinja2", "configobj", "pytz" ], "requires_python": "", "summary": "proxmox-deploy is cli-based deployment tool for Proxmox", "version": "0.4.0" }, "last_serial": 3307038, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "aa94f7e8f6d881245f33e3f8d3c8cdc5", "sha256": "05747e55f82172e4507390208719022d08b7a06a2465acf52d806e8f1972fd35" }, "downloads": -1, "filename": "proxmox_deploy-0.1-py2.7.egg", "has_sig": false, "md5_digest": "aa94f7e8f6d881245f33e3f8d3c8cdc5", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 41888, "upload_time": "2016-01-02T01:03:46", "url": "https://files.pythonhosted.org/packages/8f/84/3f4b2351f44a6b232fe3160eebf55effe63a8660bf48505e1be4973df528/proxmox_deploy-0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2f4ff81acb72aa495fb313ac24f5af9d", "sha256": "e06094830d51c3d9a6c66900007dc3843a63893e50a47d7ab1c003aca4c6faf1" }, "downloads": -1, "filename": "proxmox_deploy-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "2f4ff81acb72aa495fb313ac24f5af9d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25350, "upload_time": "2016-01-02T01:04:15", "url": "https://files.pythonhosted.org/packages/97/f1/dd15c058a1bad6f8acaf7ca80ca4fd01dfa449f29b3ac5573224097a95f1/proxmox_deploy-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "850ab97a4e68eed2d130582bd286d524", "sha256": "6983f12752e5b8cb48ca80a138f430401ab33895d2699a5712014e92d8206165" }, "downloads": -1, "filename": "proxmox-deploy-0.1.tar.gz", "has_sig": false, "md5_digest": "850ab97a4e68eed2d130582bd286d524", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16363, "upload_time": "2016-01-02T01:03:17", "url": "https://files.pythonhosted.org/packages/15/b2/95d3389dac8b3cae5fb0636dbe5c48ef57cbe7a3545e5d40b38a790128fb/proxmox-deploy-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "abe26b3bccd7ed1caf7d01e7b18ccc9f", "sha256": "9c5ac9e6ec1a0c2c9b80d65bcda2a85151e655337af1f695ac398b701ba5aded" }, "downloads": -1, "filename": "proxmox_deploy-0.2-py2.7.egg", "has_sig": false, "md5_digest": "abe26b3bccd7ed1caf7d01e7b18ccc9f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 43963, "upload_time": "2016-01-18T20:09:52", "url": "https://files.pythonhosted.org/packages/0c/05/0a74e1046a42ddf6d0e65ec67ee53fd6684941238af59d83c08c5f0707a6/proxmox_deploy-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d8cef23495d01734e6bf0661848050b2", "sha256": "699c0781c2c0f6cc2d542c386db96cd2d59d1381e6b1286da81e13a5ac145228" }, "downloads": -1, "filename": "proxmox_deploy-0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "d8cef23495d01734e6bf0661848050b2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26779, "upload_time": "2016-01-18T20:09:58", "url": "https://files.pythonhosted.org/packages/3e/69/d0acb2298201e3b41b7b4dfed262244db95777acd65acdacf803b2dfd9f1/proxmox_deploy-0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebe7e66b093eab4db43b043ed45204fe", "sha256": "289109ced6a8d30e3be70c9020dfb25791b1fa5972b65115d99e168a5e3bbb44" }, "downloads": -1, "filename": "proxmox-deploy-0.2.tar.gz", "has_sig": false, "md5_digest": "ebe7e66b093eab4db43b043ed45204fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17434, "upload_time": "2016-01-18T20:09:46", "url": "https://files.pythonhosted.org/packages/59/5a/25814e3514723120ae9fbfff17c9546e9fc28754646bc64a6e0fde7e59dd/proxmox-deploy-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "1b0d3562d178b7f388c218540b992213", "sha256": "622be107ffe34c3f6bf2ac886f4b48e665f82c3a23ff69a56702698541a4a551" }, "downloads": -1, "filename": "proxmox_deploy-0.3-py2.7.egg", "has_sig": false, "md5_digest": "1b0d3562d178b7f388c218540b992213", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44352, "upload_time": "2016-07-22T08:27:25", "url": "https://files.pythonhosted.org/packages/4f/1d/44192084df93aea29c49fbc3a97d79382d7ebaf0d4a195775a52b7054a85/proxmox_deploy-0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "c6bd2b750bdb3b6a1130d91e5d24bab3", "sha256": "d5fc9450406c353f65ea732b72c3d7208d7e6c8230fbb268d3c5aa9a19feda90" }, "downloads": -1, "filename": "proxmox_deploy-0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "c6bd2b750bdb3b6a1130d91e5d24bab3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27068, "upload_time": "2016-07-22T08:27:31", "url": "https://files.pythonhosted.org/packages/05/45/93a4b78c330866fc0fb37884054a373431dd4251a05604fb18d839078ef2/proxmox_deploy-0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70ba4f058d77f4c9bbb87027344b293a", "sha256": "89eb054ac499d6842263226f6f500e2425f7b0dacc1f8a2d0009d643a24aafe0" }, "downloads": -1, "filename": "proxmox-deploy-0.3.tar.gz", "has_sig": false, "md5_digest": "70ba4f058d77f4c9bbb87027344b293a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20506, "upload_time": "2016-07-22T08:27:23", "url": "https://files.pythonhosted.org/packages/d4/5b/19eb573b33e435ed9937870203e6eb91eff53eb444d2e7c0566bf9915fe9/proxmox-deploy-0.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9fb44a7228c9bc2a0e77f77850340126", "sha256": "4665a9a4842681799c8b9a31f8cd74f031aa29893da1bdcfbfbbea6c5d75fbac" }, "downloads": -1, "filename": "proxmox_deploy-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "9fb44a7228c9bc2a0e77f77850340126", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 27712, "upload_time": "2017-11-05T13:18:55", "url": "https://files.pythonhosted.org/packages/c5/ee/41847dee4c94fbae8f86012d81eeb98cba954e56a1388b75c546c627331d/proxmox_deploy-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63e3574f4a98639e0bf6d495cee80be3", "sha256": "e1a7884ca9b4825e4b94658e0fe612f21f8781eb2b92e34df10aa5e67afab2f8" }, "downloads": -1, "filename": "proxmox-deploy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "63e3574f4a98639e0bf6d495cee80be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18554, "upload_time": "2017-11-05T13:18:59", "url": "https://files.pythonhosted.org/packages/c4/41/f4ca6341ddb8e08441cf28f03f92613aec18963535bf81834bcb235c2ab6/proxmox-deploy-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9fb44a7228c9bc2a0e77f77850340126", "sha256": "4665a9a4842681799c8b9a31f8cd74f031aa29893da1bdcfbfbbea6c5d75fbac" }, "downloads": -1, "filename": "proxmox_deploy-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "9fb44a7228c9bc2a0e77f77850340126", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 27712, "upload_time": "2017-11-05T13:18:55", "url": "https://files.pythonhosted.org/packages/c5/ee/41847dee4c94fbae8f86012d81eeb98cba954e56a1388b75c546c627331d/proxmox_deploy-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63e3574f4a98639e0bf6d495cee80be3", "sha256": "e1a7884ca9b4825e4b94658e0fe612f21f8781eb2b92e34df10aa5e67afab2f8" }, "downloads": -1, "filename": "proxmox-deploy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "63e3574f4a98639e0bf6d495cee80be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18554, "upload_time": "2017-11-05T13:18:59", "url": "https://files.pythonhosted.org/packages/c4/41/f4ca6341ddb8e08441cf28f03f92613aec18963535bf81834bcb235c2ab6/proxmox-deploy-0.4.0.tar.gz" } ] }