You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2部署Bitbucket双节点集群因hazelcast组配置认证失败求助

问题根本原因

报错核心为Bitbucket集群依赖的Hazelcast分布式组件节点间身份认证失败,结合给出的配置,常见触发原因如下:

  • 配置文件加载优先级冲突:Bitbucket启动时会优先读取节点私有home目录下的bitbucket.properties,如果私有目录留存旧配置,会覆盖共享目录中的配置,导致不同节点的hazelcast.group.name、hazelcast.group.password参数不一致
  • 共享目录权限不足:容器内默认以uid 1000的用户运行Bitbucket进程,若共享目录挂载后权限不匹配,进程无法读取共享配置,会加载默认的Hazelcast参数,导致认证失败
  • EC2网络规则限制:两台EC2实例的安全组未开放5701端口的双向访问,端口不通也会触发同类认证拦截报错
  • 共享目录挂载路径不匹配:Ansible配置中填写的bitbucket_shared_home路径与Bitbucket官方要求的集群共享目录路径不符,导致共享配置未被加载

排查解决步骤

  1. 清理冲突配置
    分别登录两台EC2实例,进入私有home挂载目录{{ bitbucket_private_host_location }},删除目录下的bitbucket.properties文件,仅保留共享目录中的配置文件,重启两个Bitbucket容器。
  2. 修正共享目录权限
    在共享存储(一般为AWS EFS)上执行chown -R 1000:1000 {{ bitbucket_shared_host_location }},确保容器内Bitbucket进程有配置读取权限。
  3. 验证网络连通性
    分别在两台EC2实例上执行telnet <对端EC2内网IP> 5701,确认5701端口双向可通,同时调整EC2安全组入站规则,开放对端节点IP的5701端口访问权限。
  4. 校验配置加载结果
    进入任意运行中的Bitbucket容器,执行ps aux | grep java查看进程启动参数,确认hazelcast.group.name、hazelcast.group.password参数和共享配置一致,也可通过Bitbucket启动日志确认共享配置是否被正常加载。
  5. 兜底强制配置方案
    如果共享目录配置始终无法正常加载,可以直接将Hazelcast认证参数添加到Ansible的JAVA_OPTS环境变量中,强制所有节点使用统一配置:
"JAVA_OPTS": "-Dcluster.node.name={{ inventory_hostname }} -Duser.timezone=Etc/GMT+0 -Dhazelcast.local.publicAddress={{ ansible_default_ipv4.address }}:5701 -Dhazelcast.group.name=bitbucket-cluster -Dhazelcast.group.password=password"

内容的提问来源于stack exchange,提问作者Andrew Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:42:01