云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

Artifactory支持厨师食谱库在它的顶部现有的支持用于高级工件管理。

Artifactory支持Chef Cookbook提供:

  1. 从Artifactory提供Cookbook包到所有存储库类型的Knife和Berkshelf命令行工具的能力。

  2. 计算托管在Artifactory本地存储库中的Cookbook包的元数据。

  3. 访问远程烹饪书存储库(特别是厨师超市公共储存库)远程存储库提供代理和缓存功能。

  4. 通过将多个Cookbook存储库聚合到一个虚拟存储库下,从一个URL访问多个Cookbook存储库的能力。这克服了Knife客户端一次只能访问一个存储库的限制。

  5. 兼容刀命令行工具列出,显示和安装烹饪书。与Berkshelf命令行的兼容性,以解决Cookbook依赖关系。

  6. 根据项目或开发团队分配访问权限的能力。

厨师库

主厨使用了一个概念厨师库,表示将自己的数据对象存储在工作站上。这与Artifactory中“存储库”的使用不同。

Chef为食谱包提供了一个官方的“超市”,因此Artifactory中的Chef存储库实际上是Chef术语中的Chef超市。本页可互换地引用Chef Cookbook库和Chef超市。

页面内容


配置

本地厨师超市

要启用本地存储库中的Chef包元数据计算,以便它们实际上是Chef超市,请设置包类型厨师创建存储库时:

仓库布局

Artifactory允许您为Chef Cookbook存储库定义任何布局。为了根据您的自定义布局上传包,您需要使用Knife或Berkshelf打包您的Chef Cookbook文件,并将文件归档为tar.gz.然后,您可以上传至本地Chef超市内的任何路径,参见出版烹饪书

远程厨师超市

一个远程存储库在Artifactory中定义的服务作为在远程URL中管理的超市的缓存代理,例如https://supermarket.chef.io

从远程存储库请求的工件(如tgz文件)将根据需要缓存。您可以从远程存储库缓存中删除下载的构件,但是,您不能手动将构件部署到远程Chef存储库。

要定义远程存储库来代理远程Chef Cookbook,请执行以下步骤:

  1. 政府模块,在存储库|存储库|远程存储库,点击新的远程存储库
  2. 选择厨师选择包类型对话框。
  3. 在“新建存储库”对话框中,设置库的关键属性中指定远程存储库的URLURL字段,如下所示。
  4. 点击保存&完成

虚拟厨师超市

Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。
这允许您从为虚拟存储库定义的单个URL访问本地托管的Chef Cookbook包和远程代理的Chef Cookbook存储库。

若要定义虚拟Chef Cookbook存储库,请创建虚拟存储库中,选择厨师选择包类型对话框,并选择要包含在基本设置选项卡。


使用刀具命令行

Chef存储库必须在路径中添加api/ Chef前缀

当通过Artifactory访问Chef超市时,存储库URL必须加上前缀api /厨师在路上。这适用于所有的刀命令。

例如,如果您使用Artifactory独立或作为本地服务,您将使用以下URL访问您的Chef超市:

http://localhost:8081/artifactory/api /厨师/<库关键>

或者,如果您正在使用Artifactory Cloud, URL将是:

https:// < server name > .jfrog.io / artifactory /api /厨师/<库关键>


要使用Knife命令行,您需要确保它已安装。它是ChefDK的一部分以各种方式安装

一旦创建了Chef超市,就可以在Tree Browser中选择它并单击给我介绍获取可用于更改Chef超市URL的代码片段,并使用knife命令行工具部署和解析包。


在Artifactory中使用指向Chef超市的URL来设置默认的Chef超市~ / .chef / knife.rb配置文件(下面的示例使用带有密钥的存储库chef-virtual).您可以使用您的用户名和密码或您的Artifactory API密钥验证请求:

为拥有凭证的Knife设置默认的Chef超市
knife[:supermarket_site] = 'http://admin:password@localhost:8081/artifactory/api/chef/chef-virtual'或knife[:supermarket_site] = 'http://admin:@localhost:8081/artifactory/api/chef/chef-virtual'

knife.rbfile location

这把刀。Rb文件默认不存在。属性可以创建刀配置命令。请参阅刀的文档可能的刀。rb的位置。

方法可以覆盖此文件的位置——配置参数


在没有匿名访问的情况下使用Artifactory

默认情况下,Artifactory允许对Chef存储库进行匿名访问。它的定义是安全|总体配置.详情请参阅允许匿名访问
控件,如果希望能够跟踪用户如何与存储库交互,则需要取消选中允许匿名访问设置。这意味着用户需要输入用户名和密码。

