任务控制:如何从许可证桶中提取许可证

德里克·庞
2023-01-22 11:07

本文将介绍使用任务控制分离和提取许可证,以及在没有任务控制的情况下如何提取许可证。所提供的屏幕截图和示例利用任务控制作为微服务,可以在Artifactory system.yaml中启用。这些示例中的Artifactory版本是7.39.4。
即。主持人:
启用:真

使用任务控制从桶中提取许可证

拆分Bucket可以通过UI或Rest API来完成。

在UI中,你可以选择“拆分”选项。

1.用户添加图片

2.

用户添加图片

3.然后,您将通过展开原始桶来看到拆分桶。

用户添加图片
有时您可能希望手动提取许可证,这可以使用Rest API完成。

首先,您需要一个任务控制访问令牌。
这可以从UI中获得。
管理->用户管理/访问令牌->生成令牌
令牌必须在服务中包含“任务控制”。

用户添加图片

继续复制这个访问令牌。Rest API命令将需要它。

用户添加图片

获取任务控制的REST API许可将用于获取许可证。curl -XPOST -H 'Authorization: Bearer ' -H "Content-Type: application/json"——data '{"name": "", "license_count": }' ' /mc/api/v1/buckets//acquire > .json
使用中的例子:curl -XPOST -H '授权:承载eyJ…' -H "Content-Type: application/json"——data " {"name": " divided ", "license_count": 1} " ' https://derek.artifactory.io/mc/api/v1/buckets/testbucket/acquire > license.json
本例获取许可证并将结果输出到文件。

运行此命令后,您将在该桶(即testbucket)的桶报告中看到以这种方式获得的许可证。

用户添加图片

边注
- - -
如果以后您需要发布这些许可证,您可以使用发布许可证REST APIcurl -XPOST -H 'Authorization: Bearer ' -H "Content-Type: application/json"——data '{"name": ""}' ' /mc/api/v1/buckets//release使用中的例子:curl -XPOST -H '授权:承载eyJ…-H "Content-Type: application/json"——data " {"name": " divided "} " https://derek.artifactory.io/mc/api/v1/buckets/testbucket/release- - -

在获取命令的输出文件中,您将看到从桶中提取的许可证。它们将具有“rn”字符,并且需要删除才能正确读取许可证。
为此,我使用了sed。
例如:sed的年代! \ \ r \ \ n ! !g”执照。Json | jq这将以可读的格式输出许可证。如果你没有jq,你可以把它输出到一个文件中,然后打开它(即,而不是“| jq”使用“> licenseformated .json”)。Jq有助于可读性,并找到json对象中单独的许可证的位置。

在没有任务控制的情况下从桶中提取许可证

就像在这篇文章中提到的知识库文章您可以在没有任务控制的情况下,通过对使用签名URL下载的json运行openssl命令,从License Bucket中提取许可证寄给你(在浏览器中打开URL,下载json文件):openssl aes-256-cbc -d -md md5 -in .json
这将提示您输入密码,这将是与签名URL一起发送给您的密钥。

这将输出一个包含许可证的json。必须删除' rn '字符,您可以使用sed和jq来删除。
例子:openssl aes-256-cbc -d -md md5 -in .json|jq '.licenses | .[] | .key' | sed 's!\\r\\n!!g'这将输出用引号括起来的每个许可证。