Puppet:基于命名约定的条件文件源

Puppet:基于命名约定的条件文件源

我正在为我的环境启动 Puppet,并且我想file根据模块本身是否包含基于命名约定的文件来获得条件资源。

因此从视觉上看,假设有一个名为“mysql”的模块及其布局:

mysql/
    /files
        /etc/
            my.cnf
            my.hostname1.cnf
            my.hostname2.cnf
     /manifests
            init.pp
...

因此,我希望该块能够验证模块的资源是否存在,并以伪术语采取相应的措施:

file { '/etc/my.cnf':

  if -f 'puppet:///mysql/etc/my.$hostname.cnf' {
      source => 'puppet:///mysql/etc/my.$hostname.cnf'
  }
  else {
      source => 'puppet:///mysql/etc/my.cnf'
  }
}

这样,就不必管理 csv 文件或.pp具有主机特定案例语句的文件 - 这可能吗?

答案1

当前资源文件类型文档指定你可以做file{'/etc/my.cnf': source => [ "puppet:///mysql/etc/my.$hostname.cnf" , "puppet:///mysql/etc/my.cnf" ] }

相关内容