云客户?
开始免费>
升级MyJFrog >
什么是新的云>





概述

Artifactory为管理Puppet模块提供了全面支持,确保了对的最佳和可靠访问傀儡伪造通过将多个Puppet存储库聚合到单个虚拟存储库artix之下允许通过单个URL上传和下载访问所有Puppet模块。

作为一个完全成熟的Puppet存储库,除了它的功能之外先进的工件管理, Artifactory的支持木偶提供:

  1. 能够为所有存储库类型从artix到Puppet命令行工具提供Puppet模块。
  2. 计算位于Artifactory本地存储库中的Puppet模块的元数据。
  3. 访问远程Puppet存储库,例如https://forgeapi.puppetlabs.com/,使用远程存储库它提供代理和缓存功能。
  4. 从一个URL访问多个Puppet存储库,方法是将它们聚合在一个虚拟存储库.这克服了Puppet客户端一次只能访问单个注册中心的限制。

  5. 支持灵活的puppet存储库布局它允许您组织您的Puppet模块,并根据项目或开发团队分配访问权限。

傀儡版本支持

Puppet不支持4.9.1版本的上下文路径,我们建议在Puppet版本中使用Artifactory4.9.2及以上。如果您正在使用,请参阅下面Puppet 4.9.1及以下版本

配置

当地的傀儡库

要在本地存储库中启用Puppet模块元数据的计算,可以从政府模块去存储库|存储库|当地的设置包类型木偶当您创建存储库时。

页面内容

仓库布局

Artifactory允许您为您的Puppet存储库定义任何布局。要根据您的自定义布局上传模块,您需要使用傀儡模块构建。

这将创建一个gz然后您可以将它上传到本地Puppet存储库中的任何路径。

远程傀儡存储库

一个远程存储库在Artifactory中定义的存储库用作在远程URL管理的存储库的缓存代理,例如https://forgeapi.puppetlabs.com/

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

要定义一个远程存储库来代理一个远程Puppet资源,请执行以下步骤:

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

虚拟傀儡库

一个虚拟repository,在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存储库之后,您可以在Application Module | Artifactory | Artifacts树浏览器,并单击陷害我按钮以获取有用的代码片段。控件中更改Puppet存储库URLpuppet.conf使用Puppet命令行工具解析模块。

替换默认存储库

要用指向Artifactory中的Puppet存储库的URL替换默认存储库,请在您的puppet.conf文件:

注意:本例使用带有键的存储库木偶

[主要]module_repository = http://localhost: 8080 / artifactory / api /木偶傀儡

提示我们建议将虚拟存储库URL作为存储库引用。这使您可以灵活地重新配置和聚合部署的Puppet模块的其他外部源和本地存储库。
注意,如果这样做,还可以使用——module_repository参数指定在使用Puppet模块安装命令时要从其中解析模块的本地存储库。

一旦配置了Puppet命令行工具,每个傀儡模块安装命令将从上面指定的Puppet存储库获取包。例如:


注意:准备安装到/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 >”

例如,一个使用library -puppet的Puppetfile可能看起来像这样:

锻造“http://localhost:8080/artifactory/api/puppet/puppet-local”mod“puppetlabs-mysql”,“3.7.0”mod“puppetlabs-apache”,“1.5.0”

从Artifactory中获取并安装Puppet模块,执行以下命令:

librarian-puppet安装——no-use-v1-api

使用r10k

r10k是一个Puppet环境和模块部署工具。从5.4.5版本开始,您可以使用r10k从一个Artifactory Puppet存储库中获取Puppet环境和模块,以便进行部署。

要配置r10k从Artifactory获取模块,a请将下列内容添加到您的r10k.yaml文件:

锻造:baseurl: http:// < ARTIFACTORY_HOST_NAME >: < ARTIFACTORY_PORT > / artifactory / api /木偶/ < REPO_KEY >”

例如:

锻造:baseurl: http://localhost: 8080 / artifactory / api /木偶/ 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用户。

部署模块

有两种方法可以将包部署到本地存储库:

  1. 使用Artifactory UI
    一旦创建了Puppet存储库,就可以在Tree Browser中选择它并单击部署上传Puppet模块。
    选择您的模块,然后单击部署



  2. 使用Artifactory REST API
    例如:
    旋度-uadmin: AP7eCk6M6JokQpjXbkGytt7r4sf -XPUThttp://localhost: 8080 / artifactory / puppet-local / < TARGET_FILE_PATH> - t < PATH_TO_FILE >

