部署环境:AWS EC2 - Ubuntu 18.04
Step1、安装JDK
sudo apt updatesudo apt install openjdk-8-jdk$ java -versionopenjdk version "1.8.0_242"OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
Step2、设置环境变量:JAVA_HOME
sudo vim /etc/environmentJAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"source /etc/environmentecho $JAVA_HOME
Step3、添加JAVA/bin目录到PATH
vim ~/.bashrcexport PATH=$PATH:$JAVA_HOME/binsource ~/.bashrcecho $PATH
Step4、安装Crucible二进制包
wget https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.0.zipunzip fisheye-4.8.0.zip -d /usr/local/cruciblemkdir -p /var/local/crucible/fisheyevim ~/.bashrcexport FISHEYE_HOME="/usr/local/crucible/fecru-4.8.0"export FISHEYE_INST="/var/local/atlassian/fisheye"source ~/.bashrcsudo cp $FISHEYE_HOME/config.xml $FISHEYE_INST/cd $FISHEYE_HOME/bin// 直接运行./run.sh// 后台运行./start.sh// 停止运行./stop.sh
启动成功后,默认端口:8060。curl localhost:8060。
Step5、配置Nginx代理。
server { listen 80; server_name domain_name; access_log /var/log/nginx/crucible.access.log; error_log /var/log/nginx/crucible.error.log; location / { proxy_pass http://127.0.0.1:8060; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; port_in_redirect off; }}
Step6、配置AWS网络安全组
从企业安全问题考虑,因此我们将Crucible部署在AWS VPC内。不允许公网访问。但是又希望 Atlassion Sites 能够访问到我们独立部署的Crucible。因此我们需要在安全组(Security Groups)增加Altassion Sites的IP地址白名单。
Atlassion 官方提供的IP列表为:https://ip-ranges.atlassian.com/
Step7、迁移数据库到Mysql。(Crucible默认使用 HSQLDB。生产环境建议使用其他数据库产品。)
Fisheye / Crucible对于MySQL兼容性:
1、MySQL 5.6,至少版本5.6.11
2、MySQL 5.7,至少版本5.7.5。
创建数据库。
mysql> SET GLOBAL storage_engine = 'InnoDB';mysql> CREATE DATABASE fisheyedb CHARACTER SET utf8 COLLATE utf8_bin;mysql> GRANT ALL PRIVILEGES ON fisheyedb.* TO 'username'@'localhost' IDENTIFIED BY 'password';mysql> FLUSH PRIVILEGES;mysql> QUIT// MySQL 5.6 + mysql> SET GLOBAL default_storage_engine = 'InnoDB';
下载MySQL JDBC连接驱动包:
建议5.1x
本例使用:mysql-connector-java-5.1.38.jar。
将该文件复制到FISHEYE_INST/lib目录。重启Crusible应用程序。
登录到Crucible管理页面:System Settings => DataBase => Configuration。
二、集成JIRA Cloud
无论我们是从JIRA Cloud 集成 Crucible。还是从Crucible集成JIRA Cloud,都可以。在二者之间都可以通过 Create Application links。然后以OAuth进行授权。
在集成的过程中,遇到了问题。
在服务器查询到错误日志:
cd /usr/local/crucible/fecru-4.8.0/var/log$ tail -f atlassian-fisheye-2020-03-04.log error was "signature_invalid", with parameters "{oauth_problem=signature_invalid}..."
这个问题原因是因为我们部署Crucible使用了Nginx反向代理。导致JIRA Cloud 连接Curcible时OAuth认证失败。
解决办法是:配置Crucible代理信息。可以直接网页上修改。Global Settings => Server => Common configuration。
或者直接修改 config.xml文件。
// config.xml<http bind=":8060" proxy-port="443" proxy-scheme="https" proxy-host="xxx"/>
网页上修改,请一定要重启。不然不会生效。因为少了这个步骤,这个问题困扰我许久,差点怀疑人生。
Crucible和JIRA Cloud的状态都显示 CONNECTED 则表示集成成功。
如果您喜欢这篇文章,请考虑关注我。
长沙DevOps联盟 - 关注容器技术,K8S,自动化部署,基础设施架构。