Je crée un petit module freeradius en marionnette. J'ai des problèmes pour créer le fichier client.conf, ce qui devrait ressembler à ceci:itération sur un hachage de yaml en marionnette
client switch01 {
ipaddr = 10.10.10.50
secret = secret
shortname = switch01
}
client switch02 {
ipaddr = 10.10.10.51
secret = secret
shortname = switch02
}
Je suis en train de créer cela avec un fichier modèle de clients.erb. Ce sont les fichiers:
fichier YAML:
test_freeradius::clients:
'switch01':
ip: '10.10.10.50'
secret: 'secret'
shortname: 'switch01'
'switch02::
ip: '10.10.10.51'
secret: 'secret'
shortname: 'switch02'
définissent:
define test_freeradius::clients (
$ip,
$secret,
$shortname,
) {
include test_freeradius::service
if ! defined(File['/etc/freeradius/clients.conf']){
file { '/etc/freeradius/clients.conf' :
ensure => 'file',
owner => 'root',
group => 'freerad',
mode => '0640',
content => template('test_freeradius/clients.erb'),
require => Class['test_freeradius::install'],
notify => Service['freeradius'],
}
}
$data = hiera_hash('test_freeradius::clients')
}
init.pp:
class test_freeradius {
create_resources(test_freeradius::clients, $data)
}
je pouvais crea te un client comme ceci:
client <%= @shortname %> {
ipaddr = <%= @ip %>
secret = <%= @secret %>
shortname = <%= @shortname %>
}
mais je ne pourrais pas réaliser créer plusieurs clients! à la fin, j'ai besoin de créer 10 clients.
Cela ne fonctionne pas:
<% test_freeradius::clients.each do |key,value| -%>
client <%= key %> {
ipadd = <%= value['ip'] %>
asecret = <%= value['secret'] %>
shortname = <%= value['shortname'] %>
}
<% end -%>
Ma question est de savoir comment pourrais-je itérer sur le hachage pour créer le fichier client.conf?
Merci beaucoup!
Merci pour le support, ça fonctionne très bien. J'ajusté mon 'init.pp': classe test_freeradius { $ data = hiera_hash ('test_freeradius :: clients) create_resources (test_freeradius :: clients, données $) } Je ne comprenais pas bien ce que Vous voulez dire: En outre, vous devriez envisager de créer un paramètre pour ce hachage en votre type de ressource défini, puis en passant ce paramètre comme attribut . Vous pouvez ensuite utiliser le hachage dans votre type de ressource défini. Désolé! Je suis encore totalement nouveau à la marionnette! Je vais par le lien que vous avez posté. encore une fois. Merci beaucoup! – Max
@Max Glad qui a fonctionné pour vous. Veuillez accepter ma réponse puis en cliquant sur la coche à côté de celle-ci. –
Terminé! pouvez-vous me conduire dans la bonne direction comment créer un paramètre pour le hachage dans la ressource définie et le passer comme un paramètre d'attribut? puis utilisez le hachage dans le type de ressource défini? Je vous remercie! – Max