{ "info": { "author": "Ronan Amicel", "author_email": "ronan.amicel@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Software Distribution", "Topic :: System :: Systems Administration" ], "description": "About\n=====\n\n``fabtools`` includes useful functions to help you write your `Fabric `_ files.\n\n``fabtools`` makes it easier to manage system users, packages, databases, etc.\n\n``fabtools`` includes a number of low-level actions, as well as a higher level interface called ``fabtools.require``.\n\nUsing ``fabtools.require`` allows you to use a more declarative style, similar to Chef or Puppet.\n\nInstalling\n==========\n\nTo install the latest release from `PyPI `_\n\n.. code-block:: console\n\n $ pip install fabtools\n\nTo install the latest development version from `GitHub `_\n\n.. code-block:: console\n\n $ pip install git+git://github.com/ronnix/fabtools.git\n\nExample\n=======\n\nHere is an example ``fabfile.py`` using ``fabtools``\n\n.. code-block:: python\n\n from fabric.api import *\n from fabtools import require\n import fabtools\n\n @task\n def setup():\n\n # Require some Debian/Ubuntu packages\n require.deb.packages([\n 'imagemagick',\n 'libxml2-dev',\n ])\n\n # Require a Python package\n with fabtools.python.virtualenv('/home/myuser/env'):\n require.python.package('pyramid')\n\n # Require an email server\n require.postfix.server('example.com')\n\n # Require a PostgreSQL server\n require.postgres.server()\n require.postgres.user('myuser', 's3cr3tp4ssw0rd')\n require.postgres.database('myappsdb', 'myuser')\n\n # Require a supervisor process for our app\n require.supervisor.process('myapp',\n command='/home/myuser/env/bin/gunicorn_paster /home/myuser/env/myapp/production.ini',\n directory='/home/myuser/env/myapp',\n user='myuser'\n )\n\n # Require an nginx server proxying to our app\n require.nginx.proxied_site('example.com',\n docroot='/home/myuser/env/myapp/myapp/public',\n proxy_url='http://127.0.0.1:8888'\n )\n\n # Setup a daily cron task\n fabtools.cron.add_daily('maintenance', 'myuser', 'my_script.py')\n\nSupported targets\n=================\n\n``fabtools`` currently supports the following target operating systems:\n\n- full support:\n\n - Debian family:\n\n - Debian 6 (*squeeze*), 7 (*wheezy*), 8 (*jessie*)\n - Ubuntu 10.04 (*lucid*), 12.04 (*precise*), 14.04 (*trusty*)\n\n- partial support:\n\n - RedHat family:\n\n - RHEL 5/6\n - CentOS 5/6\n - Scientific Linux 5/6\n - Fedora\n\n - Arch Linux, Manjaro Linux\n\n - Gentoo\n\n - SmartOS (Joyent)\n\nContributions to help improve existing support and extend it to other\nUnix/Linux distributions are welcome!\n\nChangelog\n=========\n\nVersion 0.20.0 (unreleased)\n---------------------------\n\n* Fix Apache support on Ubuntu 14.04 and Debian 8.0\n\n\nVersion 0.19.0 (2014-07-05)\n---------------------------\n\n* Python improvements:\n * use new official download URLs for ``setuptools`` and ``pip`` (Arnaud Vazard)\n * fix ``virtualenv`` when the ``local`` flag is passed (Troy J. Farrell)\n* Node.js improvements:\n * fix ``package_version`` when no package is installed (Alexandre Patry)\n * add a ``checkinstall`` flasg to build and install a distribution package\n when installing from source (Fabien Meghazi)\n* Arch Linux improvements:\n * add support for the ManjaroLinux variant (Ga\u00ebtan Lamothe)\n * fixsupport for ``setuptools`` (Robin Lambertz)\n * fix support for ``supervisor`` (Robin Lambertz)\n * recognize all known distribution IDs and normalize them to ``Arch``\n* Debian/Ubuntu improvements:\n * add support for the Elementary OS variant (Arnaud Vazard)\n\n\nVersion 0.18.0 (2014-05-02)\n---------------------------\n\nThis release requires Fabric >= 1.7.0 and drops support for Python 2.5.\n\n* Add ``drop_user`` and ``drop_database`` in ``postgres`` module\n* Add LinuxMint to the Debian family list (Frank Rousseau)\n* Add support for git remotes (Bryan Folliot)\n* Add support for Tomcat (Jan Kowalski)\n* Add support for Gentoo / portage (Travis Shirk)\n* Add support for Mercurial (Travis Shirk)\n* Add support for GVM (Groovy environment manager) (Bryan Folliot)\n* Documentation fixes and updates\n* MySQL improvements:\n * do not require a password when a specific user is specified\n * expose ``mysql.query`` in the public API\n* Python improvements:\n * Switch to pip 1.5 (**warning**: you will need to use the\n ``allow_external`` and/or ``allow_unverified`` options to install\n packages not hosted on PyPI)\n * Update GitHub download URL for pip installer (Guillaume Andreu Sabater)\n * Retry when trying to download pip/setuptools installers\n * Add support for pip's ``--exists-action`` option\n* Improved OS support in ``distrib_family()`` and new\n ``UnsupportedFamily`` exception\n* Make sure to install ``curl`` before using it (ponty)\n* Vagrant improvements:\n * Add function to get the Vagrant version\n * Add function to get the status of a Vagrant machine\n * Add function to get the list of Vagrant machines\n * Add function to get the list of Vagrant base boxes\n* Files improvements:\n * Add ``temp_dir`` parameter to ``require.file`` (default is ``tmp``)\n * Add ``require.files.temporary_directory``\n * Add ``files.umask`` to get the user's umask\n * Fix ``require.file`` ownership and permissions when using ``sudo``\n * Add helpers to copy, move, symlink or remove files\n* Fix ``require.deb.uptodate_index``\n* Use ``rpm`` instead of ``yum`` to check if an RPM package is installed\n* Update JDK install to match changes to the Oracle web site\n* Fix ``cron.add_task`` (thanks to Dan Fairs and Ikuya Yamada)\n\n\nVersion 0.17.0 (2013-12-06)\n---------------------------\n\n* Vagrant improvements:\n * Fix support for Vagrant >= 1.3.0\n * Fix duplicate function in ``vagrant`` module documentation\n (Dean Malmgren)\n* Package management improvements:\n * Ubuntu PPA fixes (Anthony Scalisi)\n * Add support for ``opkg`` package manager (ponty)\n * Add conditional APT index updates, based on the time of the\n last update (ponty)\n* Update ``files.upload_template`` to match Fabric parameters\n (thanks to Adam Patterson)\n* PostgreSQL improvements:\n * Fix: use ``run`` instead of ``sudo`` in ``_run_as_pg`` (iiie)\n * Improve SmartOS and locale support (Andreas Kaiser)\n* Support tags in addition to branches in\n ``require.git.working_copy`` (Andreas Kaiser)\n* Services management improvements:\n * Improve upstart support in ``service.is_running`` (John MacKenzie)\n * Add support for ``systemd`` in ``service.is_running``\n (Adrien Raffin)\n* Improve support for Arch Linux in ``nodejs``, ``service`` and\n ``supervisor`` modules (Steeve Chailloux)\n* Allow custom ``nginx`` package names (Laurent Meunier)\n* Add module management for Apache (Eugene Leonovich)\n* Fix test environment for Python 2.5\n* Use the new Read the Docs theme if available when\n building the docs locally\n* Fix bug with user/group creation with int UID/GID\n\n\nVersion 0.16.0 (2013-10-26)\n---------------------------\n\n* Redis improvements\n * Make bind and port arguments explicit\n * Improve documentation\n * Upgrade default version to 2.6.16\n* Python improvements\n * Improve support for using specific Python interpreters (**warning**:\n API changes)\n * Expose low-level virtualenv operations\n * Improve pip installation\n * Switch from distribute to setuptools 0.7+ after project merge\n (**warning**: API changes)\n * Do not install `curl` and `python-dev` packages when setuptools\n is already installed (ponty)\n * Make package names case-insensitive in python.is_installed\n (ponty)\n * Fix pip version parsing when using ``pythonbrew switch``\n* Fix ``require.system.locales`` when a prefix is set\n* Fix require.system.locale() on fresh Ubuntu systems\n* Add optional environment variables in crontab\n* Fix crontab permissions\n* Allow special characters in MySQL password (R\u00e9gis Behmo)\n* Fix bug with some services not starting correctly (Chris Marinos)\n* Add ``getdevice_by_uuid`` to the disk module (Bruno Adele)\n* Fix implicit directory name in ``git.working_copy`` (iiie)\n* Make ``require.sysctl`` robust to procps start failure\n\n\nVersion 0.15.0 (2013-07-25)\n---------------------------\n\n* Fix missing import in ``user.local_home_directory()`` (Sebastien Beal)\n* Improved Arch Linux support:\n * Fix locale support in Arch Linux (Bruno Adele)\n * Add support for yaourt package manager in Arch Linux (Bruno Adele)\n* Improvements to the ``redis`` module:\n * Fix Redis startup after reboot (Victor Perron)\n * Upgrade default Redis version to 2.6.14\n* Improvements to the ``git`` module:\n * Add optional force parameter to git pull and checkout (Sebastien Beal)\n* Improvements to the ``python`` module:\n * Add parameter to use a specific Python interpreter (Bruno Adele)\n * Stop using PyPI mirrors now that it has a CDN (Dominique Lederer)\n* Debian/Ubuntu improvements:\n * Add optional version parameter to deb.install() (Anthony Scalisi)\n * Improved support for installing APT public keys (Santiago Mola)\n* SmartOS improvements (Andreas Kaiser):\n * Fix md5sum on recent SmartOS\n * Fix bug in pkg.is_installed with certain package names\n * Add support for SmartOS in remote system identification\n * Add support for SmartOS in require.git.command()\n* RedHat improvements:\n * Fix broken rpm.install() (Sho Shimauchi)\n* Oracle JDK improvements:\n * Upgrade default version to 7u25-b15 (Sebastien Beal)\n * Fix Oracle JDK version parsing when OpenJDK is installed\n * Fix Oracle JDK installation on Debian squeeze (St\u00e9phane Klein)\n* Better tests documentation (thanks to St\u00e9phane Klein)\n* Add require.directories() (Edouard de Labareyre)\n* Add support for Apache web server (St\u00e9phane Klein)\n* Upgrade default Node.js version to 0.10.13\n\nVersion 0.14.0 (2013-05-22)\n---------------------------\n\nNote: Fabtools now requires Fabric >= 1.6.0\n\n* Upgrade default pip version to 1.3.1\n* Improved vagrant support:\n * Add support for Vagrant 1.1 providers in functional tests\n * Also set ``env.user`` and ``env.hosts`` in ``vagrant`` context manager\n* Add ``fabtools.system.cpus`` to get the host's CPU count\n* Less verbose output\n* Move OS detection functions to ``fabtools.system``\n* Better support for Red Hat based systems\n* Improvements to the ``user`` module:\n * Fix home dir default behaviour in ``require.user``\n * Add support for SSH authorized keys (Kamil Chmielewski)\n * Add support for SSH known hosts public keys\n * Add ``non_unique`` argument to user functions (Zhang Erning)\n * Get absolute path to the local user's home dir (Sebastien Beal)\n* Use ``SHOW DATABASES`` to test existence of MySQL (Zhang Erning)\n* Improvements to the ``git`` module\n * Expose lower level ``fetch`` operation (Andreas Kaiser)\n * Fix missing import in ``require`` module (Muraoka Yusuke)\n * Require ``git`` command line tool\n* Use ``ifconfig`` as root in ``network`` module\n* Update OpenVZ guest context manager for Fabric 1.6.0\n* Improvements to the ``python`` module:\n * Improved detection of distribute\n * Add support for virtualenv ``--prompt`` option (Artem Nezvigin)\n * Allow relative path in ``virtualenv`` context manager\n* Improvements to the ``oracle_jdk`` module:\n * Upgrade default Oracle JDK version to 7u21-b11 (Kamil Chmielewski)\n * Add support for Oracle JDK version 6 (Sebastien Beal)\n* Fix broken ``fabtools.deb.upgrade``\n* Add support for Arch Linux packages (Bruno Adele)\n* Add support for Linux disk partitions (Bruno Adele)\n* Add OpenSSH server hardening (Adam Patterson)\n* Add ``systemd`` module (Jakub Stasiak)\n* Improvements to the ``redis`` module:\n * Fix broken Redis configuration (Victor Perron)\n * Upgrade default Redis version to 2.6.13\n* Abort on nginx configuration errors\n* Upgrade default Node.js version to 0.10.7\n\nVersion 0.13.0 (2013-03-15)\n---------------------------\n\n* Add support for managing remote git repositories (Andreas Kaiser)\n* Add intersphinx to docs (Andreas Kaiser)\n* Add HTTP proxy support to speed up functional tests\n* Upgrade default Node.js version to 0.10.0\n* Upgrade default Redis version to 2.6.11\n* Upgrade default Oracle JDK version to 7u17-b02\n* Fix vagrant support (thanks to Dominique Lederer and anentropic)\n\nVersion 0.12.0 (2013-03-04)\n---------------------------\n\n* Do not create home directory for system users\n* Fix ``pkg.is_installed`` on SmartOS (thanks to Anthony Scalisi)\n* Fix ``system.get_arch`` (thanks to Kamil Chmielewski)\n* Add support for installing Oracle JDK (thanks to Kamil Chmielewski)\n* Add support for creating Postgres schemas (thanks to Michael Bommarito)\n* Fix ``mysql.user_exists`` (thanks to Serge Travin)\n\nVersion 0.11.0 (2013-02-15)\n---------------------------\n\n* Fix requiring an existing user (thanks to Jonathan Peel)\n* Upgrade default Redis version to 2.6.10\n* Upgrade default Node.js version to 0.8.19\n* Better support for remote hosts where sudo is not installed\n\nVersion 0.10.0 (2013-02-12)\n---------------------------\n\n* Enable/disable nginx sites (thanks to S\u00e9bastien B\u00e9al)\n* Add support for SmartOS (thanks to Anthony Scalisi)\n* Add support for RHEL/CentOS/SL (thanks to Anthony Scalisi)\n\nVersion 0.9.4 (2013-01-10)\n--------------------------\n\n* Add files missing in 0.9.3 (thanks to St\u00e9fane Fermigier)\n\nVersion 0.9.3 (2013-01-08)\n--------------------------\n\n* Fix bugs in user creation (thanks pahaz and St\u00e9phane Klein)\n* Add support for group creation\n\nVersion 0.9.2 (2013-01-05)\n--------------------------\n\n* Add syntax highlighting in README (thanks to Artur Dryomov)\n\nVersion 0.9.1 (2013-01-04)\n--------------------------\n\n* Fix documentation formatting issues\n\nVersion 0.9.0 (2013-01-04)\n--------------------------\n\n* Improve user creation and modification\n* Add support for BSD / OS X to ``files.owner``, ``files.group``,\n ``files.mode`` and ``files.md5sum`` (thanks to Troy J. Farrell)\n* Improve PostgreSQL user creation (thanks to Troy J. Farrell\n and Axel Haustant)\n* Add ``reload`` and ``force_reload`` operations to the ``service``\n module (thanks to Axel Haustant)\n* Fix missing import in ``require.redis`` (thanks to svevang\n and S\u00e9bastien B\u00e9al)\n* Add ``clear`` option to Python virtualenv (thanks to pahaz)\n* Upgrade default Redis version to 2.6.7\n* Upgrade default Node.js version to 0.8.16\n* Decrease verbosity of some operations\n* Speed up functional tests\n\nVersion 0.8.1 (2012-10-26)\n--------------------------\n\n* Really fix pip version parsing issue\n* Upgrade default pip version to 1.2.1\n\nVersion 0.8.0 (2012-10-26)\n--------------------------\n\n* Improve user module (thanks to Ga\u00ebl Pasgrimaud)\n* Fix locale support on Debian (thanks to Olivier Kautz)\n* Fix version number in documentation (thanks to Guillaume Ayoub)\n* Fix potential issue with pip version parsing\n\nVersion 0.7.0 (2012-10-13)\n--------------------------\n\n* Fix changed directory owner requirement (thanks to Troy J. Farrell)\n* Add functions to get a file's owner, group and mode\n\nVersion 0.6.0 (2012-10-13)\n--------------------------\n\n* Add support for Node.js (thanks to Frank Rousseau)\n* Fix dependency on Fabric >= 1.4.0 (thanks to Laurent Bachelier)\n\nVersion 0.5.1 (2012-09-21)\n--------------------------\n\n* Documentation and packaging fixes\n\nVersion 0.5 (2012-09-21)\n------------------------\n\n* The ``watch`` context manager now allows you to either provide\n a callback or do an explicit check afterwards (**warning**: this change\n is not backwards compatible, please update your fabfiles)\n* Add support for some network-related operations:\n * get the IPV4 address assigned to an interface\n * get the list of name server IP addresses\n* The ``services`` module now supports both upstart and traditional\n SysV-style ``/etc/init.d`` scripts (thanks to Selwin Ong)\n* The ``virtualenv`` context manager can now also be used with ``local()``\n (thanks to khorn)\n* The ``supervisor`` module now uses ``update`` instead of ``reload``\n to avoid unnecessary restarts (thanks to Dan Fairs)\n* Add support for OpenVZ containers (requires a kernel with OpenVZ patches)\n* ``pip`` can now use a download cache\n* Upgrade Redis version to 2.4.17\n* Misc bug fixes and improvements\n* Support for Ubuntu 12.04 LTS and Debian 6.0\n* Documentation improvements\n\nVersion 0.4 (2012-05-30)\n------------------------\n\n* Added support for requiring an arbitrary APT source\n* Added support for adding APT signing keys\n* Added support for requiring a user with a home directory\n* Added vagrant helpers\n* Fixed Python virtualenv context manager\n\nVersion 0.3.2 (2012-03-19)\n--------------------------\n\n* Fixed README formatting\n\nVersion 0.3.1 (2012-03-19)\n--------------------------\n\n* Fixed bug in functional tests runner\n\nVersion 0.3 (2012-03-19)\n------------------------\n\n* Added support for Shorewall (Shoreline Firewall)\n* Fixed Python 2.5 compatibility\n* Refactored tests\n\nVersion 0.2.1 (2012-03-09)\n--------------------------\n\n* Packaging fixes\n\nVersion 0.2 (2012-03-09)\n------------------------\n\n* Added support for hostname and sysctl (kernel parameters)\n* Added support for Redis\n* Simplified API for supervisor processes\n\nVersion 0.1.1 (2012-02-19)\n--------------------------\n\n* Packaging fixes\n\nVersion 0.1 (2012-02-19)\n------------------------\n\n* Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://fabtools.readthedocs.org/", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "fabtools3", "package_url": "https://pypi.org/project/fabtools3/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fabtools3/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://fabtools.readthedocs.org/" }, "release_url": "https://pypi.org/project/fabtools3/0.19.0/", "requires_dist": null, "requires_python": null, "summary": "[Python3 fork] Tools for writing awesome Fabric files", "version": "0.19.0" }, "last_serial": 2073799, "releases": { "0.19.0": [ { "comment_text": "", "digests": { "md5": "4cbe1b468473bd40559b317532562d3e", "sha256": "9184d6552dab608f8b80fcbfbb3703df7b6ed8953625f82a2a2277a157e3cb91" }, "downloads": -1, "filename": "fabtools3-0.19.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4cbe1b468473bd40559b317532562d3e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 121056, "upload_time": "2016-04-20T10:35:54", "url": "https://files.pythonhosted.org/packages/98/3b/482cf9989acd8fcee506a075dc1fb49ca348e893b485b23dc87a5313790f/fabtools3-0.19.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50b3fb4a28cbaf1cfb812c9c875e7e54", "sha256": "7cfb6bfa2ba4118655eb0005dfc2dcd3d813594767b80ec5a5efc122022be5d0" }, "downloads": -1, "filename": "fabtools3-0.19.0.tar.gz", "has_sig": false, "md5_digest": "50b3fb4a28cbaf1cfb812c9c875e7e54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96783, "upload_time": "2016-04-20T10:35:45", "url": "https://files.pythonhosted.org/packages/d1/64/110307cca2cdf7b4d7366e6ff1ce646c19e99749dca61b636361cdca3b80/fabtools3-0.19.0.tar.gz" } ], "0.20.0.dev0": [] }, "urls": [ { "comment_text": "", "digests": { "md5": "4cbe1b468473bd40559b317532562d3e", "sha256": "9184d6552dab608f8b80fcbfbb3703df7b6ed8953625f82a2a2277a157e3cb91" }, "downloads": -1, "filename": "fabtools3-0.19.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4cbe1b468473bd40559b317532562d3e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 121056, "upload_time": "2016-04-20T10:35:54", "url": "https://files.pythonhosted.org/packages/98/3b/482cf9989acd8fcee506a075dc1fb49ca348e893b485b23dc87a5313790f/fabtools3-0.19.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50b3fb4a28cbaf1cfb812c9c875e7e54", "sha256": "7cfb6bfa2ba4118655eb0005dfc2dcd3d813594767b80ec5a5efc122022be5d0" }, "downloads": -1, "filename": "fabtools3-0.19.0.tar.gz", "has_sig": false, "md5_digest": "50b3fb4a28cbaf1cfb812c9c875e7e54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96783, "upload_time": "2016-04-20T10:35:45", "url": "https://files.pythonhosted.org/packages/d1/64/110307cca2cdf7b4d7366e6ff1ce646c19e99749dca61b636361cdca3b80/fabtools3-0.19.0.tar.gz" } ] }