LINUX.ORG.RU

История изменений

Исправление strangeman, (текущая версия) :

P.S.: А стейты мне и нужны, что бы определять порядок применения классов при первоначальном развертывании. Типа: Пакеты -> Юзеры -> Файлы -> Сервайсы

Ну так так и определяй через зависимости. Я при работе с паппетом сделал для себя два вывода:
1) Не использовать import, т.к. он влечет за собой труднодиагностируемые ошибки и требует перезапуска puppetmaster при изменениях в импортируемых файлах.
2) Стараюсь не исполльзовать стейджи, т.к. я в них так толком не разобрался. Вместо них я использую зависимости, так получается намного наглядней и проще.
Например:

Package['ntp']->File['/etc/ntp.conf']~>Service['ntp']

Каждым модулем я описываю определенный сервис, и зависимости организую уже внутри модуля. В итоге вместо такого огорода как у тебя, у меня получаются достаточно лаконичные описания нод, например:

node 'fileservk16.blabla' {
  include common
  include ntp

  class {'smart':}
  class {'zabbix::client':
    hostname        => 'fileservk16',
    user_parameters => ['softraid.status,egrep \"\\[.*_.*\\]\" /proc/mdstat|wc -l',
                        'disk.temp[*],sudo hddtemp -n $1',]
    }
  class { 'sudo': }
  sudo::conf { 'zabbix':
    priority => 10,
    content  => "zabbix   ALL=NOPASSWD:  /usr/sbin/hddtemp\n",
    }
  service {'apt-cacher-ng':
    ensure     => running,
    enable     => true,
    hasrestart => true,
    hasstatus  => false,
    }
  }

Исходная версия strangeman, :

P.S.: А стейты мне и нужны, что бы определять порядок применения классов при первоначальном развертывании. Типа: Пакеты -> Юзеры -> Файлы -> Сервайсы

Ну так так и определяй через зависимости. Я при работе с паппетом сделал для себя два вывода:
1) Не использовать import, т.к. он влечет за собой труднодиагностируемые ошибки и требует перезапуска puppetmaster при изменениях в импортируемых файлах.
2) Стараюсь не исполльзовать стейджи, т.к. я в них так толком не разобрался. Вместо них я использую зависимости, так получается намного наглядней и проще.
Например:

Package['ntp']->File['/etc/ntp.conf']~>Service['ntp']

Каждым модулем я описываю определенный сервис, и зависимости организую уже внутри сервиса. В итоге вместо такого огорода как у тебя, у меня получаются достаточно лаконичные описания нод, например:

node 'fileservk16.blabla' {
  include common
  include ntp

  class {'smart':}
  class {'zabbix::client':
    hostname        => 'fileservk16',
    user_parameters => ['softraid.status,egrep \"\\[.*_.*\\]\" /proc/mdstat|wc -l',
                        'disk.temp[*],sudo hddtemp -n $1',]
    }
  class { 'sudo': }
  sudo::conf { 'zabbix':
    priority => 10,
    content  => "zabbix   ALL=NOPASSWD:  /usr/sbin/hddtemp\n",
    }
  service {'apt-cacher-ng':
    ensure     => running,
    enable     => true,
    hasrestart => true,
    hasstatus  => false,
    }
  }