升级到6.8.x Artifactory Pro时未创建或删除join.key文件
我使用的是Artifactory Pro,最近升级到了6.8.6(从6.6.5版) 当服务器启动时,会显示如下消息: (o.a.w.s.ArtifactoryContextConfigListener:96)-应用程序无法运行 被初始化:等待创建join.key文件时超时 可访问/var/opt/jfrog/artifactory/etc/security/join.key (o.a.w.s.ArtifactoryFilter:194)-Artifactory未能初始化: 上下文为空 我搜索并找到了如下文档: 也就是说,我可以创建自己的128位AES密钥(我使用openssl创建了该密钥),但服务器会在引导过程中删除,并显示无法读取或验证之类的消息。我看到的错误消息如下: 2019-03-12 22:49:15670[艺术初始][信息] (o.j.a.c.AccessClientBootstrap:70)-使用连接创建访问令牌 图例2019-03-12 22:49:15790[艺术初始][错误] (o.a.w.s.ArtifactoryContextConfigListener:96)-应用程序无法运行 被初始化:无法授予令牌,响应代码:400,正文:{升级到6.8.x Artifactory Pro时未创建或删除join.key文件,artifactory,Artifactory,我使用的是Artifactory Pro,最近升级到了6.8.6(从6.6.5版) 当服务器启动时,会显示如下消息: (o.a.w.s.ArtifactoryContextConfigListener:96)-应用程序无法运行 被初始化:等待创建join.key文件时超时 可访问/var/opt/jfrog/artifactory/etc/security/join.key (o.a.w.s.ArtifactoryFilter:194)-Artifactory未能初始化: 上下文为空 我搜索并找
“错误”:[{ “代码”:“错误的请求”, “消息”:“无法验证jwt sha:30f20af6bed379ee249ce6d5e536596c8d087f7d08ff907b6515e289d909c2f5”} ]} 我现在正在看一个artifactory页面,上面写着: {“错误”:[{ “地位”:500, “消息”:“Artifactory未能初始化:检查Artifactory日志是否有错误。”}]} 我正在使用下载的rpm方法
“rpm-ujfrog-artifactory-pro-6.8.6.rpm”
进行安装
我试着降级到6.8.2,我试着降级到6.6.8,然后升级回6.8.6。
顺便说一句,降级到6.6.8我最终得到了404
如何获得一个有效的
join.key
文件,或者关闭需要它的功能?在版本6.8中引入了join-key概念,在此之前,身份验证是由一个名为master.key的密钥完成的,该密钥是随DB组件生成的。由于您正在迁移,DB将无法访问artifactory服务,因为旧密钥已向它们注册。你能试试吗
此外,我相信在所有迁移中,我们都不会更改身份验证机制。在6.8版之前,加入密钥的概念已经引入,身份验证是由一个名为master.key的密钥完成的,该密钥是与DB组件一起生成的。由于您正在迁移,DB将无法访问artifactory服务,因为旧密钥已向它们注册。你能试试吗
此外,我相信在所有迁移中,我们不会改变身份验证机制JFROG提供的解决方案为我们提供了帮助
- stop Artifactory&Tomcat
- 删除etc/security/join.key下的任何密钥(如果有)
systemctl start artifactory
在环境变量中设置键(不应该是上面的键)并启动成功。JFROG提供的此解决方案对我们有效
- stop Artifactory&Tomcat
- 删除etc/security/join.key下的任何密钥(如果有)
systemctl start artifactory
在环境变量中设置键(不应该是上面的键)并启动成功。我还将artifactory从6.6.5升级到了6.8.7,并遇到了与OP相同的问题,但在我的情况下,安装程序使用自定义tomcat和自己的init.d服务文件。在Artifactory Access应用程序的日志中,我注意到以下行:
[警告](o.j.a.s.JoinKeyDistributer:73)-没有将连接密钥分发到的路径
在查看内置脚本artifactoryManage.sh之后,发现Artifactory引入了新的java启动参数-jfrog.join.key.path
下面是来自artifactoryManage.sh的报价
JOIN_PATHS=$ARTIFACTORY_HOME
if runMetadata;then
export JFROG_MDS_HOME="$ARTIFACTORY_HOME/metadata"
export JOIN_PATHS=$JOIN_PATHS:$JFROG_MDS_HOME
fi
JAVA_OPTIONS="$JAVA_OPTIONS -Djfrog.join.key.paths=$JOIN_PATHS"
当我将它添加到init.d服务脚本中时,密钥就被正确地自动生成了。我还将artifactory从6.6.5升级到了6.8.7,并遇到了与OP相同的问题,但在我的例子中,安装程序是使用自定义tomcat和自己的init.d服务文件。在Artifactory Access应用程序的日志中,我注意到以下行:
[警告](o.j.a.s.JoinKeyDistributer:73)-没有将连接密钥分发到的路径
在查看内置脚本artifactoryManage.sh之后,发现Artifactory引入了新的java启动参数-jfrog.join.key.path
下面是来自artifactoryManage.sh的报价
JOIN_PATHS=$ARTIFACTORY_HOME
if runMetadata;then
export JFROG_MDS_HOME="$ARTIFACTORY_HOME/metadata"
export JOIN_PATHS=$JOIN_PATHS:$JFROG_MDS_HOME
fi
JAVA_OPTIONS="$JAVA_OPTIONS -Djfrog.join.key.paths=$JOIN_PATHS"
当我将它添加到init.d服务脚本中时,密钥就被正确地自动生成。我在Amazon Linux EC2实例上干净地安装Artifactory 6.10.2时遇到了这个问题。由于我使用的是AmazonLinuxTomcat-8.5包,所以我不能使用普通的artifactory安装脚本,为了避免以下异常,还需要一些额外的步骤。诀窍是在access和artifactory实例初始化期间的正确时间创建适当的键。在我找到这个步骤组合之前,我做了很多失败的尝试,这些步骤对我来说是可靠的,并且允许干净地创建一个新实例 注意:这只适用于干净的安装,不适用于升级 java.lang.IllegalStateException:等待join.key文件超时 将在/usr/share/artifactory/etc/security/join.key上提供 我使用的过程是:
# Upload the access.war and artifactory.war via the Tomcat Manager webapp.
# As soon as these are uploaded, stop tomcat and delete the automatically-created artifactory folder.
# Create artifactory folder.
mkdir /usr/share/artifactory
chown tomcat.tomcat /usr/share/artifactory
cd /usr/share/artifactory
# Start tomcat.
service tomcat8 start
# Monitor the etc/security folder repeatedly until it has been automatically created by the artifactory webapp (a few seconds):
ls etc/security
ls etc/security
ls etc/security
# Create a new master key for artifactory:
openssl rand -hex 16 > etc/security/master.key
chown tomcat.tomcat etc/security/master.key
chmod 600 etc/security/master.key
# Monitor the access/etc/keys folder repeatedly until it has been automatically created by the access webapp (about 20 seconds):
ls access/etc/keys
ls access/etc/keys
ls access/etc/keys
# Create a new join key for access:
openssl rand -hex 16 > access/etc/keys/join.key
chown tomcat.tomcat access/etc/keys/join.key
chmod 600 access/etc/keys/join.key
cp -a access/etc/keys/join.key etc/security/join.key
# Check the logs to confirm artifactory was able to connect to the access server:
tail logs/artifactory.log
2019-06-03 15:47:51,644 [art-init] [INFO ] (o.a.w.s.ArtifactoryContextConfigListener:215) -
###########################################################
### Artifactory successfully started (53.527 seconds) ###
###########################################################
我在cl上遇到了这个问题