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







概述

发布包将作为您发布的一部分的内容组合在一起,为您的软件发布提供材料清单。例如,您可以将不同的构建构件(例如Docker映像)组合在一起,这些构件构成了您的软件版本,然后可以将其推送到您的销售点设备。

发布包在发布流程中起着中心作用。它指定了组成发布的不同文件和包,以及它们的元数据,并在其中创建和管理JFrog分布。发布包通常从源Artifactory实例分发到Artifactory Edge节点。因为在一个发布包中指定的所有文件都需要保持发布的一致性,所以一个发布包是不可变的。实际上,这意味着一旦一个文件被包含在一个发布包中,它就不能从它所在的Edge节点上删除。

中提供了发布包的体验应用程序模块,在发行版|发布包Source和Edge Artifactory实例的操作如下:

  • 源Artifactory:包括两个专用标签:
    • 可分发的:具有适当的权限能够创建、分发和跟踪发布包。
    • Received:包含Artifactory Edge接收到的发布包
  • Artifactory边缘:显示一个单个选项卡显示包含Artifactory Edge收到的发布包。

全面跟踪您的发布包版本

关于发布包版本的所有信息被合并并显示在一个中心区域。这个视图是直观的,并提供了快速访问有关您的发布包的所有方面,包括分发跟踪,x射线数据和有效权限。

安全和受保护的发布包

X射线扫描需要Artifactory Pro X、Enterprise with Xray或Enterprise+许可证。

JFrog Xray支持发布包的索引和扫描,以及在发布包上定义监视和策略。您可以在包含Block Release Bundle Distribution操作的Watch上应用策略,以防止将Release Bundle分发到边缘节点,如果它符合JFrog Xray中定义的安全或许可策略。有关更多信息,请参见发布包的x射线扫描

JFrog订阅级别

页面内容


创建发布包

JFrog Distribution支持从Artifactory服务创建和分发发布包。每个发布包可能只包含来自单个Artifactory服务的工件。

为了创建一个发布包,Distribution对JPD运行查询,以检索所需的工件引用及其属性。根据发出请求的用户的安全特权来获取工件。

为了防止篡改发布包,它由JFrog发行版使用GPG密钥。然后,Artifactory Edge使用相同的GPG密钥在接受发布包之前对其进行验证。

一个发布包版本可以包含多达3000个工件。这个数字在产品中没有限制,但非常不建议超过它。

发布包可以使用REST API或者通过JFrog UI。在任何一种情况下,您都可以通过一组您可以定义的查询来定义要包含在Release Bundle中的工件。

在JFrog UI中创建发布包的最后阶段,您可以选择以以下方式保存发布包:

  • 草稿版本:您可以创建一个草稿版本,可以通过单击进行编辑创造。
  • 签名版本(不可修改):单击可跳过草稿阶段创建和签名在没有草案阶段的情况下签署并完成程序。

先决条件

创建一个发布包需要发布Bundle 'Write'权限

从发行版2.14.1开始,对该窗口进行了以下UI更改:

  • 添加了一个过滤器搜索,使您能够按名称或最新版本搜索特定的发布包。
  • 可分发和接收的发布包的总数也会显示在UI中

创建一个新的发布包

  1. 应用程序模块|分布|可分配的,点击新发布包

    这将显示New Release Bundle窗口。
  2. 根据下面的章节输入发布包的详细信息,然后单击Create Query(参见添加查询详情)。

发布包页面分为三个面板:一般的细节规范发布说明

一般的细节

名字

发布包名称。的发布包名称必须以字母数字字符开头,后跟字母数字字符或下列字符之一:- _:

版本
发布包版本。
描述
发布包描述。
规范

这个部分指定了用于组装发布包的Artifactory服务(记住,一个发布包只能从单个Artifactory服务组装),以及将用于组装工件的不同查询。有关如何定义查询的详细信息,请参阅添加查询

名字
查询名称。
查询
查询细节。
发布说明

本节指定发布包的发布说明。

类型
发行说明格式。支持的类型包括:Markdown, Asciidoc和纯文本。
编辑|预览
使用这些链接以您选择的格式编辑发行说明,然后预览它们呈现后的外观。

添加查询

构建查询有两种方法:使用简单的查询生成器或使用人工查询语言(AQL)高级用户。

若要选择构建查询的方式,请将鼠标悬停在Create query上并选择其中一种方式添加查询添加AQL查询

使用查询生成器

