История изменений
Исправление 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,
}
}