目錄
目錄- 目錄
- 1、介紹
- 1.1、什么是 Crucible?
- 2、Crucible 的官網在哪里?
- 3、如何下載安裝?
- 4、對 Crucible 進行配置
- 4.1、破解 Crucible 第一步
- 4.2、破解 Crucible 第二步,獲取授權許可
- 4.2、連接到JIRA Connect to JIRA
- 4.3、設定默認管理員帳號 Set administrator password
- 4.7、完成安裝 Start working with Crucible
- 4.8、查看破解后的授權資訊
- 4.9、設定電子郵件 Mail Server
- 4.10、設定資料庫 Database Configuration
- 5、設定 Crucible 使用 Crowd 認證
- 5.1、在 Crowd 中添加 Crucible 應用程式
- 5.2、設定 Crucible 的用戶目錄
- 5.3、啟用 Crucible 與 Crowd 的 SSO 集成登錄
- 6、相關文章
- 6.1、Crucible Adding an Application
- 6.2、backing-up-and-restoring-crucible-data
1、介紹
1.1、什么是 Crucible?
Crucible 是一個協作式代碼審查,以下是官網的功能介紹:
-
交付高質量代碼
??跨 SVN、Git、Mercurial,、CVS 和 Perforce 審查代碼、討論更改、共享知識和識別缺陷, -
審查
??創建基于作業流的正式或快速代碼審查,并指派團隊成員作為審查者, -
討論
??將所有代碼審查轉換為執行緒討論,并針對具體源代碼行、檔案或整個變更集合進行評論, -
跟蹤
??借助提交、審查和評論等代碼活動的統一視圖,針對重要事項采取行動, -
報告
??通過代碼庫中尚未得到充分審查的部分資料提高代碼質量,快速查看審查狀態及可能執行審查的人員,
2、Crucible 的官網在哪里?
https://www.atlassian.com/
3、如何下載安裝?
我將 Crucible 4.6.1 直接封裝到了 Docker 鏡像中,如何安裝Docker,請參考這篇文章<Centos7的安裝、Docker1.12.3的安裝,以及Docker Swarm集群的簡單實體>,Crucible 4.6.1版本中,包含了 Fisheye,就不單獨講如何安裝 Fisheye ,
????
??以下實體中安裝 Crucible 4.6.1 ,需要用到 MySQL 5.7,如果你已經安裝完Docker,可以下載已經做好的 <docker-compose.yml>,檔案內容如下,請注意修改/srv/your_folder/my.ini的位置為你下載后的檔案位置:
version: '3'
# https://docs.docker.com/compose/compose-file/
# support Docker version 17.05.0-ce
services:
#################################### crucible ######################################################
##############################
# crucible_mysql
##############################
crucible_mysql:
image: idoall/mysql:5.7
hostname: crucible_mysql
ports:
- "6033:3306"
volumes:
- /srv/your_folder/my.ini:/etc/mysql/my.cnf
networks:
- mshk-crucible
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=crucible
- MYSQL_USER=crucible
- MYSQL_PASSWORD=crucible_mshk
- character-set-server=utf8
- collation-server=utf8_bin
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
##############################
# crucible
##############################
crucible:
image: idoall/ubuntu16.04-jira-crucible:4.6.1
hostname: crucible
ports:
- "80:8060"
networks:
- mshk-crucible
depends_on:
- crucible_mysql
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
# 統一網路設定
networks:
mshk-crucible:
driver: overlay
我們運行以下命令,使用 Docker Stack 的編排服務,來創建 Crucible 4.6.1 以及 MySQL 5.7 服務:
$ docker stack deploy -c docker-compose.yml mshk_crucible
Creating network mshk_crucible_mshk-crucible
Creating service mshk_crucible_crucible
Creating service mshk_crucible_crucible_mysql
啟動成功后,使用下面的命令,可以看到 Crucible 4.6.1 和 MySQL 5.7 的服務運行狀態:
$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
jortvvf4593r mshk_crucible_crucible replicated 1/1 idoall/ubuntu16.04-jira-crucible:4.6.1 *:80->8060/tcp
2kaku3m4yjzd mshk_crucible_crucible_mysql replicated 1/1 idoall/mysql:5.7 *:6033->3306/tcp
再等幾分鐘以后,在<docker-compose.yml>檔案中,可以看到,我們對 Crucible 做了80->8060埠的映射,所以打開:http://localhost ,能夠看到如下頁面,說明運行成功:
這時的等待是因為
Crucible的服務需要啟動,MySQL 5.7的資料庫需要創建,

