服务规划
服务名称 | 数据目录 | 访问端口/数据端口 | 客户端访问地址 |
---|---|---|---|
mysql | /data/atlassian/mysql | 8306 | 3.1.101.36:8306 |
jira | /data/atlassian/jira | 8080 | 3.1.101.36:8080 |
confluence | /data/atlassian/confluence | 8090/8091 | 3.1.101.36:8090 |
基础环境配置
创建应用数据目录
mkdir -pv /data/atlassian/mysql/{data,mysql-files,conf,logs}
mkdir -pv /data/atlassian/confluence/{data,logs}
mkdir -pv /data/atlassian/jira/{data,logs}
chown 999.999 /data/atlassian/mysql -R
chown 2002.2002 /data/atlassian/confluence -R
chown 2001.2001 /data/atlassian/jira/{data,logs} -R
创建docker-compose配置文件目录
mkdir -pv /data/docker-compose/atlassian/{mysql,jira,confluence}
Mysql部署
my.cnf配置文件
cat > /data/atlassian/mysql/conf/my.cnf << 'EOF'
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8mb4
[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "
no-auto-rehash
default-character-set = utf8mb4
[mysqld]
user = mysql
port = 3306
skip-name-resolve
# for confluence
character-set-server = utf8mb4
collation-server = utf8mb4_bin
transaction-isolation = READ-COMMITTED
max_connections = 1024
max_connect_errors = 100
wait_timeout = 100
max_allowed_packet = 128M
table_open_cache = 2048
back_log = 600
default-storage-engine = innodb
log_bin_trust_function_creators = 1
# Log
general_log=off
general_log_file = /data/mysql/logs/mysql.log
log-error = /data/mysql/logs/error.log
#slowlog慢查询日志
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 2
log_output = FILE
log_queries_not_using_indexes = 0
#global_buffers
innodb_buffer_pool_size = 2G
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2
key_buffer_size = 64M
innodb_log_file_size = 512M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_data_file_path = ibdata1:20M:autoextend
secure_file_priv = /var/lib/mysql
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysqldump]
quick
max_allowed_packet = 32M
EOF
chown 999.999 /data/atlassian/mysql/conf/my.cnf
Mysql参数:
报错: Confluence 不支持数据库排序规则 “utf8mb4_0900_ai_ci",您需要使用 “utf8mb4_bin" 解决方法: 加入参数: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin 报错: 您的数据库必须使用'READ-COMMITTED'作为默认隔离级别 解决方法: 加入参数: --transaction-isolation=READ-COMMITTED
docker-compose配置
cat > /data/docker-compose/atlassian/mysql/docker-compose.yml << EOF
version: "3"
services:
atlassian_db:
container_name: atlassian_db
image: mysql:8.0
ports:
- 5306:3306
restart: always
# docker安全验证
security_opt:
- seccomp:unconfined
volumes:
- /etc/localtime:/etc/localtime
- /data/atlassian/mysql/data:/var/lib/mysql
- /data/atlassian/mysql/mysql-files:/var/lib/mysql-files/
- /data/atlassian/mysql/logs/:/data/mysql/logs/
- /data/atlassian/mysql/conf/my.cnf:/etc/mysql/my.cnf
environment:
MYSQL_ROOT_PASSWORD: a123456
command: --default-authentication-plugin=mysql_native_password --skip-name-resolve
networks:
- atlassian
networks:
atlassian:
EOF
启动mysql
docker-compose up -d
创建数据库并授权
# 进入容器
docker-compose exec atlassian_db /bin/bash
# 登录数据库
mysql -uroot -pa123456
# 为jira创建数据库并授权
create database jira;
create user "jira"@"%" identified by "jira";
grant all privileges on jira.* to "jira"@"%";
flush privileges;
# 为confluence创建数据库并授权
create database confluence;
create user "confluence"@"%" identified by "confluence";
grant all privileges on confluence.* to "confluence"@"%";
flush privileges;
Jira部署
docker-compose配置
cat > /data/docker-compose/atlassian/jira/docker-compose.yml << EOF
version: "3"
services:
jira:
container_name: jira
image: atlassian/jira-software:8.14
restart: always
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime
- /data/atlassian/jira/data:/var/atlassian/application-data/jira
- /data/atlassian/jira/logs:/opt/atlassian/jira/logs
environment:
JVM_MINIMUM_MEMORY: 1024m
JVM_MAXIMUM_MEMORY: 2048m
JVM_RESERVED_CODE_CACHE_SIZE: 512m
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 1G
networks:
- atlassian
networks:
atlassian:
EOF
启动JIRA
docker-compose up -d
上传Mysql驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.tar.gz
tar -zxf mysql-connector-java-8.0.25.tar.gz
docker cp mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
docker exec jira chmod +r /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/mysql-connector-java-8.0.25.jar
免费(PJ)方法
- PJ包下载
提取码:txpp
- 破解包上传
docker cp atlassian-extras-3.2.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar
docker exec jira chmod +r /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar
docker exec jira ls /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar -l
安装JIRA
重启容器,生效所有导入jar包
docker-compose restart jira
访问地址:
http://3.1.101.36:8080
语言选择->中文
数据库信息:
连接数据库:其他数据库
数据库类型:mysql8.0
主机:3.1.101.36
端口:5306
数据库:jira
用户名:jira
密码:jira
根据提示进行安装即可,安装后应用程序中查看是否有29天限制,如果没有,即PJ成功
Confluence部署
docker-compose配置
cat > /data/docker-compose/atlassian/confluence/docker-compose.yml << EOF
version: "3"
services:
confluence:
container_name: confluence
image: atlassian/confluence-server:7.13.0-m03
restart: always
ports:
- 8090:8090
- 8091:8091
volumes:
- /etc/localtime:/etc/localtime
- /data/atlassian/confluence/data:/var/atlassian/application-data/confluence
- /data/atlassian/confluence/logs:/opt/atlassian/confluence/logs
environment:
JVM_MINIMUM_MEMORY: 1024m
JVM_MAXIMUM_MEMORY: 2048m
JVM_RESERVED_CODE_CACHE_SIZE: 512m
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 1G
networks:
- atlassian
networks:
atlassian:
EOF
启动confluence
docker-compose up -d
上传Mysql驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.tar.gz
tar -zxf mysql-connector-java-8.0.25.tar.gz
docker cp mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
docker exec confluence chmod +r /opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-8.0.25.jar
免费(PJ)方法
访问地址: http://3.1.101.36:8090
到输入授权码页面进行如下操作
- 导出Jar包
1. 从docker容器导出到服务器,并重命名为atlassian-extras-2.4.jar
docker cp confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /usr/local/src/atlassian-extras-2.4.jar
2. 从服务器导出到windows环境
将atlassian-extras-2.4.jar拷贝到windows环境(已经安装了jdk环境)
- 下载PJ文件
下载码: zsu5
- 生成新jar包
在win环境上执行confluence_keygen.jar
弹出框中输入NAME和ServerID(就是授权页面中的服务器ID)
然后点击patch,选择atlassian-extras-2.4.jar,点击gen生成授权码,将授权码保存; 生成授权码后会将原来的atlassian-extras-2.4.jar备份,然后生成一个新的atlassian-extras-2.4.jar
- 上传jar包
1. 将新的atlassian-extras-2.4.jar上传到服务器
2. 从服务器导入docker容器
docker cp atlassian-extras-2.4.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
docker exec confluence chmod +r /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
docker exec confluence ls -l /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
安装Confluence
重启容器,生效所有导入jar包
docker-compose restart confluence
重启docker容器(加载新导入的jar包),重复上面的登录操作,进入到授权页面,输入上面保存的授权码,点击下一步
配置数据库
- 数据库选择mysql
连接方式(任选其一即可)
- 通过IP连接
Hostname: 3.1.101.36
Port: 5306
Database name: confluence
Username: confluence
Password: confluence
- 通过JDBC连接
Database URL: jdbc:mysql://3.1.101.36:5306/confluence?useUnicode=true&characterEncoding=utf8
Username: confluence
Password: confluence
连接数据库,提示 成功! 成功连接数据库。即mysql连接成功, 点击下一步,等待安装成功即可
安装免费插件
- 在线安装
管理->应用管理->搜索插件->安装
- 离线安装
搜索插件->下载免费版(Data Center版)->保存到本地
管理->应用管理->上传应用->上传所下插件
Confluence与Jira用户对接
互相添加应用程序
登录Confluence:
管理->应用程序链接,在此处根据提示添加jira的的配置,本地验证模式选择为-OAuth(模拟)
根据提示,切换到jira,添加Confluence的配置
Jira用户配置
添加Jira用户服务器
管理->用户管理->Jira用户服务器->添加应用程序->根据提示数据应用程序名称和密码,
IP填写Confluence的docker容器IP,否则连接时会报如下错误
连接测试失败。来自服务器的响应: com.atlassian.crowd.exception.ApplicationPermissionException: Forbidden (403) 加载页面时发生 "403 - Forbidden" 错误 client.forbidden.exception 转换到Jira主页
查看容器IP命令:
docker inspect 容器名
配置Jira用户组
分别添加confluence-administrators和confluence-users用户组(用于登录confluence),在组中添加对应用户
其余权限设定:
1. 管理->应用程序->应用程序访问权中为分组授权 2. 管理->问题->权限方案 中配置更加详细的权限,或者新增权限方案 3. 项目->项目设置->权限 根据不同项目调用不同权限方案
Confluence用户目录配置
- 添加用户目录
管理->用户管理->用户目录添加目录->选择atlassian Jira->根据提示输入名称(自己起), jira服务器地址, 上面定义的用户服务器的用户名密码->测试-测试并保存
- 调整用户目录顺序
将添加的jira用户目录,调整至第一位,查看用户,如果没有同步,点击手动同步
其余权限设定:
管理->用户&安全中, 为用户组配置全局权限和空间权限
## 测试验证
在Jira中创建一个新用户组g1和一个新用户u1,将u1添加到g1组和confluence-users组,并配置对应权限,点击左上角应用程序导航器,切换到Confluence,使用此用户登录,如果可以正常登录,证明Confluence调用jira用户成功
参考链接
https://www.cwiki.us/display/CONFLUENCEWIKI/Connecting+to+Crowd+or+Jira+for+User+Management