有问题吗?想要报告问题?联系JFrog支持

跳到元数据的末尾
进入元数据的开始

概述

介绍如何将一组Artifactory节点设置为Artifactory高可用性系统。

每个HA组件都是单独配置的,并配置一个公共设置文件来将系统中的所有组件组合为一个整体。

需求

版本

Artifactory 3.1及以上版本支持Artifactory HA。如果您正在运行Artifactory的以前版本,首先需要按照升级Artifactory

同一Artifactory HA安装中的所有节点必须运行相同的Artifactory版本和相同的JVM版本。

许可

支持Artifactory HA企业许可.在设置HA集群时,需要在集群中的每个Artifactory节点上安装不同的许可证。

如果您拥有的集群节点多于所提供的许可证数量,您可以购买额外的Artifactory Enterprise许可证。

硬件

Artifactory HA需要的硬件如下:

  • 具有会话关联的负载均衡器(会话保持)
  • 网络文件系统
  • 外部数据库服务器,具有到数据库的单个URL
网络
  • 所有Artifactory HA组件(Artifactory集群节点、数据库服务器、NFS服务器和负载均衡器)必须在同一个快速局域网内
  • 所有HA节点之间必须通过专用的TCP端口进行通信
数据库

Artifactory HA需要外部数据库,目前支持Oracle, MySQL, MS SQL和PostgreSQL。有关如何配置这些数据库的详细信息,请参阅配置数据库

页面内容


主目录

在设置Artifactory HA时,需要配置ARTIFACTORY_HOME美元为系统中的每个Artifactory集群节点分别创建一个目录,以及一个公共的CLUSTER_HOME美元在NFS上找到的目录。

这些目录的总体布局如下:

| - $ ARTIFACTORY_HOME
| -等/
| - ha-node.properties
| - logback.xml
| - artifactory.lic
| - - - - - -数据/
| - tmp /
| -日志/
| - bin /
| - misc /
| - webapps /
| - tomcat /
| - lib /
|-

| - $ CLUSTER_HOME

| - ha-etc /
| - cluster.properties
| - storage.properties
| - artifactory.system.properties
| - mimetypes.xml
| - ui /
| - plugins /
| - ha-data /
| - filestore /
| - tmp /
| - ha-backup /

和ha-node.properties

注意artifactory.system.properties下的文件$ ARTIFACTORY_HOME /等文件夹应替换为ha-node.properties文件。的artifactory.system.properties被移到$ CLUSTER_HOME / ha-etc文件夹中。

特权

上的每个Artifactory集群节点都必须具有完全的写权限CLUSTER_HOME美元目录树。


配置Artifactory HA

为了使Artifactory HA正常运行,您需要确保集群被正确地配置为共享系统,并且每个特定的服务器被正确地配置为系统中的节点。

为确保系统在每一步的配置正确,我们建议执行以下步骤:

  1. 配置集群
    然后,对系统中的每个集群节点执行以下操作:
  2. 安装集群节点
  3. 配置集群节点
  4. 测试HA配置

配置集群

需要创建共享CLUSTER_HOME美元目录,该目录对于系统中的所有Artifactory集群节点都是可见和可写的。

共享目录内容如下:

ha-etc

集群的共享配置文件,包括后端存储和系统中所有Artifactory集群节点上的信息

ha-data

集群的共享数据。其中,当以db-filesystem模式使用Artifactory时,该目录包含文件存储。

ha-backup

用于从一个Artifactory集群节点执行自动备份的共享备份目录。

共享集群配置需要手动创建以下两个文件:

美元CLUSTER_HOME / ha-etc / cluster.properties
由所有Artifactory集群节点共享的配置参数
美元CLUSTER_HOME / ha-etc / storage.properties

storage.properties文件用于常规Artifactory安装。

此文件替换storage.properties文件,因为每个节点都从公共位置下的这个文件读取属性CLUSTER_HOME美元

该文件是在配置系统中的第一个Artifactory集群节点时在正确的位置创建的,并且有完整的描述下面

