仓库布局
Artifactory允许您为您的Puppet存储库定义任何布局。要根据自定义布局上传模块,您需要使用Puppet模块构建。
这将创建一个gz然后你可以上传到本地Puppet存储库中的任何路径。
远程Puppet存储库
一个远程存储库在Artifactory中定义的缓存代理,用于在远程URL管理的存储库,例如https://forgeapi.puppetlabs.com/
.
工件(例如tar.gz
从远程存储库请求的文件)根据需要缓存。您可以从远程存储库缓存中删除下载的工件,但是,您不能手动将工件部署到远程Puppet存储库。
要定义一个远程存储库来代理远程Puppet资源,请遵循以下步骤:
- 在政府模块,在存储库|存储库|远程,点击新的远程存储库.
- 在“新建远程存储库”对话框中,设置包类型来木偶,设置库的关键属性中指定远程存储库的URLURL字段,如下所示。
- 点击保存&完成.
虚拟木偶存储库
一个虚拟在Artifactory中,存储库聚合了这两个模块当地的而且远程存储库。
这允许您通过为虚拟存储库定义的单个URL访问本地托管的Puppet模块和来自远程代理的Puppet存储库的模块。
若要定义虚拟Puppet存储库,请从政府模块,选择存储库|存储库|虚拟,设置包类型来傀儡,并选择底层本地和远程Puppet存储库,以包括在基本设置选项卡。
点击保存&完成创建存储库。
使用Puppet命令行
当通过Artifactory访问Puppet存储库时,存储库URL路径必须加上前缀api /木偶
.
这适用于所有Puppet命令,包括木偶模块安装
而且木偶模块搜索。
例如,如果你单独使用Artifactory或作为本地服务,你可以使用下面的URL访问你的Puppet存储库:
http://localhost: 8081 / artifactory / api /木偶/ < REPO_KEY >
或者,如果您正在使用Artifactory Cloud, URL将是:
https:// < server name > .jfrog.io artifactory / api /木偶/ < REPO_KEY >
要使用Puppet命令行,您需要确保在客户端上安装了Puppet。
创建了Puppet存储库之后,可以在应用模块| Artifactory | Artifacts树浏览器,单击给我介绍按钮以获取有用的代码片段。中更改Puppet存储库URLpuppet.conf
文件,并使用Puppet命令行工具解析模块。
替换默认存储库
要将默认存储库替换为指向Artifactory中的Puppet存储库的URL,请在您的puppet.con
f文件:
注意:本例使用带有密钥的存储库木偶
.
[主要]module_repository = http://localhost: 8080 / artifactory / api /木偶傀儡
提示:我们建议将虚拟存储库URL引用为存储库。这使您可以灵活地重新配置和聚合其他外部源和部署的Puppet模块的本地存储库。
注意,如果这样做,还可以使用——module_repository
参数指定在使用Puppet模块安装命令时要从中解析模块的本地存储库。
一旦配置了Puppet命令行工具,每个木偶模块安装
命令将从上面指定的Puppet存储库中获取包。例如:
$ puppet module install——module_repository=http://localhost:8080/artifactory/api/puppet/puppet puppetlabs-mysql注意:准备安装到/Users/jainishs/。puppetlabs / etc /代码/模块……注意:从http://localhost:8080/artifactory/api/puppet/puppet下载…注意:正在安装—请勿中断…/用户/ jainishs /。木偶labs/etc/code/modules └── puppetlabs-mysql (v3.10.0)
使用librarian-puppet
librarian-puppet
是您的Puppet基础设施的捆绑器。从版本5.4.5开始,您可以使用带有Artifactory的library - Puppet作为Puppet存储库管理基础设施所依赖的Puppet模块。
要配置library -puppet从Artifactory获取模块,a将下列文件寄给贵公司Puppetfile
:
打造“http:// < ARTIFACTORY_HOST_NAME >: < ARTIFACTORY_PORT > / artifactory / api /木偶/ < REPO_KEY >”
例如,使用librarian-puppet的Puppetfile可能看起来像这样:
伪造“http://localhost:8080/artifactory/api/puppet/puppet-local”mod 'puppetlabs-mysql', '3.7.0' mod 'puppetlabs-apache', '1.5.0'
使用实例从Artifactory中获取并安装Puppet模块。
library -puppet install——no-use-v1-api
使用r10k
r10k是一个Puppet环境和模块部署工具。从版本5.4.5开始,您可以使用r10k从Artifactory Puppet存储库中获取Puppet环境和模块以进行部署。
要配置r10k从Artifactory获取模块,a将下列文件寄给贵公司r10k.yaml
文件:
forge: baseurl: 'http://: /artifactory/api/puppet/ '
例如:
Forge: baseurl: 'http://localhost:8080/artifactory/api/puppet/puppet-local'
使用实例从Artifactory中获取并安装Puppet模块。
R10k puppetfile安装
Puppet发布(部署模块)
设置证书
要支持身份验证,您需要将Artifactory凭据添加到您的puppet.conf
文件:
注意:您的证书应格式化为用户名:密码
作为一个Base64编码的字符串
您的Artifactory凭据,已格式化用户名:密码
作为Base64编码的字符串。
例如:
[主要]module_repository = http://admin: AP7eCk6M6JokQpjXbkGytt7r4sf@localhost: 8080 / artifactory / api /木偶/ puppet-local
确保您有一个Artifactory用户,以便发布模块。
部署模块
有两种方法将包部署到本地存储库:
使用Artifactory UI
一旦创建了Puppet存储库,就可以在Tree Browser中选择它并单击部署上传Puppet模块。
选择您的模块,然后单击部署.- 使用Artifactory REST API
例如:curl -uadmin:AP7eCk6M6JokQpjXbkGytt7r4sf -XPUThttp://localhost: 8080 / artifactory / puppet-local / < TARGET_FILE_PATH> -t < path_to_file > . txt
在没有匿名访问的情况下使用Artifactory
默认情况下,Artifactory允许匿名访问Puppet存储库。定义在政府模块下安全|一般.详情请参阅允许匿名访问.
控件,以便能够跟踪用户如何与存储库交互,需要取消选中允许匿名访问设置。这意味着用户将需要输入所述的用户名和密码设置证书以上。
木偶的搜索
Artifactory支持多种搜索工件的方法。详情请参阅搜索Artifacts_OLD.但是,由于以下原因,一个模块在发布后可能不能立即可用:
- 当将模块发布到本地存储库时,Artifactory会异步计算搜索索引,并等待为新发布的模块建立索引。
- 由于虚拟存储库可能包含本地存储库,因此由于相同的原因,新发布的包可能不会立即可用。
- 在远程存储库的情况下,只有当Artifactory根据检索缓存周期设置。
Artifactory用两个属性注释每个部署或缓存的Puppet模块:puppet.name
而且puppet.version
您可以使用属性搜索根据Puppet包的名称或版本搜索Puppet包。
清理本地傀儡缓存
Puppet客户端保存已下载模块的缓存,以及它们的JSON元数据响应(称为.cache.json
).
JSON元数据缓存文件包含Puppet模块元数据。
我们建议在第一次使用Artifactory之前删除Puppet缓存,包括模块和元数据。这是为了确保您的缓存只包含来自Artifactory请求的元素,而不是直接来自Artifactory的https://forge.puppet.com
.
查看单个木偶模块信息
Artifactory允许您直接从UI查看选定的Puppet模块元数据。
在树浏览器并选择tar.gz
文件中要检查的元数据木偶的信息选项卡。
使用Puppet 4.9.1及以下版本
在4.9.1版本之前,Puppet客户端不支持远程Puppet Forge存储库的上下文路径。因此,我们建议使用Artifactory和Puppet 4.9.2及以上版本。
如果你需要使用Puppet 4.9.1及以下版本,你可以使用NGINX或Apache来重写所有请求/ v3 / *
来/ artifactory / api /木偶/ < repo-name > / v3 / *。
例如,如果您有一个名为puppet-virtual
,并且您使用的是Puppet 3.0,您将配置您的代理服务器来重写/ v3 / *
来/ artifactory / api /木偶puppet-virtual / v3 / *
.
下面的章节展示了NGINX和Apache的ports方法和子域方法的配置示例,以使用名为puppet-virtual
.
一旦配置了反向代理,就可以使用以下命令从Artifactory安装模块:
端口的方法
Puppet模块安装——module_repository http://localhost:8001 puppetlabs-apache
子域法
Puppet模块安装——module_repository http://puppet-virtual.artifactory-cluster puppetlabs-apache
REST API
以下REST API端点可用来促进使用Puppet进行配置管理的自动化。Artifactory还使用这些端点来支持librarian-puppet
而且r10k
客户: