簡體   English   中英

在人偶hiera設置中將hiera文件放在哪里

[英]Where to put hiera files in puppet hiera setup

我有一個正在運行的puppet主代理設置,當前正在嘗試弄清楚如何使用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上的/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 通過此設置,我設法使用hieradata/common.yaml上的此配置在節點上安裝了ntp:

---
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下的site/profile/manifests/php.pp

class profile::php {
  class { '::php': }
}

但這不提供php。 如您所見,我使用偽造的mayflower/php

現在,我的兩個問題是:

我的hiera php文件在正確的位置嗎? 我想讓它為我的經紀人提供php時會丟失什么?

您在這里有多個問題/可能性,所以讓我們迭代地解決它們。


首先,您使用的默認數據datadir為:

/etc/puppetlabs/code/environments/%{environment}/hieradata

但是,您的優先級是:

"environment/%{server_facts.environment}"

這沒有任何意義,因為您具有根據節點目錄環境區分節點數據的優先級,但是您也直接將hieradata放置在目錄環境中。 如果要基於目錄環境優先級,請在以下位置將hieradata目錄更改為直接環境之外:

/etc/puppetlabs/code/hieradata

否則,您應該從優先級中刪除該級別,因為它沒有任何價值,並且會增加查找時間。


其次,您沒有顯示site.pp ,但是您還記得hiera_include('classes')嗎? 這將查找數組classes ,然后包括它們,這似乎是您想要的。 如果您不這樣做,則會發生您描述的節點配置問題。


第三, site在您的modulepath 您需要將其附加到puppet.confenvironment.conf


第四,您節點的fqdn可能與certname不匹配。 檢查Puppetmaster上的certs目錄以獲取節點的證書。


旁注:

  • 問題的前半部分包含許多無關的信息,而缺少許多有用的相關信息。 請考慮編輯問題以提供更多有用的信息並更加簡潔。
  • 由於ntp工作,我假設您成功將使用r10k的模塊安裝到環境目錄中。 我還假設模塊存在於您節點的目錄環境中。
  • 有沒有真正的理由指定php與你的聲明類作為全球::php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM