临时接到一个任务,某测试环境搭建一套Conflunce知识库,决定采用容器方式来部署,找到了这篇文档 容器化部署Confluence知识库,没有坑点,因此本文基本上为转载加上自己实践截图,增加了 docker 安装和 maven 环境安装 2 个部分内容。
- 操作系统
版本:CentOS Linux release 7.7.1908 (Core) vm里面开设一台 8c,16G,200G 配置的虚拟机。 -
Docker
版本:Docker version 19.03.12
安装方式:yum 命令安装 - MySQL
版本:5.7.29
安装方式:容器化 - Confluence
版本:7.5.2
安装方式:容器化
在shell中运行以下命令,安装docker基础环境
yum install docker-ce yum-utils device-mapper-persistent-data lvm2 -y yum-config-manager --add-repo https: //download .docker.com /linux/centos/docker-ce .repo yum install docker-ce -y systemctl enable docker && systemctl start docker |
在shell中运行以下命令,容器化部署MySQL数据库:
docker run --detach --restart=always --name mysql --hostname mysql --publish 3306:3306 --volume /var/lib/mysql:/var/lib/mysql --env MYSQL_ROOT_PASSWORD=jirapassword mysql:5.7.29 --innodb_log_file_size=2GB --max_allowed_packet=256M
这里直接选用了官网的 mysql:5.7.29 版基础镜像,,公开主机的 3306 端口,通过目录挂载 /var/lib/mysql 作为 mysql 数据目录,最大数据包256M,mysql日志2GB,密码 jirapassword
创建用户和数据库
在shell中运行以下命令,创建confluence的库表和用户:
docker exec-it mysql mysql -uroot -pjirapassword-e "CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;"
docker exec-it mysql mysql -uroot -pjirapassword-e "CREATE USER 'confluence'@'%' IDENTIFIED BY 'jirapassword';"
docker exec-it mysql mysql -uroot -pjirapassword-e "GRANT ALL ON confluence.* TO 'confluence'@'%';"
docker exec-it mysql mysql -uroot -pjirapassword-e "FLUSH PRIVILEGES;"
关于破解部分,仅限测试研究用,切记!官方10人以下似乎是免费。
在shell中运行以下命令,克隆atlassian-agent工具的源码,然后切换至最新分支:
git clone https://gitee.com/pengzhile/atlassian-agent.git
cd atlassian-agent
git checkout v1.2.3
在shell中运行以下命令,使用maven进行编译和打包:
mvn package
编译打包完成之后,可以在target
目录中找到atlassian-agent-jar-with-dependencies.jar
文件,这就是破解工具!
ps. 这个新环境当前还没有maven,需要执行如下步骤:
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar zxvf apache-maven-3.6.3-bin.tar.gz
mkdir -p /usr/local/dev/maven
mv apache-maven-3.6.3 /usr/local/dev/maven/
vim ~/.bash_profile
#添加如下几行
#maven
M2_HOME=/usr/local/dev/maven/apache-maven-3.6.3
export M2_HOME
PATH=${PATH}:${M2_HOME}/bin
export PATH
#变量生效
source ~/.bash_profile
在shell中运行以下命令,在宿主机上创建Confluence的工作目录,然后将破解工具复制过去:
sudo mkdir -pv /var/atlassian/application-data/confluence
sudo cp target/atlassian-agent-jar-with-dependencies.jar /var/atlassian/application-data/confluence/atlassian-agent.jar
在shell中运行以下命令,容器化部署Confluence知识库:选择了confluence-server 官方最新版 7.5.2 的镜像
docker run --detach --restart=always --volume /var/atlassian/application-data/confluence:/var/atlassian/application-data/confluence --volume /etc/localtime:/etc/localtime:ro --name=confluence --hostname=confluence --link mysql --env ATL_JDBC_URL="jdbc:mysql://mysql:3306/confluence?sessionVariables=tx_isolation='READ-COMMITTED'&useUnicode=true&characterEncoding=utf8&autoReconnect=true" --env ATL_JDBC_USER=confluence --env ATL_JDBC_PASSWORD=jirapassword --env ATL_DB_TYPE=mysql --env JAVA_OPTS="-javaagent:/var/atlassian/application-data/confluence/atlassian-agent.jar ${JAVA_OPTS}" --publish 80:8090 --publish 443:8091 --publish 4430:9083 atlassian/confluence-server:7.5.2
挂载了容器的数据目录/var/atlassian/application-data/confluence、
主机名confluence、mysql数据库主机名mysql、
以及一些环境变量值(如前面的JAVA_OPTS="-javaagent:/var/atlassian/application-data/confluence/atlassian-agent.jar)用于破解,
端口映射默认的http 8090至主机80端口、8091的https端口至443、Balsamiq线框图插件的端口9083至4430端口
补充说明:
上面的代码块当中ATL_JDBC_URL=当中的 & 如果不是 & 转义 格式,conflunce 启动后第一步 会遇到类似报错
Error on line 18 of document : The reference to entity "useUnicode" must end with the ';' delimiter. Nested exception: The reference to entity "useUnicode" must end with the ';' delimiter.
解决方法如下,直接修改 /var/atlassian/application-data/confluence/confluence.cfg.xml 第24行,确保将&全换成& 格式
在Shell中运行以下命令,下载MySQL的JDBC驱动包,然后将其解压并拷贝至容器,最后重启容器:
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
tar xvzf mysql-connector-java-5.1.48.tar.gz
docker cp mysql-connector-java-5.1.48/mysql-connector-java-5.1.48.jar confluence:/opt/atlassian/confluence/lib
docker restart confluence
在浏览器中打开http://10.10.10.10
,进入Confluence的应用选择页面,如下图所示:
点击“Next”按钮,进入授权页面,如下图所示:
记住上图红框中的Server ID,这是Confluence为服务器生成的唯一标识符,每台服务器都不相同。在Shell中运行以下命令,破解Confluence知识库:
docker exec-it confluence java -jar /var/atlassian/application-data/confluence/atlassian-agent.jar \
-p conf -m <mailbox>-n <username>-o <organization>-s <server_id>
atlassian-agent.jar
是Confluence知识库和插件的破解工具,其用法如下所示:
-
-d
或--datacenter
:数据中心许可证,一般不用。-h
或--help
:输出帮助信息。-m
或--mail
:许可证使用的邮箱。-n
或--name
:许可证使用的用户名。-o
或--organisation
:许可证使用的组织/URL。-p
或--product
:需要破解的产品名称或密钥。支持的产品和插件:- crowd:Crowd
- questions:Questions plugin for Confluence
- crucible:Crucible
- capture:Capture plugin for JIRA
- conf:Confluence
- training:Training plugin for JIRA
- bitbucket:Bitbucket
- tc:Team Calendars plugin for Confluence
- bamboo:Bamboo
- fisheye:FishEye
- portfolio:Portfolio plugin for JIRA
- jc:JIRA Core
- jsd:JIRA Service Desk
- jira:JIRA Software(common jira)
- *:第三方插件的应用密钥,类似于“com.foo.bar”
-s
或--serverid
:许可证的服务器标识符。
请根据实际情况,设置自己的邮箱、用户名、组织和服务器标识符!破解命令运行完成之后,Shell会输出相应的许可证,如下图所示:
将获得的License Key复制和粘贴至许可证密钥的文本框,然后点击“Next”按钮,此时需要等待几分钟,Confluence初始化数据库需要耗费一些时间。初始化完成之后,进入加载内容页面,如下图所示:
点击“Empty Site”按钮,然后进入用户管理配置页面,如下图所示:
如果已经安装了JIRA,那么可以将用户管理交给JIRA来处理。本文安装时还没有JIRA,因此选择在Confluence内部管理用户和组,点击“Manage users and groups within Confluence”按钮,进入系统管理员账号配置页面,如下图所示:
请根据实际情况,配置管理员账户的信息,然后点击“Next”按钮,进入设置成功页面,如下图所示:
安装完成
至此,Confluence的安装、破解和初步配置已经完成,还可以根据自身实际情况进一步配置!在Confluence控制台的“授权细节”中可以看到,已经破解成功,授权至2089年,如下图所示:
登录Confluence控制台,进入“查找新应用”页面,搜索“Team Calendars”插件,结果如下图所示:
1万刀的插件试试看。
点击“免费试用”按钮,Confluence便会下载和安装这个插件。安装完成之后,进入“管理应用”页面,搜索“Team Calendars”插件,展开插件的折叠窗口,如下图所示:
在Shell中运行以下命令,破解“Team Calendars”插件:
docker exec-it confluence java -jar /var/atlassian/application-data/confluence/atlassian-agent.jar \
-p tc -m <mailbox>-n <username>-o <organization>-s <server_id>
破解工具的使用和前面相同,-p 字段换成 对应的程序 tc, 将命令返回的License Key输入上图红框的“许可证关键字”的文本框中,然后点击“更新按钮”,稍待片刻便能破解成功!此时,可以看到插件的授权状态,如下图所示,同样到了2089年:
登录Confluence知识库,点击“创建”按钮,如下图所示:
再看看刚才的插件,效果还行。
进入docker容器
docker exec -it confluence /bin/bash # 进入docker容器 confluence
修改java配置
vi /opt/atlassian/confluence/bin/catalina.sh
在 “cygwin=false” 上面添加如下内容,根据环境需要,如本次修改最大内存为2G
JAVA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m"
或
CATALINA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m"
重启 wiki confluence
docker stop confluence # 停止
docker start confluence # 启动
这时候可以看到内存为 2G 可用为 58%,感觉上页面反应快了一点:)
文章评论