Назад | Перейти на главную страницу

Факты о марионетках: следует ли использовать lsbdistid или операционную систему?

В текущих версиях Puppet и Facter я получаю ту же информацию в lsbdistid и operatingsystem факты - я не смотрю osfamily потому что в Gentoo Linux он сообщает общую строку «Linux».

При использовании этой информации в модулях Puppet (например, для выбора имен пакетов для установки) есть ли какая-либо техническая причина или установленный консенсус для использования lsbdistid или operatingsystem?

мне нравиться osfamily. LSB часто не устанавливается по умолчанию, а в некоторых дистрибутивах, таких как RHEL / CentOS, цепочка зависимостей для lsb_release огромный. Кроме того, если вы не знаете дистрибутив, как узнать имя пакета LSB? operatingsystem раздражает, потому что меня обычно не волнует, RedHat против CentOS или Debian против Ubuntu. Я хочу знать семейства дистрибутивов, потому что идиосинкразии между дистрибутивами внутри семей обычно одинаковы.

Поддержка Gentoo была слился в фактера семья вчера (13 февраля 2013 г.) он должен выпустить следующий выпуск. Вы всегда можете использовать комбинацию osfamily чтобы проверить Debian или RedHat и operatingsystem чтобы проверить Gentoo.

osfamily и operatingsystem в основном просто куча if или case условия. Было бы довольно легко настроить свой собственный как настраиваемый параметр факта или класса в зависимости от ваших потребностей. Подобно:

class osfacts {
  if $::kernel == 'Linux' {
    $os = $::operatingsystem ? {
      Gentoo => 'Gentoo',
      default => $::osfamily,
    }
  }
  elsif $::kernel == 'SunOS' {
    $os = $::operatingsystem
  }
  elsif ($::operatingsystem == 'Darwin') and
        ($::macosx_productname == 'Mac OS X') {
    $os = 'MacOSX'
  }
  else {
    $os = $::operatingsystem
  }
}

Это немного сложно, потому что, в конце концов, каждая ОС работает по-своему. Прежде всего решите, какие дистрибутивы ваш модуль хочет поддерживать, а затем протестируйте его.

Также я не вижу причин, почему бы не использовать оба факта как способ отличить распределение. Там нет ничего плохого.