云客户?
免费开始>
在MyJFrog中升级>
云的新功能>







概述

Federation是不同JFrog平台部署(jpd)中Federated类型的存储库的集合,这些存储库被自动配置为完全的双向复制。一旦设置了Federation,对一个站点上的工件所做的更改将使用双向镜像自动同步到其他联邦站点。

联邦中支持的存储库数量

一个Federation最多可以包含10个存储库。

您可以执行以下联邦存储库过程:

向现有联邦添加联邦成员

你需要运行联邦存储库完全同步将远程联邦成员添加到现有联邦存储库时使用的REST API。这也适用于将转换后的本地存储库添加到联邦存储库时。

页面内容


设置先决条件

人工版本必须相同(7.49.6之前)

当使用低于7.49.6的Artifactory版本时,您必须验证在托管Federation中包含的成员的所有Artifactory实例中安装了相同的Artifactory版本。

在所有实例都升级到Artifactory版本7.49.6之后,Artifactory包括多版本的支持,它使Federation的成员能够运行不同版本的Artifactory,即使一个站点上的版本包含在其他站点上运行的版本不支持的配置特性和值。感谢多版本支持,未来升级后7.49.6可以一次在一个站点上执行,消除了在所有位置同时升级的需要。

有关更多信息,请参见多版本的支持

JFrog平台部署(JPDs)时钟必须同步

如果在两个(或更多)成员联邦存储库上同时更新联合存储库构件,那么最后注册的更新将覆盖其他更新。因此,为了确保整个系统行为的一致性、可预测性和可跟踪性,运行联邦成员的所有机器的服务器时钟必须同步。

  • 配置自定义基URL一般系统的管理模块。基础URL支持检测组织中的成员JFrog部署(jpd)。

    JFrog Cloud新界面(测试版)

    在任务栏上,单击(平台配置),然后选择平台安全>一般>安全配置。要了解更多信息,请点击在这里。

    适用于自托管部署

    自定义基础URL与自托管部署相关,但不适用于SaaS。

    在联合存储库环境中更改BaseURL

    如果使用远程镜像设置了联邦存储库,则无法修改Base URL。因此,您首先需要从Federation中删除远程成员,然后单击保存

    更改基本URL之后,继续使用原始联邦成员设置联邦存储库。对于要用新设置填充的所有远程成员,建议在删除远程成员和更改基本URL之间等待一段很短的时间。

在jpd之间建立信任

您需要在联邦存储库中的jpd之间建立信任。启用信任的选项取决于您使用的是云部署还是自托管部署。

云客户

JFrog企业/企业+ SaaS客户:

自托管的客户

从下列选项中任选一项:

  • 设置相关jpd之间的绑定一旦jpd被添加到任务控制实例中,使用绑定令牌使管理员能够在托管的JFrog平台部署(jpd)之间创建信任简化跨jpd的设置
  • 启用信任圈:此选项适用于有兴趣提供完整数据的客户访问其他jpd,一旦实现信任圈,就会自动授予访问权限。

使用绑定令牌(即,没有信任圈)的联合存储库需要在其Artifactory中启用任务控制微服务,因为令牌是由任务控制创建的。


设置联合存储库

使用UI

  1. 政府模块,导航到知识库|知识库。

    JFrog Cloud新界面(测试版)

    Artifactory,并选择存储库.到l获取更多信息,请点击在这里

  2. 点击添加库并选择联合存储库

  3. 配置基本和高级存储库设置类似于配置本地存储库
    注意,必须分配一个Repository Key,该Key将作为前缀添加到Federated存储库,并显示在所有站点上。

  4. 联合会选项卡,继续将位于其他JFrog平台部署(jpd)上的存储库添加到Federation。

  5. 点击添加库

  6. 在添加存储库对话框中,使用以下方法之一将存储库添加到Federation:
    • 部署:如果安装了JFrog Mission Control,远程JFrog平台部署上的存储库将自动填充。如果具有相同名称的存储库在远程JFrog平台部署上不存在,则继续单击创建新的复制此存储库。
    • URL:手动添加一个预定义的URL路径到存储库。如果远程JFrog平台部署上不存在存储库,则将根据以下语法自动创建该存储库。

      /artifactory/ //例如:http://:8082/artifactory/fed117

      只有当您设置了绑定或建立了信任圈时,才会出现JFrog平台部署。看到在jpd之间建立信任

  7. 点击保存
    您将返回到基本选项卡。
  8. 点击创建联合存储库
  9. 点击保存