查询生成器允许您通过填写一个简单的表单来构建查询。您输入的参数最终将转换为AQL查询,您可以通过设置显示AQL复选框。

  1. 要使用查询生成器,请在Create query下选择添加查询
    这将启动一个3步向导。
  2. 查询详细信息步骤,首先为查询指定一个名称。然后,您可以指定不同的搜索条件,包括:
    • 库名称
    • 构建名称和数字
    • 具有特定值的属性
    • 包含和排除模式
您可以通过单击参数右侧的“+”按钮为这些参数中的每个参数指定多个值。
使用And | Or选项中,您可以在一次单击按钮中添加多个属性。

使用AQL

  1. 要添加AQL查询,请在Create query下选择添加AQL查询
    这将启动一个3步向导。
  2. 查询详细信息步骤,命名您的查询并提供将用于组装工件的AQL表达式,例如:

预览工件

指定查询详细信息之后(无论是使用AQL查询还是使用查询构建器),您可以查看将包含在Release Bundle中的工件预览工件选项卡。

如果为发布包指定的源或目标Artifactory服务没有正确和有效的许可证,Distribution将显示一个错误,它不能创建发布包。

额外的细节

附加细节选项卡允许你为发布包指定两个参数:

额外的属性
指定一个属性列表,这些属性将在发布过程中附加到Release Bundle中的所有工件上,除了它们已经拥有的那些之外。
路径映射
根据工件在源Artifactory服务中的位置,指定一个映射列表来管理工件在目标Artifactory服务中的位置。你可以使用任何的路径映射模板或设置您自己的自定义映射。

路径映射模板

为了方便起见,JFrog Distribution提供了一组常用模板,您可以使用这些模板来设置路径映射。只需选择Use Template下列出的模板之一,然后修改占位符以与您的设置相对应。

提供的模板有:

改变库
源Artifactory服务上特定存储库中的所有文件都映射到目标上的不同存储库。
改变文件夹
所有文件都移动到目标中的特定文件夹中。
重命名文件夹
源Artifactory服务上特定文件夹中的所有文件都映射到目标上的不同文件夹。

点击保存然后是c创建。这将创建一个发布包草案t这是可以编辑的签署,最后分发

或者,您可以通过单击跳过草稿阶段创建和签名在没有草案阶段的情况下签署并完成程序(继续)签署发布包)。



在一个发布包中包含Docker镜像

为了在发布包中包含Docker镜像,指定与清单匹配的查询条件就足够了。所需docker映像的Json。发行版将包括与该清单相关的Docker映像的所有Docker层。json文件。

例如,我们在Docker存储库中有一个PostgreSql 11.1版本的Docker镜像docker-local
存储库的内容有以下层次结构:

Docker-local postgres 11.1 manifest。sha256__060245e5c0563270b03cc4af67a284bdce3e7e9d60190861ebcb7 sha256__1e967d04951bfd1b483ae316c40058fed4b154a2e84efb54dfc91204e73f6667 sha256__2ad14c51497d15dcaf0e6fd47457de1aee3eab7a1170bda4610dc9cd89c34c8a…

manifest.json文件包含以下属性:

docker.manifest.digest=sha256: acb7f2b2e9bd560a32c0ba01991870f56f89deeff5f3224bc50aac2a98b7f73e

所有其他的文件docker-local / postgres / 11.1是组成这个特定图像的图层。

码头工人消化

“digest”参数被设计为不透明参数,以支持对成功传输的验证。例如,HTTP URI参数可能如下所示:

sha256:6c3c624b58dbbcd3c0dd82b4c53f04194d1247c6eebdaab7c610cf7d66709b3b

给定此参数,注册中心将验证所提供的内容是否与此摘要匹配。

要包括图像中的所有工件(清单和层),只需指定匹配的查询条件即可manifest.json所需的Docker映像:

AQL的例子
物品。找到({”和“美元:[{”或“美元:[{“回购”:{" $ eq”:“docker-local " } } ] }, { "$ ”或“({:@docker.manifest。摘要":"sha256:acb7f2b2e9bd560a32c0ba01991870f56f89deeff5f3224bc50aac2a98b7f73e"}}]})

签署发布包

签署一个发布包完成了创建一个发布包的过程。这将发布包状态设置为签署并且发布包不能再被编辑。

