如果某个包修改了文件,则执行puppet类

时间:2013-04-24 13:50:47

标签: puppet

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

这是负责配置/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,
            }
 }

1 个答案:

答案 0 :(得分:1)

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

所以在你的情况下:

class { 'nsswitch':
            passwd => ['compat'],
            group => ['compat'],
            hosts  => ['files'],
            automount => ['files'],
            require   => Class['desktop'],
    }

应该做的伎俩。 (注意要求部分)