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