{ "info": { "author": "Kirit Saelensminde", "author_email": "kirit@felspar.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: System Administrators", "License :: OSI Approved", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Topic :: System :: Systems Administration" ], "description": "mkschroot\n=========\n\nA simple script for making ``schroot`` environments from a JSON\nconfiguration file. The idea is to let you set up multiple ``schroot``\nimages simply and quickly and to be able to check in the configuration\nthat makes this repeatable across many machines easily.\n\nThis first version isn't so smart. It assumes that you're using a 64 bit\nhost machine, and doesn't check that you're on Debian as it should (it\nonly uses ``debootstrap`` to build the chroot environment). It's\nprobably also highly Ubuntu specific right now. To add to the fun it's\nnot been very thoroughly tested yet either.\n\nTo use it you must install a couple of things:\n\n::\n\n apt-get install debootstrap schroot\n pip install mkschroot\n\nUsing mkschroot\n---------------\n\nYou just need to pass ``mkschroot`` a configuration file:\n\n::\n\n mkschroot ~/chroots/example.json\n\nDon't run with root privileges. If root access is required then ``sudo``\nrights will be requested.\n\nIf the ``schroot`` configuration has been changed then a new\nconfiguration file will be generated. If the image doesn't exist it will\nbe created and have the packages installed on it, if it does exist it\nwill be updated to the latest package list and package versions.\n\nYou really want to have a local ``apt-cacher`` if you're going to be\nmaking a lot of images.\n\nConfiguring mkschroot\n~~~~~~~~~~~~~~~~~~~~~\n\nThe configuration file needs to be JSON. A configuration file might look\nlike the below:\n\n::\n\n {\n \"root\": \"/mnt/files2/chroot\",\n \"source\": \"http://th.archive.ubuntu.com/ubuntu/\",\n \"http-proxy\": \"http://angelo:3142/\",\n \"base-packages\": [\"lsb-release\", \"openssh-client\"],\n \"defaults\": {\n \"sources\": {\n \"universe\": {}\n },\n \"conf\": {\n \"root-users\": [\"kirit\"],\n \"users\": [\"kirit\"]\n }\n },\n \"schroot\": {\n \"build-lucid64\": {\n \"release\": \"lucid\",\n \"packages\": [\n \"g++\", \"libbz2-dev\", \"libssl-dev\", \"python-dev\", \"uuid-dev\",\n \"libboost-dev\", \"subversion\", \"git-core\"\n ]\n },\n \"root-ca-kirit\": {\n \"release\": \"precise\",\n \"packages\": [\"openssl\"],\n \"conf\": {\n \"personality\": \"linux32\"\n }\n }\n }\n }\n\nThe base options are:\n\n- ``base-packages``: Packages that are to be installed in all chroots.\n- ``defaults``: Default values for individual chroot configurations.\n- ``http-proxy``: A HTTP proxy (probably an apt-cache) that should be\n used by ``debootstrap`` to fetch packages.\n- ``root``: The directory where you want the chroots to be created in\n by default (override this using the ``directory`` setting within a\n chroot).\n- ``schroot``: The schroot environments to be created.\n- ``source``: Where the packages can be installed from. This is\n required.\n\nA chroot configuration is described by a structure like the following:\n\n::\n\n {\n \"release\": \"lucid\",\n \"variant\": \"buildd\",\n \"packages\": [\"g++\"],\n \"sources\": {\n \"universe\": {}\n },\n \"conf\": {\n \"root-users\": [\"kirit'\"],\n \"users\": [\"kirit\"]\n }\n }\n\n- ``release``: The operating system version you wish to make use of.\n- ``variant``: If specified then the variant is passed to\n ``debootstrap`` so that the right base image options are used. The\n variant name is also used in the ``schroot`` configuration file so\n that the right start up options are used when the chroot is started.\n Note that some ``schroot`` options (notably fstab for buildd) won't\n work until they're configured to match your system.\n- ``conf``: The fields used for the schroot configuration file (in\n ``/etc/schroot/chroot.d/``). All fields are optional. The fields\n ``root-users`` and ``users`` will have values created from the\n currently logged in user. The other fields that can be here are:\n ``description``, ``type``, ``personality``, ``directory``. Do read\n the part about common fields though (below).\n- ``sources``: Extra sources that are to be added to the chroot. See\n sources below.\n- ``packages``: Packages that need to be installed into the chroot\n using ``apt-get``. These are combined with the base-packages.\n\nNote that if you change the variant of an existing image no attempt is\nmade to correct the packages that are installed.\n\nCommon configuration items\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGenerally many of the chroots that you want will share a good deal of\nconfiguration between machines. To help with this a default ``schroot``\nconfiguration can be given which will then have values overridden by the\nspecific ``schroot``\\ s that you request be made.\n\nThis means that the values in the ``defaults`` key will be used, then\nany values in the specific ``schroots`` key will be added in, and\nfinally a few defaults will be generated by ``mkschroot``.\n\n- ``description``: The release name together with personality name.\n- ``directory``: The ``root`` global option will have the schroot name\n added to it.\n- ``type``: Always ``directory``.\n- ``personality``: The same as the host personality (currently hard\n coded to 64 bits)\n- 'root-users': A list of user names. Defaults to the currently logged\n in user.\n- 'users': A list of user names. Defaults to the currently logged in\n user.\n\n/etc/apt/apt.conf\n^^^^^^^^^^^^^^^^^\n\nIf the host environment has an ``/etc/apt/apt.conf`` file then it is\nassumed that this should also be in the schroot environments. If the\nfile contents differ then the host file is copied into the schroot and\n``apt-get update`` is run within the chroot.\n\nSources\n^^^^^^^\n\nIf other sources are needed then they can be specified at either the\ndefaults level or for an individual schroot. The name is used as the\ncomponent name, and this will generate a file in\n``/etc/apt/sources.list.d/`` with the component pointing at the source.\nIf a source field is given than that is used, otherwise the global\nsource is used.\n\nFor example:\n\n::\n\n sources: {\n \"universe\": {},\n \"private-example\": {\"source\": \"http://example.com/\"}\n }\n\nWill generate two files, ``universe.list``:\n\n::\n\n deb http://th.archive.ubuntu.com/ubuntu/ universe\n\nAnd private-example.list\\`:\n\n::\n\n deb http://example.com/ private-example\n\nNote that the value for a source component must be a JSON object, even\nif empty.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/KayEss/mkschroot", "keywords": "chroot debian devops", "license": "Boost Software License - Version 1.0 - August 17th, 2003", "maintainer": null, "maintainer_email": null, "name": "mkschroot", "package_url": "https://pypi.org/project/mkschroot/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mkschroot/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/KayEss/mkschroot" }, "release_url": "https://pypi.org/project/mkschroot/0.3.4.1/", "requires_dist": null, "requires_python": null, "summary": "A simple script for making schroot environments from a JSON configuration file", "version": "0.3.4.1" }, "last_serial": 847749, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "4d85a6c8b7f041d7d10b734b595417b2", "sha256": "5d5a733ca4e609f38535722f5022c5d34d21f7ea1ac6056975dc21314daf980e" }, "downloads": -1, "filename": "mkschroot-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4d85a6c8b7f041d7d10b734b595417b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3827, "upload_time": "2013-05-23T14:37:29", "url": "https://files.pythonhosted.org/packages/b2/65/ce72a4493082e8a0038c3d14ac1bf156f1a7c62c208c31147ccb408d1526/mkschroot-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b43fc3978b87596a3d446ab1d68202ea", "sha256": "9201fcbeab66c5c53ab6d0db4106b7c4c96094631ba2f416b582b3bd60e7aaeb" }, "downloads": -1, "filename": "mkschroot-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b43fc3978b87596a3d446ab1d68202ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3820, "upload_time": "2013-05-23T14:37:31", "url": "https://files.pythonhosted.org/packages/35/85/c4e5d803b13d82e8528226c1e140f88fa59a5c7c5b5ec45896f46dba1e76/mkschroot-0.1.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "1bd62045e652e64368b90baecd412c9f", "sha256": "4766468c8e3d1046ff97f4736c94960b5f8841172bc913f193997c89cfddab33" }, "downloads": -1, "filename": "mkschroot-0.3.tar.gz", "has_sig": false, "md5_digest": "1bd62045e652e64368b90baecd412c9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5808, "upload_time": "2013-05-28T05:01:04", "url": "https://files.pythonhosted.org/packages/95/7e/09ec56d49eba3011419e4409501f16d65cddf29aef43e234997a5e6f03b1/mkschroot-0.3.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "dd11f62f390027cce1cc1813dc65636a", "sha256": "a6ea2f98a00b4618396da6d9b1db22c9a5394e98a293fbaaa1118abab0b74c48" }, "downloads": -1, "filename": "mkschroot-0.3.2.tar.gz", "has_sig": false, "md5_digest": "dd11f62f390027cce1cc1813dc65636a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5811, "upload_time": "2013-05-29T00:48:29", "url": "https://files.pythonhosted.org/packages/51/bc/747477dc37791e89ae11d79d13133f516a8987a218285d8f0e9d5f7f98b0/mkschroot-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "82d167e88c8a9b9dcb67368eb732124a", "sha256": "d79f45173916a4d803c2ea124d2fd1100f500847d5dcfd93636c65a2410556fd" }, "downloads": -1, "filename": "mkschroot-0.3.3.tar.gz", "has_sig": false, "md5_digest": "82d167e88c8a9b9dcb67368eb732124a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6390, "upload_time": "2013-07-27T14:30:28", "url": "https://files.pythonhosted.org/packages/96/29/a72eeabb9fd9783b4e9b3677ba2f26e6049f720ca843e5c676824a853e66/mkschroot-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "8c9edc35e0233f97b3a98bfb979e374e", "sha256": "f5027c8984a8a2d5b2d637498c183724819547d67732b65c14a560ccea2a5b89" }, "downloads": -1, "filename": "mkschroot-0.3.4.tar.gz", "has_sig": false, "md5_digest": "8c9edc35e0233f97b3a98bfb979e374e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6509, "upload_time": "2013-08-23T10:24:52", "url": "https://files.pythonhosted.org/packages/2a/b8/fe0bb1412143bbc7bd9778bf9a8f7045edc0eb82c1185408f1a89d936adc/mkschroot-0.3.4.tar.gz" } ], "0.3.4.1": [ { "comment_text": "", "digests": { "md5": "58d1e37fb450a699b9a7fd07697cc22a", "sha256": "114b9d683bcaa2c1791cc87be91efe25223111ac1532c26e55405de025908ba3" }, "downloads": -1, "filename": "mkschroot-0.3.4.1.tar.gz", "has_sig": false, "md5_digest": "58d1e37fb450a699b9a7fd07697cc22a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6508, "upload_time": "2013-08-24T07:14:07", "url": "https://files.pythonhosted.org/packages/32/24/3ba347669d198500925120c3d65c268544af5a8c227e16af0260a1ef63c3/mkschroot-0.3.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "58d1e37fb450a699b9a7fd07697cc22a", "sha256": "114b9d683bcaa2c1791cc87be91efe25223111ac1532c26e55405de025908ba3" }, "downloads": -1, "filename": "mkschroot-0.3.4.1.tar.gz", "has_sig": false, "md5_digest": "58d1e37fb450a699b9a7fd07697cc22a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6508, "upload_time": "2013-08-24T07:14:07", "url": "https://files.pythonhosted.org/packages/32/24/3ba347669d198500925120c3d65c268544af5a8c227e16af0260a1ef63c3/mkschroot-0.3.4.1.tar.gz" } ] }