设置先决条件
人工版本必须相同
您将需要验证JFrog Artifactory版本在所有承载联邦成员的Artifactory实例中是相同的。
JFrog平台部署(JPDs)时钟必须同步
如果在两个(或多个)成员联合存储库上同时更新联合存储库构件,最后注册的更新将覆盖其他更新。因此,为了确保整个系统的一致、可预测和可跟踪行为,运行联邦成员的所有机器的服务器时钟必须同步。
中配置自定义基础URL一般系统的管理模块。基本URL支持检测组织中的成员JFrog部署(JPDs)。
适用于自托管部署
自定义基础URL与自托管部署相关,不适用于SaaS。
在联合存储库环境中更改BaseURL
如果使用远程镜像设置了联合存储库,则无法修改Base URL。因此,首先需要从Federation中删除远程成员,然后单击保存.
在更改基本URL之后,继续使用原始的联邦成员设置联邦存储库。对于要用新设置填充的所有远程成员,建议在删除远程成员和更改基本URL之间等待一小段时间。
在jpd之间建立信任
您需要在联合存储库中的jpd之间建立信任关系。启用信任的选项取决于您使用的是云部署还是自托管部署。
云客户
JFrog企业/企业+ SaaS客户:
- 建立一个绑定令牌在jpd之间建立双向信任。
自托管的客户
从以下选项中任选一项:
- 设置相关jpd之间的绑定:使用绑定令牌使管理员能够在托管的JFrog平台部署(jpd)之间创建信任,一旦jpd被添加到任务控制实例简化跨JPDs的设置
- 启用信任圈:此选项适用于有兴趣提供完整服务的客户访问其他JPDs的权限,一旦信任圈实现,访问权限将自动授予。
使用绑定令牌的联合存储库(即没有信任圈)需要在他们的Artifactory中启用任务控制微服务,因为令牌是由任务控制创建的。
设置联合存储库
界面方式
- 从政府模块,导航到知识库|知识库。
- 点击添加库并选择联合存储库.
- 配置基本和高级存储库设置,类似于配置本地存储库.
请注意,必须分配一个Repository Key,该Key将作为前缀添加到联合存储库,并在所有站点上显示。 - 在联合会选项卡,继续将位于其他JFrog平台部署(jpd)上的存储库添加到联邦。
- 点击添加库.
- 在Add Repositories对话框中,使用以下方法之一将存储库添加到Federation:
- 部署:如果你安装了JFrog任务控制,远程JFrog平台部署上的存储库将自动填充。如果远程JFrog平台部署中不存在名称相同的存储库,则继续单击创建新的复制此存储库。
URL:手动向存储库添加预定义的URL路径。如果远程JFrog平台部署中不存在存储库,则将按照以下语法自动创建存储库。
/artifactory/ //例如:http:// :8082/artifactory/fed117 只有当你设置了绑定或建立了信任圈时,JFrog平台部署才会出现。看到在jpd之间建立信任.
- 点击保存.
您将被路由回Basic选项卡。 - 点击创建联合存储库.
- 点击保存.
使用REST API
专用的联合存储库配置JSON文件是应用程序/vnd.org.jfrog.artifactory.repositories.FederatedRepositoryConfiguration + json
以下存储库REST api支持使用联合存储库:
暂停/恢复联邦同步
您可以暂停和恢复工件从您的源联合存储库到其他成员存储库的同步。
从联邦中移除存储库
任何联邦成员的管理员都可以从联邦中删除自己和其他成员。请注意,您可以删除初始存储库,而联邦将继续在其余联邦成员之间运行。
- 在Administration模块中,单击知识库|知识库并单击Federated选项卡查看联邦列表。
- 从列表中选择Federation存储库,并单击联合会选项卡。
- 单击位于存储库右上方的x。
如果由于网络连接问题而无法访问远程JFrog平台部署(JPD),或者远程JPD关闭,则需要手动对目标JPD进行更改,以完成联邦成员的删除。
将本地存储库转换为联合存储库
使用REST API
方法将本地存储库转换为联合存储库将本地存储库转换为联合存储库REST API。
您可以将现有的本地存储库从local选项卡中的列表直接转换为联合存储库.
- 在Administration模块中,选择存储库>当地的.
- 在相关本地存储库行的末尾,打开Actions列表并选择转换为联邦.
将打开“转换为联合存储库”对话框。 - 点击转换.
- 命令运行完全同步联合存储库完全同步REST API。
Local存储库被移动到Federated选项卡。
转换后的本地存储库保持联合
从Federation中删除存储库不会自动将存储库恢复到本地存储库。从Federation中删除存储库只是断开了双向同步;但是,存储库仍然是Federated的。
将构建信息存储库转换为联合存储库
可以将构建信息存储库设置为联邦中的联邦成员。
从Artifactory 7.35开始,您可以使用Artifactory REST API将现有的Build-Info存储库转换为联邦存储库。
步骤1:将构建信息存储库转换为联合存储库
步骤2:向build-info联邦添加成员
联合存储库不能转换回本地生成信息存储库。
POST / api /联合会/迁移/ {buildInfoRepoName}
样例输入
POST /api/federation/migrate/artifact -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.
使用联邦工件
一旦您创建了Federation, Federated存储库就会自动显示在您的Artifact浏览器中。
您执行的任何CRUD操作都将自动应用于成员联邦存储库。用户可以根据自己的权限集执行操作。逻辑是根据Federation中的任何用户对工件执行的最后一个操作应用的。
地理同步拓扑用例:设置联邦URL
你知道吗?
地理同步拓扑是全网格拓扑的扩展,其中几个Artifactory实例连接到一个GeoDNS。在这个用例中,期望的结果是在连接到路由服务器的所有实例中具有完全相同的配置(存储库名称、用户、组、权限目标)。然后,用户可以从相同的存储库进行部署和解析,而不需要根据路由到的服务器更改构建工具中的配置(这可以用于容灾目的,也可以用于将多个位置的负载划分到不同的实例)。对于这些用户,一切都在幕后,他们只需通过一个专用的URL连接到Artifactory。
设置初始联合存储库URL
地理同步拓扑要求所有平台部署(Artifactory实例)配置相同自定义基础URL.联邦存储库必须具有其唯一的自定义基础URL,以便区分不同平台部署中的联邦成员。
要在地理同步拓扑中使用联合存储库,请添加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环境中迁移
在HA环境中设置联邦存储库时,请确保开启只有一个HA节点处于正常运行状态的两个站点
- 使用以下方法之一断开其中一个站点中的所有联合存储库:
- 在UI中的联合存储库页面中,一次一个
- 直接通过配置描述符文件。
- 等待一段时间,然后验证成员站点上的所有美联储存储库都已断开连接。
导航到
JFROG_HOME美元/ artifactory / var / etc / artifactory / artifactory.config.xml
而且添加以下XML标记。< federatedRepoUrlBase > https:// <地址> / artifactory < / federatedRepoUrlBase >
- 重新连接所有联邦存储库。
- 验证配置是否应用于成员站点。
- 监控相关错误的日志。
- [测试]为每个Repo上传一个新文件到站点1,并在站点2下载。
- [可选]如果在美联储回购被断开连接期间,其中一个站点上发生了更改(例如上传、覆盖、属性更改或删除操作),则执行完全同步。
增加大型存储库的预定义套接字超时
从Artifactory version 7.38.17 (Self-Hosted)开始,您可以增加在Federation内部的联邦成员之间同步大型存储库时的套接字超时。
方法将默认值增加20000毫秒,以增加超时时间artifactory.mirror.http.client.socket.timeout.mili = 200000
参数中的artifactory.system.properties
文件。故障排除联邦成员不同步通知
如果联邦中的任何联邦成员不同步,系统将触发一个不同步通知。这可能由于网络故障或联邦成员的更改而发生。
您可以使用以下方法之一手动将更新后的配置推到目标联邦成员:
运行同步联邦成员的配置REST API。
POST http:
/ / localhost:端口/ artifactory / api /联合会/ configSync / < repositoryKey >
- 直接在JFrog平台UI中:
- 在JFrog平台中,导航到管理模块|存储库|联邦.
- 选择相关的联邦成员,并从Actions列表(位于列表的末尾)中选择将配置.