如何使用REST api将许可证桶中的许可证附加到工件上?
总结
您可以将此解决方案用于
- 人工许可证发放自动化
- 当Artifactory无法添加到任务控制时,发放license
影响版本
Artifactory 6。X & 7。x, Mission Control 3.x & 4.x
细节
JFrog任务控制中心为有效管理多个JFrog平台部署(JPD)提供了许多功能——Artifactory、Edge、Distribution和Xray的组合。因此,如果这些喷气推进装置由任务控制中心管理,这是最好的做法。虽然大多数JPD服务都需要连接到任务控制,但如果您有任何网络或安全限制,您可以选择在不连接到任务控制的情况下设置Artifactory (Edge和Enterprise+)。此解决方案描述了如何使用REST api附加许可证,这对于自动化流程非常有用。
此解决方案还可用于使用每个REST API实现许可证发放流程的一般自动化。
决议
[当人工/边缘可以连接到任务控制]
1.添加新的license桶到一个任务控制通过REST api或通过用户界面
2.添加一个Artifactory或边缘到任务控制
这些步骤可以通过网站和服务REST api。也可以通过用户界面
3.获取并附加license
使用任务控制REST API:附加许可证来附加license从license桶到Artifactory。
4.验证License信息
使用人工REST API:许可信息REST
[当Artifactory/Edge无法连接到任务控制中心]
请记住,将Artifactory/Edge添加到任务控制中是最佳实践,因此您可以轻松跟踪和管理使用情况和许可。在多个实例中使用同一个许可证违反了许可协议.
1.添加license桶到一个任务控制通过REST api或通过用户界面
2.获得许可证
<与任务控制4.x>
使用任务控制REST API:获取许可来输出许可证从license桶中。
<与任务控制3.x>
使用任务控制REST API:附加许可证与“部署”:假的来输出license从license桶中。更新Artifactory许可证所需的JSON文件使用licenseKey(注意K是大写的)作为键,这与Mission Control REST API提供的键(license_key)不同。因此,您可以使用下面的sed命令来修复这个问题。
例如,请注意“/ mc /”如果您使用的是分离版本的Mission Control,而不是与Artifactory结合的新版本,则不需要在URI中添加。
curl -X POST -uadmin:password http://my.jfrog.platform.url/mc/api/v3/attach_lic/buckets/999748414 -H 'Content-Type: application/json' -H 'cache-control: no-cache' -d '{
"service_name": "EdgeKansasCity";
deploy: false
}' > license。sed -i -e 's/license_key/licenseKey/g' license.json &&
3.将许可证附加到Artifactory/Edge
使用许可证。将许可证提供给Artifactory节点。例如,
curl -XPOST https://my.jfrog.platform.url/artifactory/api/system/licenses -d@license.json -H "Content-Type: application/json" -uadmin:password
以下是可用于管理人工许可证的REST api列表:
4.对于离线许可证安装,请手动跟踪站点和许可证
确保提供一个唯一的名称作为service_name来提供帮助手动跟踪以下内容因为Artifactory没有连接到任务控制中心
- 与附加许可证REST API一起使用的service_name。
- 由于每个活动节点仅使用一次许可文件,因此将许可证手动部署到哪个Artifactory/Edge。在多个Artifactory中使用相同的许可违反了许可使用协议。
[卸载许可证]
将license释放到license Bucket时,使用Detach license REST API将license解绑定回license Bucket时需要service_name。
<与任务控制4.x>
使用发布许可证REST API
<与任务控制3.x>
使用分离许可证REST API如下所示删除/api/v3/detach_lic/bucket/{bucket NAME例如,请注意“/ mc /”如果您使用的是分离版本的Mission Control,而不是与Artifactory结合的新版本,则不需要在URI中添加。
{
"service_name": "{ServiceName}"
}curl -X DELETE -uadmin:password \
https://my.jfrog.platform.url/mc/api/v3/detach_lic/buckets/edge \
-H 'Content-Type: application/json'
- d”{
"service_name": "my-edge-in-kansas"
} '
