Я пытаюсь понять Puppet (3.0) и как он соотносится со встроенной Hiera. Это то, что я пробовал, чрезвычайно простой пример (я сделаю более сложную иерархию, когда мне удастся заставить простую работать):
# /etc/puppet/hiera.yaml
:backends:
- yaml
:hierarchy:
- common
:yaml:
:datadir: /etc/puppet/hieradata
# /etc/puppet/hieradata/common.yaml
test::param: value
# /etc/puppet/modules/test/manifests/init.pp
class test ($param) { notice($param) }
# /etc/puppet/manifests/site.pp
include test
Если я применяю его напрямую, все в порядке:
$ puppet apply /etc/puppet/manifests/site.pp
Scope(Class[Test]): value
Если я пройду через кукловода, это не нормально:
$ puppet agent --test
Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass param to Class[Test] at /etc/puppet/manifests/site.pp:1 on node <nodename>
Что мне не хватает?
РЕДАКТИРОВАТЬ:
Я только что вышел из офиса, но меня осенила мысль: мне, вероятно, следует перезапустить мастер марионеток, чтобы он увидел новый файл hiera.conf. Я попробую это в понедельник; А пока, если кто-нибудь решит какую-нибудь проблему, я буду признателен :)
Я идиот, и правка в вопросе была правильной: после перезапуска мастера марионеток все заработало.
Для Hiera (/etc/puppet/environments/local/hieradata/hostgroups/base/yourhostname/all.yaml)
mySuperVariable: лалала
Для В этом (/ и т.д. / марионетка / среды / локальные / манифесты / ваше имя хоста / манифест)
class mimir :: init {$ myvariable = hiera ('mySuperVariable', 'fallbackValue')}
Для Шаблон (/ и т.д. / марионетка / среды / локальные / манифесты / имя вашего хоста / шаблоны)
что угодно ... <% = myvariable%> бла-бла