我应该如何使用 Puppet 处理 Mint 实例?

我应该如何使用 Puppet 处理 Mint 实例?

我时不时会使用 Puppet 设置虚拟机。有时我会在这些虚拟机上运行 Linux Mint。我有很多喜欢使用的 Puppet 模块,但当它们检查 LSB 事实时,它们会对奇怪的 Linux Mint 版本感到反感。

例如,我使用官方的 Puppet Labs Java 模块来安装 JDK 等。params.pp 文件如下所示(我已删去大部分内容):

class java::params {

  case $::osfamily {
    'RedHat': {...}
    'Debian': {
      case $::lsbdistcodename {
        default: { fail("unsupported release ${::lsbdistcodename}") }
        'lenny', 'squeeze', 'lucid', 'natty': {
          $java  = {
            'jdk' => {
              'package'          => 'openjdk-6-jdk'...
            },
            'jre' => {
              'package'          => 'openjdk-6-jre-headless...
            },
          }
        }
        'wheezy', 'jessie', 'precise','quantal','raring','saucy', 'trusty', 'utopic': {
             ...I could add 'rebecca' to the above list, and that would probably do it
          $java =  {
            'jdk' => {
              'package'          => 'openjdk-7-jdk'...
            },
            'jre' => {
              'package'          => 'openjdk-7-jre-headless'
            },
            'oracle-jre' => {...},
            'oracle-jdk' => {...},
          }
        }
      }
    }
...
    default: { fail("unsupported platform ${::osfamily}") }
  }

当我在 Mint 实例上运行代理时,我最终得到:

错误:无法从远程服务器检索目录:服务器上出现错误 400:不支持的版本丽贝卡在节点 some.host.com 上的 /etc/puppet/modules/java/manifests/params.pp:50

丽贝卡是我目前正在处理的Linux Mint版本,与Ubuntu Trusty相对应。

但是每个 Mint 版本都基于一个 Ubuntu 版本,这应该可以正常工作。(至少可以尝试一下。)我真的很想告诉 facter 返回等效的 Ubuntu lsb 信息,而不是修改模块和所有其他类似的模块。虽然这可能是对社区的服务......

有人尝试过解决这个问题吗?有什么想法吗?

答案1

这一页似乎意味着你可以通过设置环境变量来覆盖 Facter 事实:

# show the operating system we are running (retrieved from facter)
$ puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Fedora

# override $operatingsystem for testing purposes
$ FACTER_operatingsystem=Debian puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Debian

在这种情况下,您是否能够rebecca使用变量构建每个主机FACTER_lsbdistcodename=trusty

我没有测试过这个,但事实只是节点报告的事情,因此应该很容易被覆盖/编辑......

相关内容