创建发布包
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中
创建一个新的发布包
- 从应用程序模块|分布|可分配的,点击新发布包.
这将显示New Release Bundle窗口。 - 根据下面的部分输入发布包的详细信息,然后单击Create Query(参见添加查询详情)。
Release Bundle页面分为三个面板:一般的细节,规范而且发布说明.
一般的细节
的名字 |
发布包名称。的发布包名称必须以字母数字字符开头,后面跟着字母数字字符或以下字符之一: |
版本 |
发布包版本。 |
描述 |
发布包描述。 |
规范
这个部分指定了将从中组装发布包的Artifactory服务(记住,一个发布包只能从一个Artifactory服务中组装),以及将用于组装工件的不同查询。有关如何定义查询的详细信息,请参阅添加查询.
的名字 |
查询名称。 |
查询 |
查询详细信息。 |
发布说明
本节指定发布包的发布说明。
类型 |
发行说明格式。支持的类型包括:Markdown, Asciidoc和纯文本。 |
编辑|预览 |
使用这些链接以所选格式编辑发行说明,然后预览它们呈现后的外观。 |
添加查询
有两种方法构建查询:使用简单的查询构建器或使用人工查询语言适用于高级用户。
若要选择构建查询的方式,请悬停在“创建查询”上并选择其中之一添加查询或添加AQL查询.
使用查询生成器
查询构建器允许您通过填写一个简单的表单来构建查询。所输入的参数最终转换为AQL查询,您可以通过设置显示AQL复选框。
- 若要使用查询构建器,请在“创建查询”下选择添加查询
这将启动一个3步向导。 - 在查询详细信息步骤,首先为查询指定一个名称。你可以指定不同的搜索条件,包括:
-
- 库名称
- 建立名称和编号
- 具有特定值的属性
- 包括和排除模式
使用|或者选项,您可以在一次单击按钮中添加多个属性。
使用AQL
- 若要添加AQL查询,请在“创建查询”下选择添加AQL查询.
这将启动一个3步向导。 - 在查询详细信息步骤,命名您的查询,并提供将用于组装工件的AQL表达式,例如:
预览工件
在指定您的查询细节之后(无论是使用AQL查询还是查询构建器),您可以查看将包含在您的Release Bundle中的工件预览工件选项卡。
如果为发布包指定的源或目标Artifactory服务没有正确有效的许可证,分发版将显示一个错误,说明它不能创建发布包。
额外的细节
Additional Details选项卡允许你为你的Release Bundle指定另外两个参数:
额外的属性 |
指定一个属性列表,这些属性将在发布过程中附加到您的Release Bundle中的所有工件,以及它们已经拥有的那些工件。 |
路径映射 |
根据工件在源Artifactory服务中的位置,指定一个映射列表来控制工件将放置在目标Artifactory服务中的位置。你可以使用任何一个路径映射模板提供,或设置您自己的自定义映射。 |
路径映射模板
为了方便起见,JFrog发行版提供了一组常用的模板,您可以使用它们来设置路径映射。只需选择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。Json sha256__060245e5c0563270b03cc4af67a284bdce3f58983be3e71eb9d60190861ebcb7 sha256__1e967d04951bfd1b483ae316c40058fed4b154a2e84efb54dfc91204e73f6667 sha256__2ad14c51497d15dcaf0e6fd47457de1aee3eab7a1170bda4610dc9cd89c34c8a…
的manifest.json
文件包含以下属性:
docker.manifest.digest=
sha256: acb7f2b2e9bd560a32c0ba01991870f56f89deeff5f3224bc50aac2a98b7f73e
所有其他文件docker-local / postgres / 11.1
这些层组成了这张特定的图像。
码头工人消化
“摘要”参数被设计为一个不透明的参数,以支持对成功传输的验证。例如,一个HTTP URI参数可能如下所示:
sha256:6c3c624b58dbbcd3c0dd82b4c53f04194d1247c6eebdaab7c610cf7d66709b3b
给定此参数,注册中心将验证所提供的内容是否与此摘要匹配。
要包含图像中的所有工件(清单和层),只需指定与manifest.json
的想要的Docker映像:
物品。找到({”和“美元:[{”或“美元:[{“回购”:{" $ eq”:“docker-local " } } ] }, { "$ ”或“({:@docker.manifest。摘要":"sha256:acb7f2b2e9bd560a32c0ba01991870f56f89deeff5f3224bc50aac2a98b7f73e"}]}]}})
签署发布包
签署发布包完成了创建发布包的过程。这将发布包状态设置为签署并且发布包不能再被编辑。
签署一个发布包将触发Artifactory将签署的发布包的内容克隆到一个隔离的发布包库.
- 您可以从“编辑发布包”页面或“新发布包”页面签署发布包。
点击签字版本.
从发行版2.14.1开始,签名过程已更新如下:如果在分发中使用多个GPG签名密钥,现在可以在平台UI中选择要使用的签名密钥(以前只能从REST API中使用)。请注意,如果没有选择密钥,默认/主密钥将用于签署发布包。
在Sign Version窗口中,您将看到Release Bundle的名称及其版本。从“选择签名密钥”下拉菜单中,选择签名密钥。
如果签名密钥是使用密码短语创建的,JFrog Distribution将提示您输入密码短语。
一旦你签署了一个版本,你将不能编辑它。
- 单击“签名”为您的版本签名。
- 接下来,继续分发发行包当准备好了。
创建一个动态发布包
您可以分发一个动态的发布包,这是一个您可以动态地创建、签署和分发的发布包动态发布包REST API.发布包版本立即创建并分发到选定的分发节点。动态发布包的发布过程与常规发布包相同。
分发发布包
一旦您创建了您的发布包,您就可以将它分发到您所在的分发边缘有权分发给.
信任圈
只有当发布包在同一个“信任圈”内时,发布包才能从Artifactory服务分发到分发边缘。要学习如何建立信任圈,请参见访问令牌.
分发发布包的工作流程包含以下步骤:
- 在Artifactory源节点上,具有适当的权限可以在Release Bundles Distributable选项卡中创建和管理Release Bundle分发过程。
- 已经创建并签名的工件被自动复制并保存到这个单独的存储库中,其中的内容不能被编辑或删除。的发布包存储库保护您的工件作为分发流的一部分。
- 在分布式边缘,用户可以跟踪分发边缘接收的发布包.
分发负责触发从源构件到分发边缘的复制过程。首先,它将Release Bundle信息复制到每个边缘节点,然后在源Artifactory中启动复制过程。
要分发发布包,请单击分发从发布包模块,或使用发布发布包REST API。
Distribution从任务控制中获取可用的边缘节点,并根据特定的用户权限显示可用的边缘节点列表。
要分发您的发布包的旧版本,请从发布包模块中单击它,选择您想要分发的版本,然后单击分发。
自动创建缺失的存储库
通过引入专用分发网络(PDN),而不是使用目标存储库自动创建复选框,分发允许您在设置PDN分发时自动创建缺少的存储库自动创建缺失的存储库复选框。
版本的需求
该特性需要JFrog Artifactory 7.38.8或更高版本,以及Distribution 2.12.3或更高版本。
该特性根据存在的从源到目标的路径映射来工作。如果检测到高级路径映射,则无法自动创建目标存储库。要启用此功能,请设置distribute.auto-create-target-repo-advance
标记为true分发应用程序配置YAML文件.
存储库 | 没有路径映射 | 使用高级路径映射 |
---|---|---|
一个库 | 如果目标存储库名称和类型与源存储库相同,则自动创建存储库。 | 如果源存储库和目标存储库之间存在一对一的路径映射,则目标存储库类型与源存储库类型相同。 |
多个存储库 | 如果目标存储库的名称和类型与源存储库相同,则自动创建目标存储库。 |
|
例子
例1:从源存储库到目标存储库,没有路径映射
来自源文件中Docker存储库的Docker映像,将被映射到目标文件中的Docker存储库。
示例2:使用路径映射从源存储库到目标存储库
来自Docker存储库的Docker映像docker-local
源中将映射到Docker存储库命名mapped-docker-loca
L在目标中。
示例3:米源存储库上的多个存储库通过路径映射到一个目标存储库
源中的多个Docker存储库中的多个Docker映像,将Docker映像映射到目标中的单个Docker存储库。
示例4:米源存储库上的多个存储库类型到一个目标存储库,并具有路径映射
来自Docker存储库的Docker映像和来自Help存储库的Helm图将被映射到一个通用存储库。
来自JFrog发行版2.14.1,复选框自动创建缺失的存储库显示所有发布包发行版(不仅仅是PDN),取代了目标存储库自动创建复选框(功能保持不变)。
目标存储库自动创建
的目标存储库自动创建复选框已随发行版2.14.1版本一起弃用,并已被自动创建缺失的存储库上面详细说明的复选框。
版本的需求
该特性需要JFrog Artifactory 7.21.0或更高版本
从JFrog发行版2.8.1开始,这个特性允许你在分发发布包时自动在目标边缘或Artifactory上创建缺失的目标存储库。当目标边缘或Artifactory不包含任何存储库时,分发将失败,需要手动完成创建。如果启用此特性,将自动创建目标存储库,加速分发流。
要启用此特性,请选择目标存储库自动创建复选框:
向目标分发版本
从发行版2.14.1开始,您可以按照如下方式将发布包版本分发到目标。
- 目标被显示为树状(这取代了需要你选择并拖动目标到右边窗格的UI):
- 要分发到特定的目标,请在树中选择它
- 要分发到所有目标,请选中“全选”复选框。
- 当您选择目标时,您的选择将出现在窗口的底部,以便您可以看到版本将分发到哪些目标。
- 您还可以在搜索栏中搜索特定的目标。
- 为确保没有分发到丢失的存储库(这可能导致分发失败),您可能需要选择自动创建缺失的存储库复选框的功能保持相同目标存储库自动创建复选框)。
- 完成后,单击分发分发版本。
管理发布包
您可以在发布包上执行以下任务。
查看发布包
UI提供了跨多个视图显示Release Bundle信息,根据用户的需求和任务向他们提供信息。
查看源节点上的发布包
的名字 |
发布包名称。 |
最新版本 |
Release Bundle的最新版本。 |
分配ID |
分发作业的顺序编号。只显示最近3个分发作业。 |
开始 |
开始分发的时间 |
状态 |
分发作业状态。 |
进步 |
分配进度百分比。 |
查看发布包版本详细信息
要查看发布包的版本,请选择一个发布包并选择所需的版本。
Release Bundle版本页面显示了三个面板的信息:
版本:此发布包的版本列表。选择任意版本查看详细信息。
一般信息:屏幕顶部的面板显示了一般信息,如版本、描述、创建日期、状态和Release Bundle的大小
细节:该面板在一系列选项卡中显示所选Release Bundle版本的详细信息:行动跟踪,内容,发布说明,x射线数据,管道,规格而且有效的权限.
查看发布包属性
创建发布包时,工件属性从部署和解析中的属性进入发布包。属性可以在初始发布包版本创建期间添加其他自定义属性创建发布包REST API。作为分发过程的一部分,这些属性被转移到边缘节点。
“分发”页包含以下信息选项卡:
内容选项卡
Content选项卡显示了组成Release Bundle的工件、构建和元数据。
单击任何工件或构建,在选项卡的右侧面板中查看有关它的详细信息。
点击此处直接进入
单击工件的源路径,将被重定向到相应Artifactory服务的树浏览器中的正确位置。
如果工件已经被JFrog Xray阻止下载(在这种情况下,您将无法分发发布包),这将在x光状态属性中所选工件的内容选项卡。
发行说明页
Release Notes选项卡显示bundle的发布说明。这些可以写在markdown, ascii文档或纯文本。
动作跟踪标签
Actions Tracking选项卡提供了这个发布包版本的历史记录。
ID |
分发操作的ID。 具有相同ID的多行 您可能会在该表中看到具有相同ID的多行,因为单个分发操作可能会将一个Release Bundle分发到多个目标节点。 |
行动 |
执行的操作 |
开始 |
行动开始的日期和时间 |
目的地 |
分发目标 点击此处直接进入 单击要直接重定向到其UI的分发目标名称。 |
状态 |
操作的状态 |
进步 |
动作完成的百分比和尝试完成的次数 |
细节 |
关于操作的一些细节的摘要。 请按此浏览详情 单击此字段以获得操作的完整细节。如果出现错误,您可以从这里获得更多详细信息。 |
重新分发发布包
发布包可能会因为不同的原因而失败,比如网络问题或目标Artifactory服务中断。一旦您解决了阻止分发的问题,您就可以将发布包重新分发到分发失败的服务。要重新分发发布包,首先要选择它们。分布给出了重新分配所选分发版的图标。您现在可以单击该图标将每个发布包单独重新分发到指定的目标服务,或者选择重新分配按钮,将Release Bundle重新分发到批处理过程中选择的所有目标服务。
过滤器
使用筛选器只显示那些失败的发行版。
管道选项卡
管道选项卡是一个验证系统,它确定哪些管道/步骤生成了特定的工件。它为用户提供了一种方法,以确保在通过CI/CD工作流提升这些工件之前,他们的工件没有被篡改。
有关更多信息,请参见签署了管道.
规范标签
Spec选项卡显示了源Artifactory服务,这个发布包的构件就是从这个源Artifactory服务中组装起来的,以及组装构件的查询列表。
单击Artifactory服务
单击Artifactory服务在该服务的主屏幕上打开一个新选项卡
单击任意一个查询展开它,显示管理Release Bundle工件组装的查询的详细信息。
你甚至可以检查AQL复选框查看用于组装工件的最终AQL查询。
有效权限页
Effective Permissions选项卡显示为所选发布包分配的有效权限。有关更多信息,请参见权限.
编辑发布包
您可以编辑已以“创建”保存为草稿且尚未签署的发布包。
从应用程序模块下分布,转至Distributable | [Bundle_Name] | [Bundle_Version],点击行动并选择编辑的版本.
搜索发布包
平台支持使用以下方法搜索发布包:
- 专用平台发布包搜索:您可以在指定的时间内搜索可分发的和已收到的发布包页面.有关更多信息,请参见应用程序搜索.
- AQL搜索发布包:要在Artifactory Edge节点中搜索发布包,可以使用释放而且release_artifact引入AQL的域。详情请参阅实体和字段.
克隆发布包
若要克隆现有发布包版本,请选择克隆版本从行动下拉菜单。
这将复制发布包规范,包括它的名称和查询,到一个新的发布包页面中。然后可以相应地调整和保存页面上的详细信息。
删除发布包
可以使用分发界面或删除发布包REST API调用。适用于释放Bundle删除权限.
若要删除现有的发布包版本,请选择删除版本从行动下拉菜单。
有两种类型的删除选项:
从Artifactory 7.39.1版本开始,您可以验证一个发布包的空文件夹作为从目标存储库和发布包存储库中删除的一部分被删除了。这是通过Artifactory中的一个参数来完成的system.yaml
文件名为releasebundle.cleanup.deleteEmptyFolder
,默认设置为true。
释放束的x射线扫描
X射线扫描需要Pro X,企业X射线,或企业+许可证。
JFrog x射线支持对发布包的扫描,以及对发布包设置策略和手表。
在扫描您的发布包之前,您需要:
- 将发布包添加到x射线索引资源中。2022世界杯阿根廷预选赛赛程有关更多信息,请参见配置索引资源2022世界杯阿根廷预选赛赛程.
- 创建策略包含块发布包分发操作,以防止将发布包分发到边缘节点。有关更多信息,请参见创建x射线策略和规则.
- 配置一个包含发布包的手表并应用相关的策略。有关更多信息,请参见配置x射线手表.
Release Bundle扫描结果显示在Release Bundle的x射线数据页签中。
查看x射线数据
在版本包版本列表中,您可以查看扫描的版本包的状态x光状态列。
单击Release Bundle版本,在x射线数据选项卡中查看详细信息。此选项卡显示在分布式版本上可能检测到的任何违规、安全问题和许可证。您可以在版本上执行以下与x射线相关的操作:扫描违规、分配自定义问题、分配自定义许可证或导出数据。有关每个选项卡的详细信息,请参见扫描结果分析.
阻止已签名发布包的分发
您可以在x射线策略中设置块发布包分发操作,以防止包含安全漏洞的已签名发布包被分发。有关更多信息,请参见创建x射线策略和规则.
项目分布
因为分发目前还没有包含在JFrog项目中,分发将与所有项目一起工作,因此所有工作流都假设它们看到了所有项目。
查看已收到的版本包
发布包已接收选项卡允许您在一个地方查看所有已接收的发布包。
从发行版2.15.0开始,JFrog平台中的已接收包表已经更新,以支持更容易的搜索和过滤发布包。这些更新包括:
- 允许您通过名称或使用通配符以及其他发布包详细信息来查找任何发布包的搜索
- 所有的发布包都是使用REST API提取的,确保您可以搜索任何发布包,而不管它是什么时候发布的
- 发布包可以根据名称、最新版本或创建日期进行排序
REST API
以下是主要的发布包REST api:
有关发布包命令的完整列表,请参见分发REST API.