我的目录中包含.data
个文件和.config/.config.example
个文件。我需要使用puppet将所有.data
文件移动到我系统上的其他现有目录中。我现在的木偶代码不正确我相信 - 我做错了什么?
file { 'Owasp .data files':
ensure => directory,
path => '/etc/nginx/',
source => '/usr/src/SpiderLabs-owasp-modsecurity-crs-0475e92/',
recurse => true,
ignore => ['*.conf', '*.conf.example'],
}
我希望这会将除.conf
和.conf.example
文件之外的所有内容复制到/etc/nginx
。但是,我收到以下错误:
框:错误:无法将文件[Owasp .data文件]别名为[" / etc / nginx"] /vagrant/modules/nginx_test/manifests/test.pp:112;资源["文件"," / etc / nginx"]已在/usr/share/puppet/modules/nginx/manifests/config.pp:193
中声明
答案 0 :(得分:1)
因此,您的问题实际上是您在目录中的其他位置声明了file { '/etc/nginx': }
。您只需要为每个目录声明一次该资源。这将解决您的错误。您也无法声明具有不同标题的两个文件资源,这两个标题都具有与Puppet相同的path
参数,并测试该资源唯一性参数。
关于您的具体问题,您可以使用source
参数中的文件URI:https://docs.puppet.com/puppet/latest/reference/type.html#file-attribute-source
所以对于你的情况,你会这样做:
file { 'Owasp .data files':
ensure => directory,
path => '/etc/nginx/',
source => 'file:///usr/src/SpiderLabs-owasp-modsecurity-crs-0475e92/',
recurse => true,
ignore => ['*.conf', '*.conf.example'],
}