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