Git 评估资源语句时出错,未知资源类型:';vcsrepo&x27;
我正在使用puppet部署代码。我正在尝试从git repo克隆代码Git 评估资源语句时出错,未知资源类型:';vcsrepo&x27;,git,automation,puppet,devops,Git,Automation,Puppet,Devops,我正在使用puppet部署代码。我正在尝试从git repo克隆代码 vcsrepo { "/home/$server_admin/public_html": ensure => latest, owner => "$server_admin", group => "$server_admin", provider => git, require => [ Packag
vcsrepo { "/home/$server_admin/public_html":
ensure => latest,
owner => "$server_admin",
group => "$server_admin",
provider => git,
require => [ Package["git"] ],
source => "$server_gitrepo",
revision => "$server_gitbranch",
}
在客户端计算机上执行脚本时
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Unknown resource type: 'vcsrepo' (file: /etc/puppetlabs/code/environments/production/modules/alpha/manifests/source.pp, line: 32, column: 4) on node
注意:git已安装在客户端计算机上正在Puppet服务器上报告错误。它与客户端上是否安装Git无关。事实上,它与Git没有多大关系 Puppet正在抱怨——事实上相当清楚地是——它无法识别您试图使用的
vcsrepo
资源类型。这确实不是一个内置的资源类型,所以如果您没有使用该名称编写自定义类型,或者没有从模块中获取自定义类型,那么Puppet就不知道您在说什么
很可能您正在查找模块,它确实提供了一个同名类型,但我们无法确定。Puppet服务器上正在报告错误。它与客户端上是否安装Git无关。事实上,它与Git没有多大关系 Puppet正在抱怨——事实上相当清楚地是——它无法识别您试图使用的
vcsrepo
资源类型。这确实不是一个内置的资源类型,所以如果您没有使用该名称编写自定义类型,或者没有从模块中获取自定义类型,那么Puppet就不知道您在说什么
很可能您正在寻找模块,它确实提供了一个同名类型,但我们无法确定。为了使用
vcsrepo
为了测试您的设置,我曾经设置了一个沙箱:
$ vagrant up
$ vagrant ssh
$ sudo su -
# puppet --version
6.0.5
已安装的所有模块都可以通过以下方式进行检查:
# puppet module list --environment production
为了检查您的模块,您可以运行(如果Puppet在您运行的环境中没有找到它-我猜是生产
-您将得到您提到的错误):
要从添加模块,您应该运行(在我的情况下,查找模块的默认存储库配置为localhost
,因此我必须提供到forge.puppet.com
)的完整路径:
现在,搜索本地安装的模块,您应该能够看到已安装的模块:
# puppet module list --environment production 2> /dev/null | grep vcsrepo
└── puppetlabs-vcsrepo (v3.0.0)
从现在起,您可以使用类vcsrepo
(由模块提供)。为了稍微了解它的工作原理,该模块实际上是从forge
克隆/检索的,并安装在modulepath
中的一个:
# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules
安装它的另一个选项是使用
r10k
或PuppetCodeDeploy
(在内部使用r10k
,这两种解决方案都使用Puppetfile
,通常位于/etc/puppetlabs/code/environments/production/
中,以便使用vcsrepo
为了测试您的设置,我曾经设置了一个沙箱:
$ vagrant up
$ vagrant ssh
$ sudo su -
# puppet --version
6.0.5
已安装的所有模块都可以通过以下方式进行检查:
# puppet module list --environment production
为了检查您的模块,您可以运行(如果Puppet在您运行的环境中没有找到它-我猜是生产
-您将得到您提到的错误):
要从添加模块,您应该运行(在我的情况下,查找模块的默认存储库配置为localhost
,因此我必须提供到forge.puppet.com
)的完整路径:
现在,搜索本地安装的模块,您应该能够看到已安装的模块:
# puppet module list --environment production 2> /dev/null | grep vcsrepo
└── puppetlabs-vcsrepo (v3.0.0)
从现在起,您可以使用类vcsrepo
(由模块提供)。要了解它的工作原理,模块实际上是从forge
克隆/检索的,并安装在modulepath
中:
# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules
另一个安装它的选项是使用r10k
或PuppetCodeDeploy
(在内部使用r10k
,这两种解决方案都使用Puppetfile
,通常位于/etc/puppetlabs/code/environments/production/