与rundeck集成的charlesbot插件
charlesbot-rundeck的Python项目详细描述
与rundeck集成的Charlesbot插件!
这是如何工作的
此插件添加以下!help目标:
!lock status - Prints the status of the Rundeck deployment lock !lock acquire - Acquires the Rundeck deployment lock (only available to Slack admins) !lock release - Releases the Rundeck deployment lock (only available to Slack admins)
!lock命令旨在使人们能够快速地 有效地禁用(或启用)单个Rundeck作业。这很有用 在排除生产问题时,如果您不希望 部署出动,火上浇油。
安装
pip install charlesbot-rundeck
关于如何运行charlesbot的说明在https://www.charlesbot.org/docs/installation.html结束。
配置
在charlesbotconfig.yaml中,通过添加以下内容启用此插件 main部分的条目:
main:enabled_plugins:-'charlesbot_rundeck.rundeck.Rundeck'
创建一个rundeck节,看起来类似于:
rundeck:token:'XXXX'# Rundeck tokenurl:'http://my.rundeck.test:4440'# Rundeck base URL# If you would like to set this channel's topic to something relevant# whenever Rundeck jobs are locked, set this value. Otherwise you can omit# it completely.deployment_status_channel:'charlesbot-rundeck-test-channel'# project: project name# name: job name# friendly_name: friendly display namelock_jobs:-project:'test-project'name:'deploy-website'friendly_name:'deploywebsite'-project:'test-project'name:'deploy-app'friendly_name:'deployapp'
rundeck acl策略
确保您有一个apitoken.aclpolicy文件,看起来像:
description:API project level access controlcontext:project:'.*'# all projectsfor:# ...job:-allow:'*'# ...by:group:api_token_group
实际上,您需要赋予api_token_group启用和 禁用所有项目中所有作业的执行(更多details)
注释
rundeck 2.6.2引入了启用或禁用passive模式的功能 以编程方式使用system/executionsendpoint。此终结点 不幸的是,这个用例不起作用,因为它禁用了all 运行甲板作业执行。这个插件更适合那些 而是禁用单个作业执行。
开发
至少,您需要python 3.4.3,一个功能性的Docker环境, 还有一个Slack bot token开始。我强烈建议你读 charlesbot docs来了解这一切是如何结合在一起的。
创建一个本地development.yaml文件,如下所示。
main:slackbot_token:'xoxb-...'enabled_plugins:-'charlesbot_rundeck.rundeck.Rundeck'rundeck:token:'baiY8aw4Ieng0aQuoo'url:'http://my.rundeck.test:4440'deployment_status_channel:'charlesbot-rundeck-test-channel'lock_jobs:-project:'test-project'name:'deploy-website'friendly_name:'deploywebsite'-project:'test-project'name:'deploy-app'friendly_name:'deployapp'
将以下条目添加到/etc/hosts文件中。
172.17.0.1 my.rundeck.test
启动本地rundeck docker实例。
make rundeck-server
在rundeck实例启动并运行之后,使用一些示例对其进行播种 项目/作业数据。
make rundeck-server-bootstrap
在所有这些就绪之后,您应该准备好启动本地charlesbot实例!
make run
许可证
请参阅LICENSE.txt文件以了解许可证权限和限制(mit)。