使用REST API

专用的联邦存储库配置JSON文件是应用程序/vnd.org.jfrog.artifactory.repositories.FederatedRepositoryConfiguration + json

以下存储库REST api支持与联邦存储库一起工作:



暂停/恢复联邦同步

您可以暂停和恢复从源联邦存储库到其他成员存储库的工件同步。


从联邦中移除存储库

任何联邦成员上的管理员都可以从联邦中删除自己和其他成员。注意,您可以删除初始存储库,联邦将继续在剩余的联邦成员之间运行。

  1. 在Administration模块中单击知识库|知识库并单击Federated选项卡以查看federation列表。

    JFrog Cloud新界面(测试版)

    Artifactory,并选择存储库.到l获取更多信息,请点击在这里

  2. 从列表中选择Federation存储库,然后单击联合会选项卡。
  3. 单击存储库右上角的x。

如果由于网络连接问题而无法访问远程JFrog平台部署(JPD),或者远程JPD关闭,则需要手动更改目标JPD以完成联邦成员的删除。


将本地存储库转换为联邦存储库

使用REST API

控件将本地存储库转换为联邦存储库将本地存储库转换为联邦存储库REST API。

您可以直接从local选项卡中的现有本地存储库清单将其转换为联邦存储库

  1. 在Administration模块中,选择存储库>当地的

    JFrog Cloud新界面(测试版)

    Artifactory,并选择存储库.要了解更多信息,请点击在这里

  2. 在相关本地存储库的行末尾,打开Actions菜单并选择转换为联邦


    将打开“转换到联合存储库”对话框。


  3. 点击转换
  4. 命令运行全同步联邦存储库完全同步REST API。
    本地存储库被移动到Federated选项卡。

转换后的本地存储库保持联邦状态

从Federation中删除存储库不会自动将存储库还原为本地存储库。从联邦中删除存储库只是断开了双向同步;但是,存储库仍然是Federated的。


将构建信息存储库转换为联合存储库

Build-Info存储库可以设置为Federation中的联邦成员。

从Artifactory 7.35开始,您可以使用Artifactory REST API将现有的Build-Info存储库转换为联邦存储库。

步骤1:将构建信息存储库转换为联合存储库
步骤2:向build-info federation添加成员

联合存储库不能转换回本地构建信息存储库。


步骤1:将Build-Info存储库转换为联邦存储库
POST / api /联合会/迁移/ {buildInfoRepoName}

样例输入

POST /api/federation/migrate/artifactory-build-info迁移成功。

步骤2:向build-info Federation添加成员
将构建信息存储库转换为联合构建信息存储库之后,继续使用
更新存储库配置REST API

{"key": "projectKey-build-info", "rclass":" federated", "members": [{"url": "http:///artifactory/projectKey-build-info", "enabled":"true"}, {"url": "http:///artifactory/projectKey-build-info", "enabled":"true"}]}

有关更多信息,请参见存储库配置JSON


使用联邦工件

一旦您创建了联邦,联邦存储库就会自动显示在您的Artifact浏览器中。

您执行的任何CRUD操作都会自动应用于成员Federated存储库。用户可以根据自己的权限集执行操作。根据联邦中的任何用户对工件执行的最后一个操作应用逻辑。


地理同步拓扑用例:设置联邦基础URL

你知道吗?

Geo同步拓扑是全网格拓扑的扩展,其中几个Artifactory实例连接到GeoDNS。在这个用例中,期望的结果是在连接到路由服务器的所有实例中具有完全相同的配置(存储库名称、用户、组、权限目标)。然后,用户可以从相同的存储库进行部署和解析,而无需根据路由到的服务器更改构建工具中的配置(这可以用于DR目的,也可以用于将多个位置的负载分配给不同的实例)。对于这些用户来说,一切都在幕后,他们只是通过一个专用的URL连接到Artifactory。

设置初始联合存储库URL

