Puppet Ubuntu检查版本16或17

Puppet Ubuntu检查版本16或17,puppet,Puppet,我需要检查它的Ubuntu版本是16(对于旧电脑)还是17(对于具有不同WLAN模块的新电脑),但这个if检查到目前为止还不起作用。你能支持我吗 if /opt/puppetlabs/bin/facter os.distro.id == 'Ubuntu' { if /opt/puppetlabs/bin/facter os.distro..release.major == '16.04.' { $ubunutname = 'xenial' $wlank

我需要检查它的Ubuntu版本是16(对于旧电脑)还是17(对于具有不同WLAN模块的新电脑),但这个if检查到目前为止还不起作用。你能支持我吗

  if /opt/puppetlabs/bin/facter os.distro.id == 'Ubuntu' {
    if /opt/puppetlabs/bin/facter os.distro..release.major == '16.04.' {
        $ubunutname = 'xenial'
        $wlankarte  = 'wlp4s0'
    }
    if /opt/puppetlabs/bin/facter os.distro..release.major == '17.04' {
      $ubunutname = 'zesty'
      $wlankarte  = 'wlp58s0'
    }
    else{
      fail("Unsupported major of ${facts}['operatingsystem']")
    }
  }

很接近,但不必指定Facter的路径,事实会自动添加到上下文中。LSB代码名也是事实,因此您可以将其简化很多:

case $::lsbdistcodename {
  'xenial': {
    $wlankarte  = 'wlp4s0'
  }
  'zesty': {
    $wlankarte  = 'wlp58s0'
  }
  default: {
    fail("Unsupported Debian-flavor machine: ${::lsbdistcodename}")
  }
}