Knife命令行工具不支持基本身份验证(它只支持使用RSA密钥进行身份验证)。
要启用基本身份验证,需要安装knife-art.gem插件

安装刀艺术插件
厨师宝石安装刀艺术

如果正确安装,您应该看到以下特定的Artifactory命令:

Knife Artifactory插件命令
** ARTIFACTORY命令**刀ARTIFACTORY下载COOKBOOK[版本](选项)刀ARTIFACTORY安装COOKBOOK[版本](选项)刀ARTIFACTORY列表(选项)刀ARTIFACTORY搜索查询(选项)刀ARTIFACTORY共享COOKBOOK[类别](选项)刀ARTIFACTORY显示COOKBOOK[版本](选项)刀ARTIFACTORY取消共享COOKBOOK版本

这些命令是标准Knife超市命令的包装,这些命令支持基本身份验证。要添加这些凭据,请将它们预挂到您的knife.rb文件:

为拥有凭证的Knife设置默认的Chef超市
Knife [:supermarket_site] = 'http://admin:password@localhost:8081/artifactory/api/chef/chef-virtual'

使用加密密码

使用加密密码,而不是明文密码;看到统一安全密码



出版烹饪书

可以使用UI或简单的REST API调用来上传tgz / tar.gz将Cookbook包含到Chef存储库中。

Artifactory会自动提取相关信息metadata.json以便稍后为索引提供服务并正确响应客户端调用。这metadata.json文件是必填项。如果您的烹饪书中不存在它,您可以使用Knife命令生成它,然后将它发布到Artifactory。例如:

出版一本新的食谱
$ chef生成食谱myapp $ knife artifactory共享myapp工具

使用伯克货架命令行

从版本6.1.0开始,Berkshelf支持使用API密钥对Artifactory进行身份验证访问。以前版本的Berkshelf只支持对Artifactory的匿名访问。

Berkshelf是Chef Cookbooks的依赖管理器,并且是ChefDK

要解决来自Artifactory中的Chef超市的依赖关系,首先使用config.rb


设置Artifactory API密钥供berkshire使用
artifactory_api_key " < APIKEY > "

然后在你的Berksfile's Cookbook中设置默认超市:


为Berkshelf设置默认的Chef超市
来源artifactory: 'http://localhost:8081/artifactory/api/chef/chef-virtual'

然后可以执行博克斯命令从Artifactory下载所需的依赖项:

与Berkshelf解决依赖关系
vagrant@default-ubuntu-1404:~/chef-zero/mycookbook$ berks解决cookbook依赖…获取'mycookbook'从源在。从http://localhost:8081/artifactory/api/chef/chef-virtual获取食谱索引…从http://localhost:8081/artifactory/api/chef/chef-virtual ([opscode] http://localhost:8081/artifactory/api/chef/chef-virtual/api/v1)安装chef-apt-docker(1.0.0)从http://localhost:8081/artifactory/api/chef/chef-virtual ([opscode] http://localhost:8081/artifactory/api/chef/chef-virtual/api/v1)安装chef-yum-docker(1.0.1)从http://localhost:8081/artifactory/api/chef/chef-virtual ([opscode] http://localhost:8081/artifactory/api/chef/chef-virtual/api/v1)Installing compat_resource (12.16.2) from http://localhost:8081/artifactory/api/chef/chef-virtual ([opscode] http://localhost:8081/artifactory/api/chef/chef-virtual/api/v1) Using mycookbook (0.1.0) from source at . Installing yum (4.1.0) from http://localhost:8081/artifactory/api/chef/chef-virtual ([opscode] http://localhost:8081/artifactory/api/chef/chef-virtual/api/v1)



查看个人厨师烹饪书信息

Artifactory允许您直接从UI查看Chef Cookbook的选定元数据。

应用程序模块,Artifactory|工件选项卡,树浏览器,向下钻取以选择tgz / tar.gz要检查的文件。元数据显示在厨师信息选项卡。


搜索厨师食谱

Artifactory支持多种方式搜索工件
Artifactory还支持刀搜索[搜索词…]:

  • 对于本地存储库,它将在名称、描述和维护者字段中查找给定的术语。
  • 对于远程存储库,将在本地缓存上执行搜索,然后将搜索查询转发到外部存储库,并在返回给客户端之前合并结果。
  • 对于虚拟存储库,搜索将在本地存储库上完成,然后在远程存储库上完成,在返回客户端之前将结果合并。


属性

Artifactory为每个部署或缓存的Chef Cookbook包注释了至少3个属性:chef.namechef.version而且chef.maintainer.如果可用,它还将添加chef.dependencieschef.platforms多值属性。

你可以使用属性搜索,按名称、版本、维护者、依赖关系或平台要求搜寻Chef Cookbook。

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