Puppet standalone错误-未知资源类型:';testme_服务::安装';

Puppet standalone错误-未知资源类型:';testme_服务::安装';,puppet,Puppet,我对puppet还相当陌生,我正在测试puppet角色和配置文件策略(在puppet独立模式下),但我遇到了一个错误 我建立了一个模型来说明这个问题。本例的目标只是确认/tmp中的一个文件 我从以下内容开始测试: sudo/opt/puppetlabs/bin/puppet apply--noop-t-d-e“包含角色::testme\u服务” 但是,当我运行该命令时,我不断收到一个错误消息: 好消息是我正在执行角色代码,它引用了概要文件定义 但是,我不理解未知资源错误,因为我已经在te

我对puppet还相当陌生,我正在测试puppet角色和配置文件策略(在puppet独立模式下),但我遇到了一个错误

我建立了一个模型来说明这个问题。本例的目标只是确认/tmp中的一个文件

我从以下内容开始测试:

  • 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",
  }

}