У меня есть работающая установка главного агента марионетки, и в настоящее время я пытаюсь выяснить, как использовать hiera для предоставления php.
Мой кукольный файл:
forge "http://forge.puppetlabs.com"
mod "jfryman/nginx"
mod "puppetlabs/mysql"
mod "mayflower/php"
mod 'puppetlabs-vcsrepo'
mod 'puppetlabs/ntp', '4.1.0'
mod 'puppetlabs/stdlib'
My site.pp
:
hiera_include('classes')
Мой environment.conf
, где поддерживается путь к модулям:
manifest = site.pp
modulepath = modules:site
Моя конфигурация hiera на марионеточном мастере в /etc/puppetlabs/puppet/hiera.yml
:
---
:backends:
- yaml
:hierarchy:
- "nodes/%{::trusted.certname}"
- "environment/%{server_facts.environment}"
- common
:yaml:
# datadir is empty here, so hiera uses its defaults:
# - /etc/puppetlabs/code/environments/%{environment}/hieradata on *nix
# - %CommonAppData%\PuppetLabs\code\environments\%{environment}\hieradata on Windows
# When specifying a datadir, make sure the directory exists.
:datadir:
Насколько я понимаю, общий конфиг, который должен присутствовать на всех серверах, идет в common.yaml
. С этой настройкой мне удалось установить ntp на моем узле с этой конфигурацией в hieradata/common.yaml
:
---
classes:
- 'profile::base'
ntp::servers:
- server 0.de.pool.ntp.org
- server 1.de.pool.ntp.org
- server 2.de.pool.ntp.org
- server 3.de.pool.ntp.org
Теперь в моей иерархии также указано, что вся конфигурация конкретного узла должна находиться в hieradata/nodes/{fqdn-of-the-node}.yml
.
Теперь, наконец, перейдя к моим вопросам:
У меня есть файл hieradata/nodes/myserver.example.com.yml
, который содержит это:
classes:
- 'profile::php'
И манифест под site/profile/manifests/php.pp
:
class profile::php {
class { '::php': }
}
Но это не обеспечивает php. Как вы видели, я использую mayflower/php
из кузницы.
Теперь два моих вопроса:
Мой файл hiera для php находится в правильном месте? Чего мне не хватает, чтобы предоставить php моему агенту?