jenkins 集成 redmine 账户验证的方案

系统 2551 0

jenkins 集成 redmine 账户验证的方案

赖勇浩( http://laiyonghao.com

动机

Jenkins 是最著名的持续集成工具,又因为它开源免费、插件众多,成为了许多团队做持续集成的首选。

Jenkins 本身支持多种账户验证方案,但最棒的是它支持验证插件,可以把账户验证的工作完全托管给插件,这就为它支持更多的账户验证方案提供了无限可能。

script-realm-plugin 无疑是一个天才的验证插件,它的天才之处在于可以运行一个命令,并通过环境变量的方式把账号密码传递给这个命令,然后检验它的 exit code 获得验证结果。这个命令可以是任意语言编写的程序,它可以是一段 shell 脚本,也可以是 C 语言编写的一个程序。在今天它是我们使用 python 编写的一个小程序:redmine-auth

redmine-auth

redmine-auth 是一个读取 redmine 账户信息的脚本,实现账户验证。

得益于 redmine-auth 使用了 SQLAlchemy 的 database orm,只要 SQLAlchemy 支持的数据库,redmine-auth 都可以读取。所以无论 redmine 使用的是 MySQL 还是 postgresql,甚至是 oracle/mssql/sqlite,都可以无缝地使用 redmine-auth 进行账户验证。

安装

首先,确保安装了 jenkins 和它的 script-realm-plugin 插件。

然后,确保安装了 python 和 pip,接下来的工作就很简单,运行使用:

 

    pip install -U redmine-auth
  

 

它会自动安装依赖的 SQLAlchemy,但是数据库驱动需要你手动安装,比如 MySQLdb 需要你自行安装好。

配置

首先,进入 jenkins 的 Configure Global Security 页面,确保选择了“启用安全”,然后在“访问控制”-> “安全域” 那里选择“Authenticat via custom script”(需要安装插件以后才有),最后,在 login command 输入框中填入以下内容:

 

    redmine-auth-jenkins --conn-str=连接字符串
  

 

其中“连接字符串”是一个符合 SQLAlchemy 连接字符串定义的字符串,如:

 

    mysql://user:pswd@localhost/redmine
  

 

怎么构造你自己的连接字符串,请参考 SQLAlchemy 的文档(http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine)。简单摘抄最关键的一句放在下面:

The string form of the URL is dialect+driver://user:password@host/dbname[?key=value..], where dialect is a database name such as mysql, oracle, postgresql, etc., and driver the name of a DBAPI, such as psycopg2, pyodbc, cx_oracle, etc. Alternatively, the URL can be an instance of URL.

其它

redmine-auth 是一个 MIT 授权的开源项目,主页: https://github.com/laiyonghao/redmine-auth

jenkins 集成 redmine 账户验证的方案


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论