Atlassian全家桶及其插件激活方法
很多团队都采用 Atlassian 公司出品的 Jira、Confluence 作为团队的项目管理、知识管理平台,zhile 大佬对其写了一个通杀的 agent,并于GitHub、码云上开源(可惜目前均已由于DMCA 被BAN)。Alliot 大致帮小伙伴整理了一下该 agent 的使用方法以及在已用其他方式激活过的情景下,如何使用该 agent 激活我们所需要的插件。
前言
声明: 感谢 zhile 与 cptactionhank 两位大佬,一切功劳归与两位大佬。文中内容仅用于个人测试尝鲜,从未用于多人使用场景。读者如需商业使用请向Atlassian官方购买正版,一切商用侵权行为等导致的后果,归咎于直接使用者,与两位大佬以及 Alliot 无关。
原作者的仓库已无法访问,下文中使用到的 atlassian-agent.jar
下载地址(请注意,如继续,则默认表示您同意以上申明):1
2
3# 解压密码www.iots.vip,将jpg后缀改成zip解压
阿里云盘链接:https://www.aliyundrive.com/s/R6kbGyEZ1qk
通过这个链接注册可以多领取500G容量: https://pages.aliyundrive.com/mobile-page/web/beinvited.html?code=f8fd344
部署
直接部署
直接部署需要较长篇幅配置较多的基础环境,暂时没时间写,优先使用 Docker 尝鲜测试吧。
Docker
Jira
打包镜像
直接在这位大佬的镜像基础上打入破解包。
新建文件 Dockerfile 内容如下:1
2
3
4
5
6
7
8
9
10# 这边仅测试了7版本,其他版本理论上也没啥问题,自行测试一下
FROM cptactionhank/atlassian-jira-software:7.13.1
USER root
# 将破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/jira/
# 设置启动加载
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/jira/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/jira/bin/setenv.sh
将破解包 atlassian-agent.jar 置于 Dockerfile 同一个目录下,构建生成 Docker 镜像并启动:1
2
3
4
5在当前目录下执行构建,命令最后的“.”不要丢!
docker build -t jira/jira:v7.13.1 .
启动容器,测试环境JVM堆大小等环境变量可以不用指定,生产必须指定,切记
docker run -itd -p 8080:8080 --name jira -v "/data/jira/data:/var/atlassian/jira" --env "CATALINA_OPTS=-Xms1024m -Xmx1024m -Datlassian.plugins.enable.wait=300" jira/jira:v7.13.1
等待片刻后,浏览器打开 IP:8080,进入初始化安装阶段。
初始化安装
选择手动配置,如图:
下一步,选择数据库(测试可以直接用内置数据库,生产请选择其他数据库)
数据库建库请使用如下 SQL 来建库:1
CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
选择好我们的数据库之后,下一步。
这里是最关键的一步——激活,这里需要将服务器ID(server-id) 留存备用:
这里假设我的服务器ID为 AAAA-BBBB-CCCC-DDDD:
获取激活码
打开命令行:1
2
3
4
5
6
7
8
9
10
11
12
13
14打开我们的jira容器shell
docker exec -it `docker ps|grep jira|awk '{print $1}'` /bin/bash
cd /opt/atlassian/jira/
通过破解包生成激活码
-p 产品名称 jira
-m 邮箱(test@test.com)
-n 用户名,这个随意
-o 部署的入口地址
-s 服务器ID(BY9B-GWD1-1C78-K2DE)
java -jar atlassian-agent.jar -p jira -m test@test.com -n BAT -o https://www.iots.vip -s AAAA-BBBB-CCCC-DDDD
复制上面得到的 licences 填入许可证关键字中,下一步,稍等若干分钟即可初始化完成。
Confluence
基本步骤与 Jira 一致,唯二不同的是 Dockerfile 的不同以及生成激活码的时候 -p 后面的参数不同,这里附上 Dockerfile:1
2
3
4
5
6
7
8
9FROM cptactionhank/atlassian-confluence:6.15.9
USER root
# 将破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/confluence/
# 设置启动加载
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/confluence/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/confluence/bin/setenv.sh
构建与运行命令为:1
2
3
4
5构建
docker build -f Dockerfile -t confluence/confluence:6.15.9 .
启动容器,测试环境JVM堆大小等环境变量可以不用指定,生产必须指定,切记
docker run -itd -p 8090:8090 --name confluence -v "/data/confluence/data:/var/atlassian/confluence" --env "CATALINA_OPTS=-Xms1024m -Xmx1024m -Datlassian.plugins.enable.wait=300" confluence/confluence:6.15.9
生成激活码:1
2
3
4
5
6
7
8打开我们的jira容器shell
docker exec -it `docker ps|grep confluence|awk '{print $1}'` /bin/bash
cd /opt/atlassian/confluence/
通过破解包生成激活码
java -jar atlassian-agent.jar -p conf -m test@test.com -n BAT -o https://www.iots.vip -s AAAA-BBBB-CCCC-DDDD
插件破解方法
进入管理面板中的插件页面中,选择想要破解的插件,点击“立即购买”:
等待下载安装完成后,进入插件管理页面,选择刚才安装的插件,得到应用密钥备用:
再次进入命令行:1
2
3
4
5
6
7
8打开我们的jira容器shell
docker exec -it `docker ps|grep jira|awk '{print $1}'` /bin/bash
cd /opt/atlassian/jira/
生成激活码,这里后面添加-d参数
java -jar atlassian-agent.jar -p "这里填写得到的插件的应用密钥" -m test@test.com -n BAT -o https://www.iots.vip -s AAAA-BBBB-CCCC-DDDD -d
将得到的 licences 填入“许可证关键字”中,选择“更新”即可完成激活。
已用其他方式激活的情况下
如果已经通过其他方式破解激活了 Jira,需要用本文的方式来激活,则需要先从数据库中得到 licences ,用破解包生成的 licences 替换。
生成 licenses
进入后台管理面板页,在系统信息中获得服务器ID (管理——系统——系统信息——服务器 ID)
之后,参照上文获取激活码(license),保存备用。
修改 licenses
我们需要进入数据库,使用上文得到的激活码(license)来替换原有的 license。
登陆数据库
忘记数据库连接信息的,可以通过数据库配置文件来得到:
我这边的路径为: /data01/atlassian/application-data/jira/dbconfig.xml
具体的路径请根据自己实际的安装位置来确定。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26cat /data01/atlassian/application-data/jira/dbconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>mysql</database-type>
<jdbc-datasource>
<url>jdbc:mysql://127.0.0.1:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=default_storage_engine=InnoDB</url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<username>jiradb</username>
<password>123456</password>
<pool-min-size>20</pool-min-size>
<pool-max-size>20</pool-max-size>
<pool-max-wait>30000</pool-max-wait>
<validation-query>select 1</validation-query>
<min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
<time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
<pool-max-idle>20</pool-max-idle>
<pool-remove-abandoned>true</pool-remove-abandoned>
<pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
<pool-test-on-borrow>false</pool-test-on-borrow>
<pool-test-while-idle>true</pool-test-while-idle>
<validation-query-timeout>3</validation-query-timeout>
</jdbc-datasource>
</jira-database-config>
则连接信息为:127.0.0.1:3306 用户名jiradb,密码1234561
2进入sql
mysql -ujiradb -p1234561
2
3
4
5
6
7
8
9
10
11
12# 执行SELECT * FROM productlicense\G获得原来的激活信息(别忘了备份旧的license信息,方便回退):
MySQL [jiradb]> SELECT * FROM productlicense\G
*************************** 1. row ***************************
ID: 10200
LICENSE: AAABZg0xxxx
*************************** 2. row ***************************
ID: 10201
LICENSE: AAABcQ0ODAoxxxx
# 利用上面获取licences的方式获取licences后,更新记录
update productlicense set license ='xxxxx' WHERE id=10200;
update productlicense set license ='xxxxx' WHERE id=10201;
Confluence 同理,Alliot 这边的 Confluence 的配置文件路径为: /data01/app/atlassian/application-data/confluence/confluence.cfg.xml
基本一眼就能看出来,这里就不多啰嗦。
修改启动命令
停止 jira 后,在 setenv.sh 文件末尾加入:1
export JAVA_OPTS="-javaagent:/[路径]/atlassian-agent.jar ${JAVA_OPTS}"
重新启动即可。