Я пришел из Puppet 3 и пытаюсь пересобрать свой код на новой системе Puppet 6. Я пытаюсь дать своим агентным узлам своего рода "stage_level", например, продуктивный или тестируемый. Hiera не может найти этот уровень_уровня, хотя он задан в файле Hiera.
stage_level установлен в моем Nodedefinition, и Hiera сможет его найти. Сам поиск находится в init.pp из модуля "Facter", который развертывает три файла на узлах агента.
hiera.yaml
version: 5
defaults:
datadir: /etc/puppetlabs/code/environments/production/data/
data_hash: yaml_data
hierarchy:
- name: 'Global Config'
path: global.yaml
- name: 'Nodes'
path: 'nodes/%{trusted.certname}.yaml'
Определение узла в data / node / server.xyz.com.yaml
role: xyz
stage_level: production
init.pp из модулей / facter / manifest /
define facter::set_av_facter {
$facter_value = hiera($name,'no_default_value')
file { "/etc/facter/facts.d/${name}.yaml":
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
content => inline_template("# This file is managed by puppet\n${name}: ${facter_value}\n"),
}
}
class facter {
file { '/etc/facter':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
}
file { '/etc/facter/facts.d':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
}
$av_facter = [
'role',
'stage_level',
]
facter::set_av_facter{$av_facter:}
file { "/etc/facter/facts.d/patchlevel.yaml":
ensure => absent,
}
}
Hiera не может найти уровень stage_level, который я установил в определении узла. Я думаю, что проблема в определении, которое мне пришлось переписать, потому что на самом деле это был код из Puppet 3.
Ожидаемый результат - файл в моем Agentnode в /etc/facts/facter.d/stage_level.yaml с «production» в качестве содержимого.
Любая помощь приветствуется