Puppet standalone错误-未知资源类型:';testme_服务::安装';
我对puppet还相当陌生,我正在测试puppet角色和配置文件策略(在puppet独立模式下),但我遇到了一个错误 我建立了一个模型来说明这个问题。本例的目标只是确认/tmp中的一个文件 我从以下内容开始测试:Puppet standalone错误-未知资源类型:';testme_服务::安装';,puppet,Puppet,我对puppet还相当陌生,我正在测试puppet角色和配置文件策略(在puppet独立模式下),但我遇到了一个错误 我建立了一个模型来说明这个问题。本例的目标只是确认/tmp中的一个文件 我从以下内容开始测试: sudo/opt/puppetlabs/bin/puppet apply--noop-t-d-e“包含角色::testme\u服务” 但是,当我运行该命令时,我不断收到一个错误消息: 好消息是我正在执行角色代码,它引用了概要文件定义 但是,我不理解未知资源错误,因为我已经在te
sudo/opt/puppetlabs/bin/puppet apply--noop-t-d-e“包含角色::testme\u服务”
但是,当我运行该命令时,我不断收到一个错误消息:
好消息是我正在执行角色代码,它引用了概要文件定义 但是,我不理解
未知资源
错误,因为我已经在testme\u服务
模块中定义了testme\u服务::安装
这可能是PEBKAC的问题,但我不知道如何修复错误(木偶的目录对我来说仍然有点神奇)
问题:
我正在Ubuntu 18上运行puppet5.5。。。有人能给我一些关于如何解决问题的建议,并解释一下如果我错误地构建了这个角色和配置文件测试,我应该怎么做
概述:目录结构
文件内容:
profile/manifests/init.pp
profile/manifests/site.pp
role/manifests/init.pp
has
testme\u服务/manifests/init.pp
解决方案A:调用testme\u服务::在profile中以不同的方式安装
profile/manifests/init.pp
解决方案B:有效,但一位同事不鼓励这种解决方案。。。
- 在
testme\u服务/manifests/init.pp
中使用define…
而不是class…
,也解决了这个问题
Error: Evaluation Error: Error while evaluating a Resource Statement,
Unknown resource type: 'testme_service::install' (file:
/opt/puppetlabs/puppet/modules/profile/manifests/init.pp,
line: 3, column: 5)`
ubuntu@test-04:/opt/puppetlabs/puppet/modules$ pwd
/opt/puppetlabs/puppet/modules
ubuntu@test-04:/opt/puppetlabs/puppet/modules$
ubuntu@test-04:/opt/puppetlabs/puppet/modules$ tree
.
├── profile
│ ├── data
│ ├── files
│ ├── manifests
│ │ ├── init.pp
│ │ └── site.pp
│ └── templates
├── README.md
├── role
│ ├── data
│ ├── files
│ ├── manifests
│ │ └── init.pp
│ └── templates
└── testme_service
├── data
├── files
├── manifests
│ └── init.pp
└── templates
15 directories, 5 files
ubuntu@test-04:/opt/puppetlabs/puppet/modules$
class profile::testme_service {
testme_service::install { "install the testme_service config in /tmp":
version => '0.0.1-foo-the-bar',
}
}
node /^test-04/ {
include profile::testme_service
}
node default {
fail("Hit the default node in profile... could not find the correct per-node profile")
}
class role::testme_service {
include profile::testme_service
}
# implement testme_service::install
class testme_service::install (
String $version = '__broken_default__',
) {
file { '/tmp/testme.conf':
ensure => file,
owner => 'root',
content => "version: $version",
}
}
class profile::testme_service {
class { "testme_service::install":
version => '0.0.1-foo-the-bar',
}
}
# implement testme_service::install
define testme_service::install (
String $version = '__broken_default__',
) {
file { '/tmp/testme.conf':
ensure => file,
owner => 'root',
content => "version: $version",
}
}