У меня возникли трудности с вызовом значения хэшей в моем манифесте марионетки, мой код, как показано ниже,
файл 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}"
}
}
}
}
Моя цель - создать пользовательское приложение1 и приложение2, если использовать обычный манифест, как показано ниже, я могу создать его, как показано ниже,
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
Когда я смотрю в свой манифест, все хорошо, но я не могу определить, какая часть кода для вызова хеш-значения неверна.