2017-06-23 31 views
1

私は、hieraでphp-fpmのプールを作成できる小さなモジュールを作成し、/etc/php5/fpm.d/のノードに保存しました。 すべてのノード(したがってpool.confファイル)は、Puppetのリソースによって生成されます。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ファイルを手動で作成した場合は、それを人形で削除する必要があります。

私はalredyがモジュールでパージを試みましたが、現在のリソースで作成されるファイル以外のすべてのファイルを削除します。

アドバイスはありますか?

答えて

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, 
    } 
} 
+1

これは、私が提案するとしていただけで何である - すなわち 'recurse'と' purge'両方 'true'をして' File'リソースを経由して入っているディレクトリを管理します。 [そのドキュメント](https://docs.puppet.com/puppet/latest/type.html#file-attribute-purge)によると、 'purge'はアンマネージファイルを削除し、アンマネージドファイルのみを削除します。特に、別々の 'File'リソースを介して管理されるファイルはパージの対象にはなりません。 –

+0

コード内の 'yumrepo'ステージングとメタパラメータは、この質問に答えるのに少し不必要だと思います。つまり、これは絶対にうまくいくはずですが、疑問はあいまいなことをしようとすると何かを曖昧に言ってしまい、うまく動かないということです。これは確かに述べたように質問に答える。 –

+0

真。パペットの順序がよく分からない場合、コードサンプルが混乱することがあります。つまり、アーカイブ内でこれを見つけ出す人は、とにかくyum.repos.dの問題が発生する可能性があるので、完全な作業例を残すことが理にかなっていると思います。 –

関連する問題