签署一个发布包将触发Artifactory将签署的发布包的内容克隆到一个独立发布包存储库

  1. 您可以从“编辑发布包”页面或从“新发布包”页面签署发布包。
  2. 点击签字版本

    从发行版2.14.1开始,签名过程更新如下:如果在Distribution中使用多个GPG签名密钥,现在可以选择在Platform UI中使用哪个签名密钥(以前只能从REST API获得)。请注意,如果没有选择密钥,将使用默认/主密钥对发布包进行签名。

  3. 在Sign Version窗口中,您将看到发布包的名称及其版本。从“选择签名密钥”下拉列表中选择签名密钥。

  4. 如果签名密钥是用密码短语创建的,JFrog Distribution将提示您输入密码短语。

    一旦您签署了一个版本,您将无法编辑它。

  5. 单击“签名”对您的版本进行签名。
  6. 接下来,继续发布发布包当准备好了。

创建动态发布包

您可以发布一个动态的发布包,它是一个您可以创建、签名和动态发布的发布包动态发布包REST API。发布包版本立即创建并分发到所选的分发节点。动态发布包的发布过程与常规发布包相同。


发布发布包

一旦你创建了你的发布包,你就可以将它发布到你所在的发布边缘有权分发给

信任圈

分发只能将发布包从Artifactory服务分发到分发边缘,如果它们都在相同的“信任圈”内。要了解如何建立信任圈,请参阅访问令牌

发布发布包的工作流程包含以下步骤:

  1. 在Artifactory源节点上,具有适当的权限可以在Release Bundles Distributable选项卡中创建和管理发布包的发布过程。
  2. 已经创建并签名的工件会自动复制并保存到这个单独的存储库中,其中它们的内容不能被编辑或删除。发布包存储库保护您的工件作为分发流的一部分。
  3. 在分发边缘,用户可以跟踪分发边缘接收的发布包

分布负责触发从源工件到分布边缘的复制过程。首先,它将发布包信息复制到每个边缘节点,然后在源Artifactory中启动复制过程。

要分发发布包,请单击分发发布包模块,或使用发布发布包REST API。

分发从任务控制中获取可用的边缘节点,并根据特定的用户权限显示可用边缘节点的列表。

要分发Release Bundle的旧版本,请在Release Bundle模块中单击它,选择要分发的版本,然后单击分发。

自动创建丢失存储库

随着私有分发网络(PDN)的引入,而不是使用目标存储库自动创建复选框,Distribution使您能够在使用自动创建丢失的存储库复选框。

版本的需求

此功能需要JFrog Artifactory版本7.38.8或更高,Distribution版本2.12.3或更高。

该特性根据存在的从源到目标的路径映射工作。如果检测到高级路径映射,则无法自动创建目标存储库。

要启用该特性,请设置distribute.auto-create-target-repo-advance旗帜真正的分发应用程序配置YAML文件

存储库 没有路径映射 使用高级路径映射
一个库 如果目标存储库的名称和类型与源存储库相同,则自动创建存储库。 如果源存储库和目标存储库之间存在一对一的路径映射,则目标存储库类型与源存储库类型相同。
多个存储库 如果目标存储库的名称和类型与源存储库相同,则会自动创建存储库。
  • 如果源存储库中的所有存储库都是相同的存储库类型,并且映射到一个目标存储库,则创建的目标存储库将与用户指定名称的源存储库类型相同。
  • 如果源存储库中的所有存储库都是不同的存储库类型,并且映射到一个目标存储库,则创建的目标存储库将是一个通用存储库。

例子

例1:从源存储库到目标存储库,没有路径映射

从源的Docker存储库中获取Docker映像,该Docker映像将映射到目标的Docker存储库中。

示例2使用路径映射从源存储库到目标存储库

来自Docker存储库的Docker镜像docker-local在源代码中会映射到Docker存储库名为mapped-docker-locaL是目标。

示例3通过路径映射,源存储库上的多个存储库到一个目标存储库

源端有多个Docker存储库中的多个Docker映像,这些Docker映像映射到目标端的单个Docker存储库。

示例4源存储库上的多个存储库类型到一个目标存储库的路径映射

来自Docker存储库的Docker映像和来自帮助存储库的Helm图将被映射到一个通用存储库。

来自JFrog发行版2.14.1,复选框自动创建丢失的存储库显示所有发布包发行版(不只是PDN),取代了目标存储库自动创建复选框(功能保持不变)。

目标存储库自动创建

目标存储库自动创建复选框已在发行版2.14.1中弃用,并已被自动创建丢失的存储库上面详细的复选框。

版本的需求

此功能需要JFrog Artifactory版本7.21.0或更高版本

