Марионеточные факты: мы должны использовать lsbdistid или operatingsystem?

Чтобы сделать это легким для себя (и представить некоторые симпатичные графики), я просто установил бы Кактусы и использовал бы SNMP для контроля портов коммутатора.

alt text

2
задан 14 February 2013 в 19:33
2 ответа

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

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

osfamily и операционная система в основном представляют собой набор условий 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
  }
}
5
ответ дан 3 December 2019 в 09:38

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

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

0
ответ дан 3 December 2019 в 09:38

Теги

Похожие вопросы