jenkins 集成 redmine 賬戶驗證的方案
賴勇浩( http://laiyonghao.com )
動機
Jenkins 是最著名的持續(xù)集成工具,又因為它開源免費、插件眾多,成為了許多團隊做持續(xù)集成的首選。
Jenkins 本身支持多種賬戶驗證方案,但最棒的是它支持驗證插件,可以把賬戶驗證的工作完全托管給插件,這就為它支持更多的賬戶驗證方案提供了無限可能。
script-realm-plugin 無疑是一個天才的驗證插件,它的天才之處在于可以運行一個命令,并通過環(huán)境變量的方式把賬號密碼傳遞給這個命令,然后檢驗它的 exit code 獲得驗證結(jié)果。這個命令可以是任意語言編寫的程序,它可以是一段 shell 腳本,也可以是 C 語言編寫的一個程序。在今天它是我們使用 python 編寫的一個小程序:redmine-auth
redmine-auth
redmine-auth 是一個讀取 redmine 賬戶信息的腳本,實現(xiàn)賬戶驗證。
得益于 redmine-auth 使用了 SQLAlchemy 的 database orm,只要 SQLAlchemy 支持的數(shù)據(jù)庫,redmine-auth 都可以讀取。所以無論 redmine 使用的是 MySQL 還是 postgresql,甚至是 oracle/mssql/sqlite,都可以無縫地使用 redmine-auth 進行賬戶驗證。
安裝
首先,確保安裝了 jenkins 和它的 script-realm-plugin 插件。
然后,確保安裝了 python 和 pip,接下來的工作就很簡單,運行使用:
?
pip install -U redmine-auth
?
它會自動安裝依賴的 SQLAlchemy,但是數(shù)據(jù)庫驅(qū)動需要你手動安裝,比如 MySQLdb 需要你自行安裝好。
配置
首先,進入 jenkins 的 Configure Global Security 頁面,確保選擇了“啟用安全”,然后在“訪問控制”-> “安全域” 那里選擇“Authenticat via custom script”(需要安裝插件以后才有),最后,在 login command 輸入框中填入以下內(nèi)容:
?
redmine-auth-jenkins --conn-str=連接字符串
?
其中“連接字符串”是一個符合 SQLAlchemy 連接字符串定義的字符串,如:
?
mysql://user:pswd@localhost/redmine
?
怎么構(gòu)造你自己的連接字符串,請參考 SQLAlchemy 的文檔(http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine)。簡單摘抄最關(guān)鍵的一句放在下面:
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 授權(quán)的開源項目,主頁: https://github.com/laiyonghao/redmine-auth
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
