若文件被某个包修改,则执行puppet类

若文件被某个包修改,则执行puppet类,puppet,Puppet,我正在使用puppet部署标准化的ubuntu安装以及配置文件。 我面临一个问题,安装某个包(通过依赖项)会覆盖一个关键配置文件。有没有办法监视此文件是否更改(get被某个包覆盖)并恢复其原始内容? 实现这一目标的最佳方式是什么 这个类负责配置/etc/nsswitch.conf: class nsswitchconfig { # roll out nsswitch class { 'nsswitch': passwd => ['compat

我正在使用puppet部署标准化的ubuntu安装以及配置文件。 我面临一个问题,安装某个包(通过依赖项)会覆盖一个关键配置文件。有没有办法监视此文件是否更改(get被某个包覆盖)并恢复其原始内容? 实现这一目标的最佳方式是什么

这个类负责配置
/etc/nsswitch.conf

class nsswitchconfig {

    # roll out nsswitch   
    class { 'nsswitch':
            passwd => ['compat'],
            group => ['compat'],
            hosts  => ['files'],
            automount => ['files'],
    }

    notify { "hate #8040": message => "work around bug #8040" }

}
这是覆盖
/etc/nsswitch.conf

class desktop {

    include nsswitchconfig

    $package_name = ["ubuntu-desktop" ]
    package { $package_name:
                ensure => latest,
            }
 }

如果nsswitch类配置了该文件,则只需确保它在覆盖它的类之后运行

因此,在你的情况下:

class { 'nsswitch':
            passwd => ['compat'],
            group => ['compat'],
            hosts  => ['files'],
            automount => ['files'],
            require   => Class['desktop'],
    }
我们应该做到这一点。(注意要求的部分)