从Artifactory HA节点挂载NFS

在客户端挂载NFS时,请确保为命令:

lookupcache =没有

这确保HA集群中的节点将立即看到其他节点对NFS所做的任何更改。

如果集群节点之间有防火墙,那么所有节点之间的Hazelcast端口(10001)和Tomcat端口(默认8081)都应该是开放的。

cluster.properties文件包含以下属性:

security.token = < your_selected_token >
您选择的ASCII字符串令牌,用于在服务器之间发送安全消息。这可以是你选择的任何字符串(比如密码)。

例如,cluster.properties用于Artifactory HA安装的文件可以是:

security.token = 76 b07383dcda344979681e01efa5ac50

独特性

确保每个集群都有唯一的安全令牌。


安装集群节点

正如在需求Artifactory 3.1及以上版本支持Artifactory HA。

无论您是要执行新的安装还是升级当前的安装,我们都建议您在将所有Artifactory集群节点配置为HA集群的一部分之前,将它们作为独立的服务器安装并使用Artifactory 3.1或更高版本。

我们建议您在继续下一个节点之前完成每个Artifactory集群节点的配置,并按照下面的描述将其集成到HA集群中。

新安装

对于新的安装,只需遵循中的说明安装Artifactory

对于安装的第一个节点,需要移动storage.properties来自服务器的文件ARTIFACTORY_HOME / etc /美元到您的CLUSTER_HOME / ha-etc /美元目录中。

将Artifactory Pro的当前安装升级到Artifactory HA

  1. 确认当前正在升级的安装上的Artifactory服务器已关闭
  2. 要将当前安装升级到Artifactory 3.1及以上版本,请参阅升级Artifactory
  3. 复制ARTIFACTORY_HOME / etc /美元而且ARTIFACTORY_HOME /数据/美元从我们当前的安装到相应的位置下CLUSTER_HOME美元
    您只需要执行一次,因此对于您升级到Artifactory高可用性系统中的任何后续服务器,可以省略此步骤。

JDBC驱动程序

你也应该验证数据库JDBC驱动程序的正确位置ARTIFACTORY_HOME / tomcat / lib /美元为每个Artifactory集群节点

配置集群节点

  1. 关闭Artifactory集群节点。

  2. 创建一个美元ARTIFACTORY_HOME / etc / ha-node.properties文件并使用以下参数填充它(您可以使用美元ARTIFACTORY_HOME / misc /公顷/ ha-node.properties.template作为模板来定义您的ha-node.properties文件):

    node.id

    此服务器的唯一描述性名称。

    独特性

    确保每个节点都有一个在整个网络中惟一的id。

    cluster.home

    您在NFS上设置的$CLUSTER_HOME的位置。

    context.url

    应该用于在集群内与此服务器通信的上下文url。

    使用显式IP地址

    主机必须显式地定义为IP地址,而不是主机名。

    membership.port 应该用于在集群中与此服务器通信的端口。
    如果没有指定,Artifactory将自动分配端口,但是我们建议将此设置为固定值,以确保分配的端口对您组织的所有安全系统(如防火墙等)开放。
    主要的 (true | false)是否是主服务器。集群中必须有一个(且只有一个)服务器配置为主服务器。对于其他服务器,此参数为可选参数,默认值为“false”。

    hazelcast.interface

    可选的。当同一集群中的节点运行在不同的网络上时(例如,不同的docker主机上的节点),将此值设置为与服务器的内部IP地址匹配。

    使用外部IP作为context.url

    如果设置了该参数,context.url必须设置为机器的外部可访问地址。

    例如,ha-node.properties文件为服务器调用art1连接到挂载驱动器CLUSTER_HOME美元/ mnt /共享/ artifactory / clusterhome,通过10001端口与其他节点通信,配置为“primary”,如下:

    node.id=art1 cluster.home=/mnt/shared/artifactory/clusterhome context.url=http://10.0.0.121:8081/artifactory membership.port=10001 primary=true hazelcast.interface=192.168.0.2 (optional)

    ha-node.propertiesfile permissions

    在Linux上,一旦ha-node.properties文件创建时,Artifactory用户应设置为其所有者,其权限应设置为644 (-rw-r - r)

  3. 在您的目录中设置有效的Artifactory HA许可证美元ARTIFACTORY_HOME / etc / artifactory.lic文件。如果这个文件存在(来自以前安装的Artifactory Pro),那么只需用Artifactory HA许可证替换您的Pro许可证,否则创建该文件并用您的HA许可证填充它。

  4. 挂载CLUSTER_HOME美元目录中定义的cluster.home的属性美元ARTIFACTORY_HOME / etc / ha-node.properties

  5. 测试HA配置在您添加到系统的每个集群节点之后。

  6. 在安装了第一个集群节点并验证系统作为HA安装正常工作之后,应该配置自定义URL基。
    管理选项卡下|常规配置,设置自定义URL库字段转换为负载均衡器的URL。

