У меня возникают трудности при вызове значения хэшей в моем манифесте марионеток, мой код, как показано ниже,
файл hiera .yaml:
---
users:
app1:
ensure: 'present'
home: '/home/app1'
password: '!!'
password_max_age: '99999'
password_min_age: '0'
app2:
ensure: 'present'
home: '/home/app2'
password: '!!'
password_max_age: '99999'
password_min_age: '0'
Манифест марионеток:
class profile::sec::sec_model {
hiera_hash('users').each |String $user, Hash $user_hash| {
$user_hash.each |String $attr, String $value| {
user { "$user":
"${attr}" => "${value}"
}
}
}
}
Моя цель - создать пользователя app1 и app2, если я использую обычный манифест, как показано ниже, я могу создать его, как показано ниже,
user { 'app1':
ensure => "present",
home => "/home/app1",
password => '!!',
password_max_age => '99999',
password_min_age => '0',
shell => '/bin/bash',
}
}
Однако при использовании hiera я получилошибка, как показано ниже на тестовом клиентском сервере Puppet,
Ошибка: не удалось получить каталог с удаленного сервера: ошибка 500 на СЕРВЕРЕ: ошибка сервера: синтаксическая ошибка в '' (файл: / etc / puppetlabs/code/environments/xxxxx/site/profile/manifests/xxx/sec_model.pp, строка: 11, столбец: 13) на узле xxxx.xxx.com
Когда я смотрю в свой манифест всеэто хорошо, но не может определить, какая сторона кода для вызова неверного хеш-значения.