目录

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.1MySQL 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,在获取授权码时,回到我们刚才打开的破解文件窗口,输入NameEmailOrganizationServer 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 passwordConfirm 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 输入 cruciblePassword 输入 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,输入 NamecrucibleDescriptionCrucible Application,再设置密码123456

    

  分别再在 Crowd 中添加 crucible-usersfisheye-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


Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录的更多相关文章

  1. Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录

    目录 目录 1.介绍 1.1.什么是 Bamboo? 2.Bamboo 的官网在哪里? 3.如何下载安装? 4.对 Bamboo 进行配置 4.1.获取授权许可 4.2.一般配置 4.3.数据库配置 ...

  2. Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录

    目录 目录 1.介绍 1.1.什么是Crowd? 2.Crowd 的官网在哪里? 3.如何下载安装? 4.对 Crowd 进行配置 4.1.破解 Crowd 第一步 4.2.破解 Crowd 第二步, ...

  3. GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱

    GitLab11.3.9 的安装方法: 点击查看.   Crowd3.3.2 的安装方法:点击查看.   需要先在 Crowd 创建应用程序,参考 <Docker 创建 Crowd3.3.2 以 ...

  4. Docker创建支持ssh服务的容器和镜像

    原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...

  5. Docker创建MySQL集装箱

    原文链接:Docker创建MySQL集装箱 这样做的目的是创建一个MySQL的image,出来的容器里自己主动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个文件夹并在文件夹下创建一个Doc ...

  6. Docker 创建 Jira Core(Jira SoftWare) 7.12.3 中文版

    目录 目录 1.介绍 1.1.什么是 JIRA Core? 1.2.什么是 JIRA SoftWare 2.JIRA 的官网在哪里? 3.如何下载安装? 4.对 JIRA 进行配置 4.1.JIRA ...

  7. Docker 创建 Confluence6.12.2 中文版

    目录 目录 1.介绍 1.1.什么是Confluence? 2.Confluence的官网在哪里? 3.如何下载安装? 4.对 Confluence 进行配置 4.1.设置 Confluence 4. ...

  8. Docker创建JIRA 7.2.4中文破解版

    目录 目录 1.介绍 1.1.什么是JIRA? 2.JIRA的官网在哪里? 3.如何下载安装? 4.对JIRA进行配置 4.1.打开浏览器:http://localhost:20012 4.2.JIR ...

  9. Docker 创建容器 查看容器状态 - 三

    Docker 创建容器 1.拉取镜像 默认是 docker.io 仓最新镜像 docker pull tomcat 2.运行一个服务容器 docker run -d -p 0.0.0.0:18080: ...

随机推荐

  1. ndarray数据类型

    dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息 In [18]: sim1 = np.array([1,2,3],dtype=np.float64) ...

  2. Eclipse插件:mybatis generator的使用步骤

    一.首先,安装eclipse插件 Help--Eclipser Marketplace中查找:Mybatis Generator 1.3.5安装 二.新建project New--other--查找如 ...

  3. 分布式服务跟踪及Spring Cloud的实现

    在分布式服务架构中,需要对分布式服务进行治理——在分布式服务协同向用户提供服务时,每个请求都被哪些服务处理?在遇到问题时,在调用哪个服务上发生了问题?在分析性能时,调用各个服务都花了多长时间?哪些调用 ...

  4. 巩固java(一)----java与对象

         C语言是一种面向过程语言,在解决问题时,要先分析出问题的解决步骤,然后按顺序一步步实现,使用的时候一个一个调用.所以面向过程编程是以过程为中心的.      不同于面向过程编程,面向对象编程 ...

  5. grpc.go

    package,,), etcd.WithPrefix(), etcd.WithPrevKV()}     gw.wch = gw.c.Watch(gw.ctx, gw.target, opts... ...

  6. 在当前图纸中创建一个表格, AcDbTable 类

    Table 例子学习笔记在这个例子中,ARX向我们展示了ACDBTABLE类的一些基本操作方法,ACDBTABLE类是ACAD2005及其以后的产品,应该是说ACDBDATATABLE的升级产品,Ac ...

  7. bzoj3812&uoj37 主旋律

    正着做不好做,于是我们考虑反着来,如何计算一个点集s的答案呢,一定是所有的方案减去不合法的方案,不合法的方案一定是缩完点后是一个DAG,那么就一定有度数为0的scc,于是我们枚举s的子集,就是说这些点 ...

  8. css:id选择器的权重>class选择器的权重=属性选择器的权重>元素选择器

    最近的项目要自己写前端了,重新学习下前端的一下基本知识. 一般在css样式表中,上面的会被下面的覆盖,如下图,文字会显示蓝色: 所以按照正常的来说,下面的css样式,测试的文字应该还是蓝色 但结果,测 ...

  9. 禁用后退键 BackSpace

    <script language="JavaScript">document.onkeydown = check;function check(e) {    var  ...

  10. 用keras实现人脸关键点检测(2)

    上一个代码只能实现小数据的读取与训练,在大数据训练的情况下.会造内存紧张,于是我根据keras的官方文档,对上一个代码进行了改进. 用keras实现人脸关键点检测 数据集:https://pan.ba ...