从JFrog发行版2.8.1开始,该功能使您能够在发布发布包时自动在目标边缘或Artifactory上创建缺失的目标存储库。当目标边缘或Artifactory不包含任何存储库时,分发将失败,并且需要手动完成创建。如果启用了此特性,则会自动创建目标存储库,从而加快分发流程。

要启用此特性,请选择目标存储库自动创建复选框:

向目标分发版本

从发行版2.14.1开始,您可以按如下方式向目标分发发行包版本。

  1. 目标显示为树状(这取代了需要您选择并拖动目标到右侧窗格的UI):
    1. 要分发到特定的目标,请在树中选择它
    2. 要分发到所有目标,请选中select all复选框。
  2. 当您选择目标时,您的选择将出现在窗口的底部,以便您可以看到版本将分发到哪些目标。
  3. 您还可以在搜索字段中搜索特定的目标。
  4. 为了确保您没有分发到丢失的存储库,这可能会导致您的分发失败,您可能需要选择自动创建丢失的存储库复选框(功能与目标存储库自动创建复选框)。
  5. 完成后,单击分发分发版本。

管理发布包

您可以在发布包上执行以下任务。

查看发布包

UI提供的发布包信息跨多个视图显示,根据用户的需要和任务向用户提供信息。

查看源节点上的发布包

名字
发布包名称。
最新版本
发布包的最新版本。
分配ID
分发作业的序号。只显示最后3个分发作业。
开始
分发开始的时间
状态
分发作业状态。
进步
分配进度百分比。


查看发布包版本详细信息

要查看发布包的一个版本,请选择一个发布包并选择所需的版本。


发布包版本页面显示了三个信息面板:

版本:此发布包的版本列表。选择任意版本以查看其详细信息。
一般信息:屏幕顶部的面板显示一般信息,如版本、描述、创建日期、状态和发布包的大小

细节:该面板在一系列选项卡中显示有关所选发布包版本的详细信息:行动跟踪,内容发布说明x射线数据,管道,规格有效的权限


查看发布包属性

当创建一个发布包时,工件属性从部署和解析中的属性放到发布包中。在初始发布包版本创建期间,可以使用创建发布包REST API。这些属性作为分发过程的一部分被转移到边缘节点。

“分发”页面包含以下信息选项卡:

内容选项卡

Content选项卡显示了组成发布包的构件、构建和元数据。

单击任何工件或构建,以在选项卡的右侧面板中查看有关它的详细信息。

按此直接进入

单击工件的源路径,将被重定向到相应Artifactory服务的树状浏览器中的正确位置。


如果工件已经被JFrog Xray阻止下载(在这种情况下,您将无法分发发布包),这将在x光状态属性中所选工件的字段内容选项卡。

发行说明页签

Release Notes选项卡显示包的发布说明。这些可以写在标记,ascii文档或纯文本。

动作跟踪选项卡

Actions Tracking选项卡提供了这个发布包版本的历史记录。

ID

分发动作的ID。

具有相同ID的多行

您可能会在该表中看到具有相同ID的多行,因为单个分发操作可能会将Release Bundle分发到多个目标节点。

行动
执行的操作
开始
动作开始的日期和时间
目的地

分销目标

按此直接进入

单击要直接重定向到其UI的分发目标名称。

状态

动作的状态

进步
动作完成的百分比和完成时的尝试次数
细节

对行动的一些细节进行总结。

按此浏览详情

单击此字段以获取该操作的完整详细信息。在这里,您可以在发生错误时获得更多详细信息。

重新发布一个发布包

发布一个发布包可能会因为不同的原因而失败,比如网络问题或目标Artifactory服务的中断。一旦修复了阻止发布的问题,就可以将发布包重新发布到发布失败的服务。要重新发布发布包,首先选择它们。分布表示重新分配选定的每个发行版的图标。您现在可以单击该图标,将每个Release Bundle单独重新分发到指定的目标服务,或者选择重新分配按钮,以便将Release Bundle重新分发到批处理过程中选择的所有目标服务。

过滤器

使用筛选器仅显示那些失败的发行版。

管道选项卡

管道选项卡是一个验证系统,它确定哪些管道/步骤生成了特定的工件。它为用户提供了一种方法来确保他们的工件在通过CI/CD工作流提升之前没有被篡改。

有关更多信息,请参见签署了管道

规范标签

Spec选项卡显示了源Artifactory服务,这个发布包的工件就是从这个源Artifactory服务中组装起来的,同时还显示了组装工件的查询列表。


单击Artifactory服务

