{ "info": { "author": "Marvin Pinto", "author_email": "marvin@pinto.im", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.4" ], "description": "=========================\nCharlesbot Rundeck Plugin\n=========================\n\n.. image:: https://img.shields.io/travis/marvinpinto/charlesbot-rundeck/master.svg?style=flat-square\n :target: https://travis-ci.org/marvinpinto/charlesbot-rundeck\n :alt: Travis CI\n.. image:: https://img.shields.io/coveralls/marvinpinto/charlesbot-rundeck/master.svg?style=flat-square\n :target: https://coveralls.io/github/marvinpinto/charlesbot-rundeck?branch=master\n :alt: Code Coverage\n.. image:: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square\n :target: LICENSE.txt\n :alt: Software License\n\nA Charlesbot__ plugin that integrates with Rundeck!\n\n__ https://github.com/marvinpinto/charlesbot\n\n\nHow does this work\n------------------\n\nThis plugin adds the following ``!help`` targets:\n\n.. code:: text\n\n !lock status - Prints the status of the Rundeck deployment lock\n !lock acquire - Acquires the Rundeck deployment lock (only available to Slack admins)\n !lock release - Releases the Rundeck deployment lock (only available to Slack admins)\n\nThe ``!lock`` commands are designed to give folks the ability to quickly and\nefficiently disable (or enable) individual Rundeck__ jobs. This is very useful\nwhen troubleshooting a production issue where you don't want additional\ndeployments going out and adding fuel to the fire.\n\n__ http://rundeck.org/\n\n.. image:: https://raw.githubusercontent.com/marvinpinto/charlesbot-rundeck/master/images/rundeck-lock.png\n\nInstallation\n------------\n\n.. code:: bash\n\n pip install charlesbot-rundeck\n\nInstructions for how to run Charlesbot are over at https://www.charlesbot.org/docs/installation.html.\n\nConfiguration\n-------------\n\nIn your Charlesbot ``config.yaml``, enable this plugin by adding the following\nentry to the ``main`` section:\n\n.. code:: yaml\n\n main:\n enabled_plugins:\n - 'charlesbot_rundeck.rundeck.Rundeck'\n\nCreate a ``rundeck`` section that looks something similar to:\n\n.. code:: yaml\n\n rundeck:\n token: 'XXXX' # Rundeck token\n url: 'http://my.rundeck.test:4440' # Rundeck base URL\n\n # If you would like to set this channel's topic to something relevant\n # whenever Rundeck jobs are locked, set this value. Otherwise you can omit\n # it completely.\n deployment_status_channel: 'charlesbot-rundeck-test-channel'\n\n # project: project name\n # name: job name\n # friendly_name: friendly display name\n lock_jobs:\n - project: 'test-project'\n name: 'deploy-website'\n friendly_name: 'deploy website'\n - project: 'test-project'\n name: 'deploy-app'\n friendly_name: 'deploy app'\n\nRundeck ACL Policy\n~~~~~~~~~~~~~~~~~~\n\nMake sure you have a ``apitoken.aclpolicy`` file that looks something like:\n\n.. code:: yaml\n\n description: API project level access control\n context:\n project: '.*' # all projects\n for:\n # ...\n job:\n - allow: '*'\n # ...\n by:\n group: api_token_group\n\nYou essentially need to give the ``api_token_group`` the ability to enable and\ndisable executions for all jobs in all projects (more details__)\n\n__ http://rundeck.org/docs/administration/access-control-policy.html#special-api-token-authentication-group\n\n\nNotes\n-----\n\nRundeck 2.6.2 introduces the ability to enable or disable ``passive`` mode\nprogramatically using the ``system/executions`` endpoint__. This endpoint\nunfortunately did not work for this use-case because it disables **all**\nRundeck job executions. This plugin is more geared towards folks who would\nrather disable individual job executions.\n\n__ http://rundeck.org/2.6.2/api/index.html#execution-mode\n\n\nDevelopment\n-----------\n\nAt a very minimum, you'll need Python 3.4.3, a functional Docker__ environment,\nand a `Slack bot token`__ to get going. I highly recommend you read the\nCharlesbot docs__ to get an idea of how this all fits together.\n\n__ https://www.docker.com\n__ https://my.slack.com/services/new/bot\n__ https://www.charlesbot.org/docs/\n\nCreate a local ``development.yaml`` file that looks something like the following.\n\n.. code:: yaml\n\n main:\n slackbot_token: 'xoxb-...'\n enabled_plugins:\n - 'charlesbot_rundeck.rundeck.Rundeck'\n\n rundeck:\n token: 'baiY8aw4Ieng0aQuoo'\n url: 'http://my.rundeck.test:4440'\n deployment_status_channel: 'charlesbot-rundeck-test-channel'\n lock_jobs:\n - project: 'test-project'\n name: 'deploy-website'\n friendly_name: 'deploy website'\n - project: 'test-project'\n name: 'deploy-app'\n friendly_name: 'deploy app'\n\nAdd the following entry to your ``/etc/hosts`` file.\n\n.. code:: text\n\n 172.17.0.1 my.rundeck.test\n\nStart up a local Rundeck Docker instance.\n\n.. code:: bash\n\n make rundeck-server\n\nAfter your Rundeck instance is up and running, seed it with some sample\nproject/job data.\n\n.. code:: bash\n\n make rundeck-server-bootstrap\n\nAfter you have all of this in place, you should be ready to spin up your local Charlesbot instance!\n\n.. code:: bash\n\n make run\n\nLicense\n-------\nSee the LICENSE.txt__ file for license rights and limitations (MIT).\n\n__ ./LICENSE.txt", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/marvinpinto/charlesbot-rundeck", "keywords": "slack robot chatops charlesbot charlesbot-rundeck", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "charlesbot-rundeck", "package_url": "https://pypi.org/project/charlesbot-rundeck/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/charlesbot-rundeck/", "project_urls": { "Homepage": "https://github.com/marvinpinto/charlesbot-rundeck" }, "release_url": "https://pypi.org/project/charlesbot-rundeck/0.2.2/", "requires_dist": null, "requires_python": "", "summary": "A Charlesbot plugin that integrates with Rundeck", "version": "0.2.2" }, "last_serial": 1870399, "releases": { "0.0.1": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4a2da37c1294696a03912f839dcf845b", "sha256": "6f6490166b3d63b1d6778f9835a2d88ab6928e906d97e0845b244c663461f0d4" }, "downloads": -1, "filename": "charlesbot-rundeck-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4a2da37c1294696a03912f839dcf845b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6376, "upload_time": "2015-12-19T18:48:09", "url": "https://files.pythonhosted.org/packages/e0/44/a49687c2f987a724b9ccb9202c42fcb3b13d7eda3ab28c689085c406b263/charlesbot-rundeck-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "662d1d9e93b7c88e04098fb24f2800fc", "sha256": "eb8186cb64dd28633f438311b1722358e6bb83488c77208346929c5a43ce5434" }, "downloads": -1, "filename": "charlesbot-rundeck-0.2.1.tar.gz", "has_sig": false, "md5_digest": "662d1d9e93b7c88e04098fb24f2800fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6383, "upload_time": "2015-12-19T18:55:16", "url": "https://files.pythonhosted.org/packages/53/fc/cd64f9b719cc68563122938f59ea6b82e359cb1ef74f219b0eb0a5151df3/charlesbot-rundeck-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "5782192ccc0a994b329cfd8114b3c17a", "sha256": "92012df7a4c290338568db9f2d85bfad77a7916f759b3a05244cd0e77ed77d68" }, "downloads": -1, "filename": "charlesbot-rundeck-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5782192ccc0a994b329cfd8114b3c17a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6589, "upload_time": "2015-12-19T20:56:55", "url": "https://files.pythonhosted.org/packages/c9/6c/660ffd6c94b028c82174050a3080048b1ef6ccf004999d943debf768698f/charlesbot-rundeck-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5782192ccc0a994b329cfd8114b3c17a", "sha256": "92012df7a4c290338568db9f2d85bfad77a7916f759b3a05244cd0e77ed77d68" }, "downloads": -1, "filename": "charlesbot-rundeck-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5782192ccc0a994b329cfd8114b3c17a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6589, "upload_time": "2015-12-19T20:56:55", "url": "https://files.pythonhosted.org/packages/c9/6c/660ffd6c94b028c82174050a3080048b1ef6ccf004999d943debf768698f/charlesbot-rundeck-0.2.2.tar.gz" } ] }