一旦您成功地安装、配置和测试了一个集群节点,您就可以继续到您想要添加到系统中的下一个集群节点。


测试HA配置

您可以执行以下一系列测试,以验证您的系统已正确配置为HA安装:

  1. 直接访问您刚刚配置的服务器的Artifactory UI
  2. 管理模块转到高级|系统日志查看日志并验证您看到的条目Artifactory Cluster Home
  3. 模块导航栏的底部还应该表明您正在使用Artifactory HA运行。如果出现错误,您将在页面标题中看到错误消息。
  4. 通过负载均衡器访问Artifactory,并以管理
  5. 首页模块,您应该看到Artifactory HA是Available

  6. 管理模块转到配置。应该有一个叫做高可用性。选中后,您应该创建一个表,其中包含集群中所有Artifactory节点的详细信息,如下所示。

  7. 管理模块下|常规配置,验证自定义URL库字段正确配置为负载均衡器的URL。


升级Artifactory HA

从3.5版开始,升级Artifactory HA的过程发生了变化

下面的部分根据您的当前版本提供了升级说明,并假设您正在升级到最新版本

从3.5以下的任何版本升级

在3.5版本以下升级Artifactory HA需要关闭所有Artifactory HA节点,升级并重新启动主节点,然后升级并重新启动从节点,如下所示:

在context.url中配置一个显式IP

在继续升级之前,请确保已配置context.url您的集群节点的显式IP地址。

  1. 每次关闭一个Artifactory HA节点
  2. 使用中描述的常规步骤升级主节点升级Artifactory,然后重新启动。
  3. 升级和重新启动所有其他从节点,一次一个,使用中描述的常规过程升级Artifactory

从3.5+版本升级

如果您的当前版本是3.5或更高版本,升级HA集群的方法是:首先升级主节点,重新启动它,然后一次升级一个其余的从节点。

在任何时候,至少有一个Artifactory节点继续运行,这意味着没有服务中断。

此零停机升级过程应按如下方式执行:

  1. 安全地关闭Artifactory主节点。当主节点关闭时,负载均衡器应该将所有查询重定向到从节点。
  2. 升级主节点时,请按照升级Artifactory
  3. 重新启动主节点。当主服务器启动时,它会识别到HA集群节点并不都运行相同版本的Artifactory,因此系统仅限于允许上传和下载。
    任何试图执行其他操作的尝试,如更改DB模式、修改权限、更改存储库配置等,都被严格阻止。此限制将持续到所有集群节点再次运行相同版本为止。

    版本不一致会产生异常

    运行不同版本的HA集群节点会产生异常,这些异常可以在日志文件中看到,反映了升级过程中暂时的不一致状态。这是正常的,应该忽略,直到所有集群节点再次运行相同的版本。

  4. 对于每个从节点

    1. 优雅地关闭Artifactory,

    2. 使用中描述的常规过程进行升级升级Artifactory

    3. 重新启动节点

一旦所有节点都升级到相同的版本,您的Artifactory HA安装将再次完全正常。