【发布时间】:2017-01-18 08:45:41
【问题描述】:
我有一个正在运行的 puppet master-agent 设置,目前正试图弄清楚如何使用 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'
我的site.pp:
hiera_include('classes')
我的environment.conf,维护模块路径:
manifest = site.pp
modulepath = modules:site
我在/etc/puppetlabs/puppet/hiera.yml 的 puppet master 上的 hiera 配置:
---
: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.ini 文件。如你所见,我使用的是来自 forge 的mayflower/php。
现在,我的两个问题是:
我的 php hiera 文件在正确的位置吗?那么我错过了什么让它向我的代理提供 php?
【问题讨论】: