我已经制作了一个小模块,可以在hiera中为php-fpm创建池,并将它们保存在/etc/php5/fpm.d/中的节点上。 每个节点(以及pool.conf文件)都是由Puppet中的资源生成的。
我的hiera看起来像这样
phpfpm::pools:
poolname:
listen: '127.0.0.1:9000'
some: 'other'
anotherpoolname:
listen: '127.0.0.1:9001'
other: 'value'
现在,我遇到的问题是我不知道如何自动移动所有文件,这些文件还没有被木偶创建。例如。如果用户在/etc/php5/fpm.d/中创建了一个新的conf文件,那么它应该被puppet删除。
我已尝试在模块中清除,但它会删除除将在当前资源中创建的文件之外的所有文件。
有任何建议吗?
答案 0 :(得分:3)
我不确定我是否了解您的代码是如何工作的,但我认为您需要执行类似于此处清除yum.repos.d目录的操作:
Hiera:
profile::base::yum::repos:
'C7.0.1406-base':
ensure: 'present'
baseurl: 'http://vault.centos.org/7.0.1406/os/$basearch/'
descr: 'CentOS-7.0.1406 - Base'
enabled: '0'
gpgcheck: '1'
gpgkey: 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'
'C7.0.1406-centosplus':
ensure: 'present'
baseurl: 'http://vault.centos.org/7.0.1406/centosplus/$basearch/'
descr: 'CentOS-7.0.1406 - CentOSPlus'
enabled: '0'
gpgcheck: '1'
gpgkey: 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'
清单:
class profile::base::yum (
Hash [String, Hash[String, String]] $repos,
) {
Yumrepo {
stage => 'pre',
}
create_resources(yumrepo, $repos)
# Since we must purge the file resources in
# /etc/yum.repos.d/, we must also declare the
# associated files to prevent them also
# being purged.
keys($repos).each |String $yumrepo| {
file { "/etc/yum.repos.d/${yumrepo}.repo": }
->
Yumrepo[$yumrepo]
}
file { '/etc/yum.repos.d/':
ensure => directory,
recurse => true,
purge => true,
}
}