云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

Artifactory支持Chef Cookbook知识库最重要的是现有的支持用于高级工件管理。

对Chef Cookbook的人工支持提供:

  1. 将Cookbook包从Artifactory提供给Knife和Berkshelf命令行工具的能力。

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

  3. 访问远程Cookbook存储库(特别是厨师超市公共资料库)透过远程存储库它们提供代理和缓存功能。

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

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

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

厨师库

Chef使用了a的概念厨师库,表示在工作站上存储它们自己的数据对象。这与Artifactory中“repository”的使用不同。

Chef为烹饪书包提供了一个官方的“超市”,所以Artifactory中的Chef存储库实际上是Chef术语中的Chef超市。这个页面可以互换地引用Chef Cookbook仓库和Chef超市。

页面内容


配置

本地厨师超市

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

仓库布局

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

远厨超市

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

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

要定义一个远程存储库来代理远程Chef Cookbook,请遵循以下步骤:

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

虚拟厨师超市

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

要定义虚拟Chef Cookbook存储库,请创建虚拟存储库中,选择厨师选择包类型对话框,并选择底层的本地和远程Chef存储库以包含在基本设置选项卡。


使用刀命令行

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命令行工具部署和解析包。


设置默认的Chef超市,并使用指向Artifactory中的Chef超市的URL~ / .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插件

安装knife-art插件
厨师宝石装刀艺

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

刀工艺品插件命令
** ARTIFACTORY命令**刀具人工下载COOKBOOK [VERSION](选项)刀具人工安装COOKBOOK [VERSION](选项)刀具人工列表(选项)刀具人工搜索查询(选项)刀具人工共享COOKBOOK [CATEGORY](选项)刀具人工显示COOKBOOK [VERSION](选项)刀具人工取消共享COOKBOOK版本

这些命令是标准Knife超市命令的包装,这些命令支持基本身份验证。要添加这些凭据,请将它们预先附加到配置的Chef超市的URLknife.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.jsonFile是必选项。如果它不存在于您的cookbook中,您可以使用Knife命令生成它,然后将其发布到Artifactory。例如:

出版一本新的烹饪书
$ chef generate cookbook myapp $ knife artifactory share myapp tool

使用Berkshelf命令行

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

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

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


设置Berkshelf使用的人工API密钥
artifactory_api_key " < APIKEY > "

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


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

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

使用Berkshelf解决依赖关系
vagrant@default-ubuntu-1404:~/chef-zero/mycookbook$ berks解决食谱依赖…从源处获取'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用至少3个属性注释每个部署或缓存的Chef Cookbook包:chef.namechef.versionchef.maintainer.如果可用,它还将添加chef.dependencieschef.platforms多值属性。

你可以用属性搜索根据名称、版本、维护者、依赖项或平台要求搜索Chef Cookbook。

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