在没有匿名访问的情况下使用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


查看Puppet各个模块信息

Artifactory允许您直接从UI查看选定的Puppet模块元数据。

树浏览器并选择tar.gz的文件,并查看元数据木偶的信息选项卡。


使用4.9.1及以下版本的Puppet

直到4.9.1版本,Puppet客户端不支持远程Puppet Forge存储库的上下文路径。因此,我们建议在Puppet 4.9.2及以上版本中使用Artifactory。

如果你需要使用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的端口方法和子域方法的配置示例,以使用一个名为puppet-virtual

##服务器配置服务器{监听8001;Location ^~/v3 {rewrite ^/v3/(.*) /artifactory/api/puppet/puppet-virtual/v3/$1 break;proxy_redirect;proxy_pass http://localhost: 8080 / artifactory /;}}
##服务器配置服务器{监听443 ssl;听80;server_name ~ \(? <回购>。+)。artifactory-cluster artifactory-cluster;如果($http_x_forwarded_proto = "){设置$http_x_forwarded_proto $scheme;access_log /var/log/nginx/artifactory-cluster-access.log定时;# # error_log /var/log/nginx/artifactory-cluster-error.log;重写^/$ /artifactory/webapp/ redirect;重写^ / artifactory ? (/ webapp) ?美元/ artifactory / webapp /重定向;重写^ / (v1 | v2) / (. *) / artifactory / api /码头工人/回购美元/ 1 / 2美元; rewrite ^/v3/(.*) /artifactory/api/puppet/$repo/v3/$1; chunked_transfer_encoding on; client_max_body_size 0; location /artifactory/ { proxy_read_timeout 900; proxy_pass_header Server; proxy_cookie_path ~*^/.* /; if ( $request_uri ~ ^/artifactory/(.*)$ ) { proxy_pass http://artifactory/artifactory/$1; } proxy_pass http://artifactory/artifactory/; proxy_next_upstream http_503 non_idempotent; proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port/artifactory; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
########################################################### ## 这个配置是由JFrog Artifactory  ## ########################################################### ## 添加HA条目时HA配置<代理均衡器:/ / artifactory > BalancerMember http://10.6.16.125:8080路线= 14901314097097 ProxySet lbmethod = byrequests ProxySet stickysession = ROUTEID < /代理> < VirtualHost *: 80 > ProxyPreserveHost在ServerName artifactory-cluster ServerAlias *。artifactory-cluster ServerAdmin server@admin ##应用特定日志## ErrorLog ${APACHE_LOG_DIR}/artifactory-cluster-access.log combined AllowEncodedSlashes On RewriteEngine On RewriteCond %{SERVER_PORT} (.*) RewriteRule (.*) - [E=my_server_port:%1] ##'REQUEST_SCHEME'头只支持apache 2.4及以上版本的RewriteCond %{REQUEST_SCHEME} (.*) RewriteRule (.*) - [E=my_scheme:%1] RewriteCond %{HTTP_HOST} (.*) RewriteRule (.*) - [E=my_custom_host:%1] RewriteRule ^/$ /artifactory/webapp/ [R,L] RewriteRule ^/artifactory(/)?$ /artifactory/webapp/ [R,L] RewriteRule ^/artifactory/webapp$ /artifactory/webapp/ [R,L] RequestHeader set Host %{my_custom_host}e RequestHeader set x - forwarder - port %{my_server_port}e ##{my_scheme}需要一个仅支持apache 2.4及以上版本的模块RequestHeader设置x - forward - proto %{my_scheme}e RequestHeader设置x - artifactory- over叫base - url %{my_scheme}e://artifactory-cluster:%{my_server_port}e/artifactory ProxyRequests off ProxyPreserveHost on ProxyPass /artifactory/ balancer://artifactory/artifactory/ balancer://artifactory/artifactory/ Header添加set - cookie“ROUTEID = e % {BALANCER_WORKER_ROUTE};path=/artifactory/" env=BALANCER_ROUTE_CHANGED  Listen 8001  ProxyPreserveHost On ServerName artifactory-cluster ServerAlias *。artifactory-cluster ServerAdmin server@admin ##应用特定日志## ErrorLog ${APACHE_LOG_DIR}/artifactory-cluster-access.log combined AllowEncodedSlashes On RewriteEngine On RewriteCond %{SERVER_PORT} (.*) RewriteRule (.*) - [E=my_server_port:%1] ##'REQUEST_SCHEME'头只支持apache 2.4及以上版本重写econd %{REQUEST_SCHEME}(.*)重写规则(.*)- [E=my_scheme:%1]重写econd %{HTTP_HOST}(.*)重写规则(.*)- [E=my_custom_host:%1]重写规则"^/v3/(.*)$" "/artifactory/api/puppet/puppet-virtual/v3/$1" [P]重写规则^/$ /artifactory/webapp/ [R,L]重写规则^/artifactory(/)?$ /artifactory/webapp/ [R,L] RewriteRule ^/artifactory/webapp$ /artifactory/webapp/ [R,L] RequestHeader set Host %{my_custom_host}e RequestHeader set x - forwarder - port %{my_server_port}e ##{my_scheme}需要一个仅支持apache 2.4及以上版本的模块RequestHeader设置x - forward - proto %{my_scheme}e RequestHeader设置x - artifactory- over叫- url %{my_scheme}e://artifactory-cluster:%{my_server_port}e/artifactory ProxyPassReverseCookiePath /artifactory propass /artifactory/ balancer://artifactory/ ProxyPassReverse /artifactory/ balancer://artifactory/artifactory/ artifactory/ Header add set - cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e;路径= / artifactory / env = BALANCER_ROUTE_CHANGED < /虚拟主机>
########################################################### ## 这个配置是由JFrog Artifactory  ## ########################################################### ## 添加HA条目时HA配置<代理均衡器:/ / artifactory > BalancerMember http://10.6.16.125:8080路线= 14901314097097 ProxySet lbmethod = byrequests ProxySet stickysession = ROUTEID < /代理> < VirtualHost *: 80 > ProxyPreserveHost在ServerName artifactory-cluster ServerAlias *。artifactory-cluster ServerAdmin server@admin ##应用特定日志## ErrorLog ${APACHE_LOG_DIR}/artifactory-cluster-access.log combined AllowEncodedSlashes On RewriteEngine On RewriteCond %{SERVER_PORT} (.*) RewriteRule (.*) - [E=my_server_port:%1] ##'REQUEST_SCHEME'头只支持从apache版本2.4及以上重写econd %{REQUEST_SCHEME}(.*)重写规则(.*)- [E=my_scheme:%1]重写econd %{HTTP_HOST}(.*)重写规则(.*)- [E=my_custom_host:%1]重写econd "%{REQUEST_URI}" "^/(v1|v2|)/"重写econd "%{HTTP_HOST}" "^(.*)\。artifactory-cluster$" RewriteRule "^/v3/(.*)$" "/artifactory/api/puppet/%1/v3/$1" [PT] RewriteRule "^/(v1|v2)/(.*)$" /artifactory/api/docker/%1/$1/$2" [PT] RewriteRule ^/$ /artifactory/webapp/ [R,L] RewriteRule ^/artifactory(/)?$ /artifactory/webapp/ [R,L] RewriteRule ^/artifactory/webapp$ /artifactory/webapp/ [R,L] RequestHeader set Host %{my_custom_host}e RequestHeader set x - forwarder - port %{my_server_port}e ##{my_scheme}需要一个仅支持apache 2.4及以上版本的模块RequestHeader设置x - forward - proto %{my_scheme}e RequestHeader设置x - artifactory- over叫base - url %{my_scheme}e://artifactory-cluster:%{my_server_port}e/artifactory ProxyRequests off ProxyPreserveHost on ProxyPass /artifactory/ balancer://artifactory/artifactory/ balancer://artifactory/artifactory/ Header添加set - cookie“ROUTEID = e % {BALANCER_WORKER_ROUTE};路径= / artifactory / env = BALANCER_ROUTE_CHANGED < /虚拟主机>

一旦你配置好了你的反向代理,你就可以使用以下命令从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客户:

  • 没有标签
版权所有©2022 JFrog有限公司