zoukankan      html  css  js  c++  java
  • jenkins 集成 redmine 账户验证的方案

    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

  • 相关阅读:
    城市的划入划出效果
    文本溢出省略解决笔记css
    长串英文数字强制折行解决办法css
    Poj 2352 Star
    树状数组(Binary Indexed Trees,二分索引树)
    二叉树的层次遍历
    Uva 107 The Cat in the Hat
    Uva 10336 Rank the Languages
    Uva 536 Tree Recovery
    Uva10701 Pre, in and post
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154300.html
Copyright © 2011-2022 走看看