我正在尝试使用Puppetlabs stdlib模块中的file_line,但是我正在打砖墙。当我尝试运行我的模块时,出现以下错误:
2018-01-23 12:34:16,981 ERROR [qtp2056613703-62] [puppetserver] Puppet This expression is invalid. Did you try declaring a 'file_line' resource without a title? at /etc/puppetlabs/code/modules/my_module/manifests/control_1_5_1.pp:5:3 on node puppet-slave-1
2018-01-23 12:34:16,982 ERROR [qtp2056613703-62] [puppetserver] Puppet Server Error: This expression is invalid. Did you try declaring a 'file_line' resource without a title? at /etc/puppetlabs/code/modules/my_module/manifests/control_1_5_1.pp:5:3 on node puppet-slave-1
我的rspec测试带来了类似的错误:
1) my_module with default values for all parameters should contain Class[my_module]
Failure/Error: include stdlib
Puppet::PreformattedError:
Evaluation Error: Error while evaluating a Function Call, Could not find class ::stdlib for puppet.eu-west-1.compute.internal at /etc/puppetlabs/code/modules/my_module/spec/fixtures/modules/my_module/manifests/init.pp:38:3 on node puppet.eu-west-1.compute.internal
我在服务器和客户端上运行Puppet 5.3.3,以下信息显示我运行的木偶模块列表:
/etc/puppetlabs/code/modules
├── puppetlabs-stdlib (v4.24.0)
└── my_module (v0.1.0)
我在我的模块的init.pp文件中包含了stdlib。
非常感谢任何帮助。
编辑: 添加示例代码块。这就是我尝试使用stdlib模块的方法。出于测试目的,这个类将直接放入init.pp文件中,在生产中它将是一个单独的.pp并包含在init.pp中
class my_module {
include stdlib
file_line { 'sudo_rule':
path => '/etc/sudoers',
line => '%sudo ALL=(ALL) ALL',
}
}