首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在木偶hiera设置中放置hiera文件的位置

在木偶hiera设置中放置hiera文件的位置
EN

Stack Overflow用户
提问于 2017-01-18 08:45:41
回答 1查看 1K关注 0票数 2

我有一个运行中的傀儡主代理设置,目前正在试图找出如何使用hiera来提供php。

我的假人档案:

代码语言:javascript
复制
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

代码语言:javascript
复制
hiera_include('classes')

维护模块路径的environment.conf

代码语言:javascript
复制
manifest = site.pp
modulepath = modules:site

我在/etc/puppetlabs/puppet/hiera.yml的木偶大师上的hiera配置

代码语言:javascript
复制
---
: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

代码语言:javascript
复制
---
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,它保存着以下内容:

代码语言:javascript
复制
classes:
  - 'profile::php'

以及site/profile/manifests/php.pp下的一份清单

代码语言:javascript
复制
class profile::php {
  class { '::php': }
}

但这并没有提供php。如你所见,我用的是伪造的mayflower/php

现在,我的两个问题是:

我的hiera文件是否位于正确的位置?那么,我遗漏了什么,才能将其提供给我的代理?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 12:47:13

这里有多个问题/可能性,所以让我们迭代地讨论它们。

首先,您使用的默认datadir是:

代码语言:javascript
复制
/etc/puppetlabs/code/environments/%{environment}/hieradata

但是,您的优先事项是:

代码语言:javascript
复制
"environment/%{server_facts.environment}"

这是没有意义的,因为您有一个优先级,可以根据节点的目录环境来区分数据,但是您也会将hieradata直接放在目录环境中。如果您想要基于目录环境的优先级,那么将您的hieradata目录更改为直接环境之外的目录:

代码语言:javascript
复制
/etc/puppetlabs/code/hieradata

否则,您应该从优先级中删除该级别,因为它不会增加值,并且会增加查找时间。

其次,您没有显示您的site.pp,但是您还记得您的hiera_include('classes')吗?这将查找数组classes,然后包含它们,这似乎是您想要的。如果您没有这样做,那么您所描述的节点配置问题就会发生。

第三,site在您的modulepath中吗?您需要将其附加到puppet.confenvironment.conf中。

第四,节点的fqdn可能与certname不匹配。检查您的Puppetmaster上的certs目录以获得节点的证书。

边注:

  • 你问题的前半部分包含了很多无关的信息,并且缺少了很多有用的相关信息。请考虑编辑问题,以提供更有帮助的信息,并更简洁。
  • 由于ntp工作正常,我假设您的模块安装成功,并将r10k安装到环境目录中。另外,我假设模块存在于节点的目录环境中。
  • 在使用php的声明中,没有真正的理由将::php类指定为全局类。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41714800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档