配置
本地厨师超市
要启用本地存储库中Chef包元数据的计算,使它们实际上成为Chef超市,请设置包类型来厨师创建存储库时:
仓库布局
Artifactory允许您为Chef Cookbook存储库定义任何布局。为了根据您的自定义布局上传包,您需要将Chef Cookbook文件与Knife或Berkshelf打包,并将文件存档为tar.gz.然后你可以上传到你当地的Chef超市的任何路径出版烹饪书.
远厨超市
一个远程存储库Artifactory中定义的作为在远程URL上管理的超市的缓存代理,例如https://supermarket.chef.io
.
从远程存储库请求的工件(如tgz文件)将按需缓存。您可以从远程存储库缓存中删除下载的构件,但是,您不能手动将构件部署到远程Chef存储库。
要定义一个远程存储库来代理远程Chef Cookbook,请遵循以下步骤:
- 在政府模块,在存储库|存储库|远程,点击新建远程存储库.
- 选择厨师从选择包类型对话框。
- 在New Repository对话框中,设置库的关键中指定远程存储库的URLURL字段,如下所示。
- 点击保存并完成.
虚拟厨师超市
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[: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命令:
** ARTIFACTORY命令**刀具人工下载COOKBOOK [VERSION](选项)刀具人工安装COOKBOOK [VERSION](选项)刀具人工列表(选项)刀具人工搜索查询(选项)刀具人工共享COOKBOOK [CATEGORY](选项)刀具人工显示COOKBOOK [VERSION](选项)刀具人工取消共享COOKBOOK版本
这些命令是标准Knife超市命令的包装,这些命令支持基本身份验证。要添加这些凭据,请将它们预先附加到配置的Chef超市的URLknife.rb文件:
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
File是必选项。如果它不存在于您的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:
artifactory_api_key " < APIKEY > "
然后在你的Berksfile的Cookbook中设置默认超市:
来源:'http://localhost:8081/artifactory/api/chef/chef-virtual'
然后可以执行博克斯
命令从Artifactory下载所需的依赖项:
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.name,chef.version
和chef.maintainer
.如果可用,它还将添加chef.dependencies,chef.platforms
多值属性。
你可以用属性搜索根据名称、版本、维护者、依赖项或平台要求搜索Chef Cookbook。