地理同步拓扑要求将所有平台部署(人工实例)配置为相同的自定义基础URL联邦存储库必须具有唯一的Custom Base URL,以便区分不同平台部署中的联邦成员。
要在地理同步拓扑中使用Federated存储库,请添加federatedRepoUrlBase参数到全局配置描述符文件,该文件是用于提供默认配置参数集的全局Artifactory配置文件。
下面的XML标签应该添加到<下面systemProperties>部分。

< urlBase > < / urlBase > < !——注意:url Base设置为空——> https://ARTIFACTORY_SERVER_HOSTNAME/artifactory

重要的

URLfederatedRepoUrlBase以上是相关的只有到联合存储库,不能应用于其他特性。其他功能将使用urlBase,这是不希望的,因为Geo-LB URL将无法在内部工作。将此设置留空,以便Access Federation等服务使用LB URL。

有关如何修改的信息全局配置描述符,看到配置文件概述


将联合存储库迁移到地理同步拓扑

从Artifactory版本7.21.13开始,您可以将现有的联邦存储库迁移为使用专用的联邦存储库URL而不是Artifactory基础URL进行配置。

高可用性环境下的迁移

在HA环境中设置Federated repository时,确保on两个站点都知道只有一个HA节点在运行

  1. 使用以下方法之一断开任一站点中的所有Federated存储库:
    • 在UI中的Federated Repository页面中一次一个
    • 直接通过配置描述符文件。
  2. 等待一段时间,然后验证成员站点上的所有Fed存储库都已断开连接。
  3. 导航到JFROG_HOME美元/ artifactory / var / etc / artifactory / artifactory.config.xml添加以下XML标记。

    < federatedRepoUrlBase > https:// <地址> / artifactory < / federatedRepoUrlBase >
  4. 重新连接所有Federated存储库。
  5. 验证是否在成员站点中应用了配置。
  6. 监视相关错误的日志。
  7. [测试]为每个Repo上传一个新文件到站点1,并在站点2下载。
  8. [可选]如果在美联储回购被断开连接期间,其中一个站点发生了变化(例如上传,覆盖,属性更改或删除操作),则执行完全同步。

增加较大存储库的预定义套接字超时

从Artifactory版本7.38.17(自托管)开始,您可以在联邦成员之间同步大型存储库时增加套接字超时。

参数增加默认值20000毫秒,即可增加超时时间artifactory.mirror.http.client.socket.timeout.mili = 200000的参数。artifactory.system.properties文件。

监视联合存储库

从Artifactory发行版7.49.3开始,您可以使用一组专用REST api监视联邦存储库的状态。使用这些api获取特定存储库的Federation状态,获取Federation镜像延迟时间列表,以及获取未同步镜像列表。

获取联合存储库状态

返回特定存储库的联邦同步状态,包括:

  • 正在执行的任务数量
  • 失败的任务数
  • 各种类型的挂起事件(创建、更新、删除、节点属性、错误)的数量
  • 服务器延迟时间(自上次事件未处理以来经过的时间)
  • 完全(二进制和元数据)和人工(仅元数据)复制的工件的数量

获取联邦镜像延迟时间

返回自所有存储库的每个联合镜像上未处理的最后一个事件以来所经过的时间。该API可用于定期收集滞后统计信息。当检测到有明显滞后的存储库时,可以使用Get Federated repository Status API获取其他详细信息。

获取不可用镜像

返回来自所有存储库的未同步联邦镜像列表。镜像在以下情况下不同步:

  • 当镜像刚加入星盟时。
  • 在存储库从本地迁移到联邦期间。
  • 当越过某个错误阈值时。

有关每个API的详细信息,请参见人工REST API


排除联邦成员不同步通知

如果联邦中的任何联邦成员不同步,系统将触发不同步通知。这可能是由于网络故障或联邦成员的更改而发生的。
您可以使用以下方法之一手动将更新后的配置推送到目标Federated成员:

  • 运行同步联邦成员的配置REST API。

    POST http:/ / localhost:端口/ artifactory / api /联合会/ configSync / < repositoryKey >

  • 直接在JFrog平台UI中:
    1. 在JFrog平台中,导航到管理模块| repository | Federated
    2. 选择相关的联邦成员,并从Actions列表(位于列表末尾)中进行选择将配置
  • 没有标签
版权所有©2023 JFrog Ltd.