单击Artifactory服务将在该服务的主屏幕上打开一个新选项卡

单击任何查询展开它,显示控制Release Bundle构件组装的查询的详细信息。

你甚至可以检查AQL复选框,以查看用于组装构件的最终AQL查询。


有效权限选项卡

“有效权限”选项卡显示为所选发布包分配的有效权限。有关更多信息,请参见权限


编辑发布包

您可以编辑使用“Create”保存为草稿且尚未签名的发布包。

应用程序模块下分布,去Distributable | [Bundle_Name] | [Bundle_Version],点击行动并选择编辑的版本

搜索发布包

平台支持使用以下命令搜索发布包:

  • 专用平台发布包搜索您可以在指定的时间内搜索可分发和已接收的发布包页面。有关更多信息,请参见应用程序搜索

  • AQL搜索发布包:要在Artifactory Edge节点中搜索发布包,可以使用释放release_artifact引入AQL的域。详情请参阅实体和字段

克隆一个发布包

要克隆现有的发布包版本,请选择克隆版本行动下拉菜单。

这将复制发布包规范,包括它的名称和查询,到一个新的发布包页面。然后可以相应地调整和保存页面上的详细信息。



删除发布包

您可以使用Distribution UI或删除发布包REST API调用。适用于发布包删除权限

要删除现有的发布包版本,请选择删除版本行动下拉菜单。

有两种类型的删除选项:

从Artifactory版本7.39.1中,您可以验证release Bundle的空文件夹是否作为从目标存储库和release Bundles存储库中删除的一部分而被删除。这是通过Artifactory中的一个参数完成的system.yaml文件名为releasebundle.cleanup.deleteEmptyFolder,默认设置为true。



发布包的x射线扫描

X射线扫描需要Pro X、Enterprise with Xray或Enterprise+许可证。

JFrog Xray支持扫描发布包,以及在发布包上设置策略和监视。

在扫描发行包之前,您需要:

  1. 将Release Bundles添加到x射线索引资源中。2022世界杯阿根廷预选赛赛程有关更多信息,请参见配置索引资源2022世界杯阿根廷预选赛赛程
  2. 创建策略包含Block Release Bundle Distribution动作,以防止将Release Bundle分发到边缘节点。有关更多信息,请参见创建x射线策略和规则
  3. 配置一个包含发布包的Watch并应用相关的策略。有关更多信息,请参见配置x射线手表

发布包扫描结果显示在发布包的x射线数据选项卡中。

查看x射线数据

在发布包版本列表中,您可以查看扫描的发布包版本的状态x光状态列。



单击Release Bundle版本,在Xray Data选项卡中查看详细信息。此选项卡显示可能在分布式版本上检测到的任何违规、安全问题和许可。您可以在版本上运行以下x射线相关操作:扫描违规,分配自定义问题,分配自定义许可证或导出数据。有关每个选项卡的详细信息,请参见扫描结果分析



阻止已签名发布包的分发

您可以在x射线策略中设置阻止发布包分发操作,以防止分发包含安全漏洞的签名发布包。有关更多信息,请参见创建x射线策略和规则

出现状态为失败的被阻止的发布包。



项目中的分布

因为分发版目前没有包含在JFrog项目中,所以分发版将与所有项目一起工作,因此所有工作流都假定它们看到了所有项目。


查看收到的发行包

收到的发布包选项卡允许您在一个地方查看所有收到的发布包。

从发行版2.15.0开始,JFrog平台中的Received Bundles表已经更新,以支持更容易的搜索和过滤Release Bundles。这些更新包括:

  • 搜索使您能够通过名称或使用通配符与其他发布包详细信息一起查找任何发布包
  • 所有的发布包都是使用REST API提取的,确保您可以搜索任何发布包,而不管它是什么时候发布的
  • 发布包可以根据名称、最新版本或创建日期进行排序

从Artifactory 7.55.6开始,新增了一个Cleanup函数让您决定哪些发布包应该被删除,哪些应该被保留,而不管该发布包是否满足删除标准。此外,“清除历史记录”选项卡已添加到“接收”选项卡旁边,其中记录您通过Cleanup功能应用于发布包的任何更改,包括删除,将项的状态从Keep更改为不要保留,以及将项的状态从不要保留更改为Keep。


“清理报告”和“清理历史”选项卡仅对管理员用户可用。



REST API

这些是主要的发布包REST api:

有关发布包命令的完整列表,请参阅分布REST API


观看视频

  • 没有标签
版权所有©2023 JFrog Ltd.