4、對 Crucible 進行配置
4.1、破解 Crucible 第一步
Crucible 4.6.1 的破解檔案已經打包到了 Docker 中,
??先用 docker ps 命令,查看服務生成的容器名稱,本文測驗時生成的容器名稱是 mshk_crucible_crucible.1.zro8f01t4ts07npflxhsnzwkn:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e68cb73ae195 idoall/ubuntu16.04-jira-crucible:4.6.1 "/bin/bash -e /init/…" 7 minutes ago Up 7 minutes 8060/tcp mshk_crucible_crucible.1.zro8f01t4ts07npflxhsnzwkn
32b377530f1a idoall/mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 3306/tcp mshk_crucible_crucible_mysql.1.y3x8xlkch7tkk4xvley7kcvx9
Docker 編排服務后的容器名稱比較長,把容器名稱賦值到一個變數CONTAINERNAME ,這樣后面使用起來會很方便,
??將要破解的檔案、破解工具從容器中復制到本地,并將要破解的檔案atlassian-extras-2.5.jar重命名為atlassian-extras-2.3.1-SNAPSHOT.jar:
$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_crucible_crucible.1`
$ docker cp $CONTAINERNAME:/home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar ./atlassian-extras-2.3.1-SNAPSHOT.jar
$ docker cp $CONTAINERNAME:/usr/src/_crucible/crucible_keygen.jar .
在當前目錄,運行以下命令,打開破解檔案,在彈出的破解檔案視窗中,點擊.patch!,找到剛才從容器中復制出來的atlassian-extras-2.3.1-SNAPSHOT.jar檔案,破解成功后,在破解工具的左下方,會提示jar successfully patched,這時不要著急關閉破解檔案的視窗,后面還會用到,
$ java -jar crucible_keygen.jar

停止 Crucible 容器運行的服務;同時將 Crucible 容器的原檔案 atlassian-extras-2.3.1-SNAPSHOT.jar 重命名為atlassian-extras-2.3.1-SNAPSHOT.jar.bak做備份;再將我們破解后的atlassian-extras-2.3.1-SNAPSHOT.jar檔案,復制到容器中重命名為atlassian-extras-2.5.jar ;啟動容器;下面是本次操作的命令:
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crucible/bin/stop.sh;mv /home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar /home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar.bak'
$ docker cp atlassian-extras-2.3.1-SNAPSHOT.jar $CONTAINERNAME:/home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crucible/bin/start.sh'
這時在瀏覽器,輸入 http://localhost,打開 Crucible ,能夠打開以界面,說明破解的第一步成功,
4.2、破解 Crucible 第二步,獲取授權許可
點擊 Enter existing license,在獲取授權碼時,回到我們剛才打開的破解檔案視窗,輸入Name、Email、Organization、Server ID,點擊.gen!,生成授權碼,并將授權碼復制到頁面中,點擊Next,
?
4.2、連接到JIRA Connect to JIRA
如果之前搭建過 JIRA (如何搭建JIRA,請參考 <Docker 創建 Jira Core/SoftWare 7.12.3 中文版>),在 JIRA Base URL 輸入 JIRA的URL地址,在Admin Username 輸入超級管理員的帳號,在 Admin Password 輸入超級管理員的密碼, Advanced Options... 在 Crucible Base URL 輸入當前 Crucible 配置的域名,然后點擊 Connect to JIRA .

4.3、設定默認管理員帳號 Set administrator password
輸入Create password、Confirm password,點擊Next,

4.7、完成安裝 Start working with Crucible
能夠看到安裝完成的頁面,點擊 add repository,輸入 超級管理員 的密碼,就可以進入到 Crucibile 的配置頁面
??
4.8、查看破解后的授權資訊
點擊左側的 System Information,可以看到 License 資訊,過期日期已經延長到了2337年,

??做完上面的步驟,Crucible 的安裝基本結束,
4.9、設定電子郵件 Mail Server
登錄以后,在左側找到Global Settings->Server Settings,拖動頁面,可以看到 Mail Server,然后點擊 Edit config,去進行郵件配置,
4.10、設定資料庫 Database Configuration
登錄以后,在左側找到System Settings->DataBase,可以看到 Database Configuration,然后點擊 Edit,去進行資料庫配置,
??在 Type 選擇 MySQL, 在 URL 輸入 jdbc:mysql://crucible_mysql:3306/crucible,User Name 輸入 crucible,Password 輸入 crucible_mshk ,點擊 Test connection,能夠看到提示 Connection succeeded ,最后點擊 Save & Migrate進行保存和資料遷移,在彈出層上能夠看到運行成功,
??
5、設定 Crucible 使用 Crowd 認證
5.1、在 Crowd 中添加 Crucible 應用程式
步驟可以參考 文章<Docker 創建 Crowd 3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 登錄>的 4.12章節:添加 JIRA 和 Confluence 應用程式,步驟一樣,只是在選擇 Application type 時,在下拉框中選擇 Crucible,輸入 Name 為 crucible,Description是Crucible Application,再設定密碼123456,
????
??分別再在 Crowd 中添加 crucible-users 和 fisheye-users 兩個用戶組
5.2、設定 Crucible 的用戶目錄
第一步:使用管理員帳號登錄到 Crucible 后臺,左側點擊 User Settings->User Directories,然后點擊 Add Directory 在彈出的視窗中選擇 Atlassian Crowd ,點擊 Next,
??第二步:在 Application Name 處輸入剛才設定的 crucible 應用程式名稱 crucible,在應用程式密碼輸入剛才我們設定的密碼123456,點擊 Test Settings,能夠看到如下圖中有綠色的提示框,提示 Connection test successful. ,最后點 Save and Test,
??第三步:在 用戶目錄,可以看到,我們剛添加的 Crowd Server 目錄,

調整 Crowd Server 目錄的順序到第一行,調整后的順序如下:

5.3、啟用 Crucible 與 Crowd 的 SSO 集成登錄
修改 Crucible 容器中的檔案 /home/work/_data/_jira_crucible/config.xml ,添加 <crowd sso-enabled="true"/> 注冊下面添加的位置,不要錯了,
...
<security allow-anon="true" allow-cru-anon="true">
<built-in>
<signup enabled="true"/>
</built-in>
<!-- Crowd 的 SSO 支持 -->
<crowd sso-enabled="true"/>
<admins>
<system-admins/>
</admins>
<avatar>
<disabled/>
</avatar>
</security>
...
通過以下命令,重啟 Crucible 容器內的服務,使用在Crowd 中配置的用戶登錄,就可以測驗效果了,
$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_crucible_crucible.1`
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crucible/bin/stop.sh;/home/work/_app/_jira_crucible/bin/start.sh'
6、相關文章
6.1、Crucible Adding an Application
6.2、backing-up-and-restoring-crucible-data
博文作者:迦壹
博客地址:Docker 創建 Crucible4.6.1 以及與 Crowd3.3.2 實作 SSO 單點登錄
轉載宣告:可以轉載, 但必須以超鏈接形式標明文章原始出處和作者資訊及著作權宣告,謝謝合作!
位元幣地址:1KdgydfKMcFVpicj5w4vyn3T88dwjBst6Y
以太坊地址:0xbB0a92d634D7b9Ac69079ed0e521CC2e0a97c420
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218421.html
標籤:其他
上一篇:Docker 創建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 單點登錄
下一篇:GitLab11.3.9 使用 Crowd3.3.2 的帳號實作 SSO 單點登錄,以及GitLab配置騰訊企業郵箱
