如何配置Artifactory作为一个Docker注册表与F5 (BIG-IP)和HTTPS?

幼狮亚
2023-01-22 11:09

请注意后,突发的变化在Artifactory版本7中引入。x, below there are the required iRule configurations for both, Artifactory versions下面版本7. x对于Artifactory和版本7。X及以上相应地使用

库路径方法:

从Artifactory版本5.8可以将Artifactory作为Docker注册表使用存储库路径方法使用这种方法,可以在不需要反向代理配置的情况下使用Artifactory。
如果您希望使用Repository Path方法并拥有HTTPS连接,则可以通过在Artifactory前面配置反向代理来实现。
此外,如果反向代理是NginxApache,可以简单地为代理生成所需的配置Artifactory UI

否则,万一F5是几个在Artifactory前配置为使用安全连接,则需要添加以下内容iRule到F5的BIG-IP虚拟服务器配置:

对于低于7.x的人工版本:

当HTTP_REQUEST {
设置ARTI_PROTO为https
set ARTI_HOST
$ARTI_PROTO://$ARTI_HOST/artifactory
HTTP::头部插入x - forward - proto "$ARTI_PROTO"
}

对于Artifactory版本7。X及以上:

当HTTP_REQUEST {
设置ARTI_PROTO为https
set ARTI_HOST
插入X-JFrog-Override-Base-Url $ARTI_PROTO://$ARTI_HOST
HTTP::头部插入x - forward - proto "$ARTI_PROTO"
}

子域法

为了配置F5的BIG-IP以便与Artifactory一起使用子域方法和HTTPS连接作为Docker注册表,需要在F5的BIG-IP虚拟服务器配置中添加以下规则:

对于低于7.x的人工版本:

当HTTP_REQUEST {
如果{[HTTP::host]包含"docker" && [HTTP::uri] starts_with "/v2/"} {
设置ARTI_PROTO为https
set ARTI_HOST
扫描(HTTP:主机 ] %\[^.\].%\[^.\].%\[^.\].%\[^.\].%s REPO应用程序ENV域顶级域名
HTTP:: uri / artifactory / api /码头工人/美元回购(HTTP: uri):
HTTP::头部插入x - forward - proto "$ARTI_PROTO"
$ARTI_PROTO://$ARTI_HOST/artifactory
}
}

对于Artifactory版本7。X及以上:

当HTTP_REQUEST {
如果{[HTTP::host]包含"docker" && [HTTP::uri] starts_with "/v2/"} {
设置ARTI_PROTO为https
set ARTI_HOST
扫描(HTTP:主机 ] %\[^.\].%\[^.\].%\[^.\].%\[^.\].%s REPO应用程序ENV域顶级域名
HTTP:: uri / artifactory / api /码头工人/美元回购(HTTP: uri):
HTTP::头部插入x - forward - proto "$ARTI_PROTO"
插入X-JFrog-Override-Base-Url $ARTI_PROTO://$ARTI_HOST
}
}

端口的方法

为了配置F5的BIG-IP以便与Artifactory一起使用Port方法和HTTPS连接作为Docker注册表,需要在F5的BIG-IP虚拟服务器配置中添加以下规则:

对于低于7.x的人工版本:

当HTTP_REQUEST {
if {[HTTP::uri] starts_with "/v2/"} {
设置ARTI_PROTO为https
set ARTI_PORT
set ARTI_HOST
HTTP:: uri / artifactory / api /码头工人/ <存储库名> (HTTP: uri):
HTTP::header插入X-Forwarded-Proto $ARTI_PROTO
HTTP::头插入X-Forwarded-Port $ARTI_PORT
$ARTI_PROTO://$ARTI_HOST:$ARTI_PORT/artifactory
}
}

对于Artifactory版本7。X及以上:

当HTTP_REQUEST {
if {[HTTP::uri] starts_with "/v2/"} {
设置ARTI_PROTO为https
set ARTI_PORT
设置ARTI_HOST <服务器名称>
HTTP:: uri / artifactory / api /码头工人/ <存储库名> (HTTP: uri):
HTTP::header插入X-Forwarded-Proto $ARTI_PROTO
HTTP::头插入X-Forwarded-Port $ARTI_PORT
$ARTI_PROTO://$ARTI_HOST:$ARTI_PORT
}
}

*请参阅我们的wiki页面开始使用Artifactory作为Docker注册表了解更多信息。