惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 司徒正美
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
博客园_首页
博客园 - 【当耐特】
Cisco Talos Blog
Cisco Talos Blog
J
Java Code Geeks
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
AWS News Blog
AWS News Blog
S
Schneier on Security
NISL@THU
NISL@THU
F
Fortinet All Blogs
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
量子位
IT之家
IT之家
T
The Exploit Database - CXSecurity.com
爱范儿
爱范儿
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
T
Tor Project blog
V
Vulnerabilities – Threatpost
V
Visual Studio Blog
宝玉的分享
宝玉的分享
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Privacy International News Feed
S
Securelist
P
Palo Alto Networks Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
T
Tenable Blog
B
Blog
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threat Research - Cisco Blogs
T
Threatpost

博客园 - Lion

如何使用Solidity和Hardhat构建你自己的NFT以及NFT交易市场 如何将 ERC20 代币在一次交易中发送到多个地址? ROS+LEDE最强上网软路由 Flume1.9.0的安装、部署、简单应用(含分布式、与Hadoop3.1.2、Hbase1.4.9的案例) 通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出 Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建 Centos7 二进制安装 Kubernetes 1.13 - Lion Centos7 使用 kubeadm 安装Kubernetes 1.13.3 - Lion go get获取gitlab私有仓库的代码 Nginx设置Https反向代理,指向Docker Gitlab11.3.9 Https服务 - Lion Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录 GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱 - Lion Truffle 4.0、Geth 1.7.2、TestRPC在私有链上搭建智能合约 Go-Ethereum 1.7.2 结合 Mist 0.9.2 实现众筹合约的实例 Go-Ethereum 1.7.2 结合 Mist 0.9.2 实现代币智能合约的实例 以太坊智能合约 Solidity 的常用数据类型介绍 - Lion 使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署 - Lion 使用 Go-Ethereum 1.7.2搭建以太坊私有链 cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台
Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录
Lion · 2018-12-13 · via 博客园 - Lion

目录

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 的数据库需要创建。

Crucible-1

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-2

停止 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
Crucible-3

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 .
Crucible-4

4.3、设置默认管理员帐号 Set administrator password

输入Create passwordConfirm password,点击Next
Crucible-5

4.7、完成安装 Start working with Crucible

能够看到安装完成的页面,点击 add repository,输入 超级管理员 的密码,就可以进入到 Crucibile 的配置页面
  Crucible-6

4.8、查看破解后的授权信息

点击左侧的 System Information,可以看到 License 信息,过期日期已经延长到了2337年。
Crucible-7
  做完上面的步骤,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进行保存和数据迁移,在弹出层上能够看到运行成功。
  Crucible-10

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 目录。
Crucible-8

调整 Crowd Server 目录的顺序到第一行,调整后的顺序如下:
Crucible-9

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