Definire risorse in Puppet
Se si vuole creare una nuova risorsa, ad esempio un nuovo tipo di utente, che includa altre risorse, procedere come segue:
- Definire la nuova risorsa. Se si vuole usare il nome della risorsa, NON inserirlo come parametro, ma utilizzarlo direttamente nelle risorse interne:
define smbuser(
$smb_pass = undef,
$smb_desc = "Samba User" ) {
exec { "create_samba_user_${name}":
command =>template("samba_pdv/create_samba_user.erb"),
unless => "/usr/bin/pdbedit -L $name > /dev/null 2>&1",
require => [
File['/etc/samba/smb.conf'],
Service['samba'],
],
}
file { "/files/homes/$name":
ensure => "directory",
owner => "$name",
group => "users",
mode => 755,
require => [
File['/files/homes'],
Exec["create_samba_user_${name}"],
],
}
}
- Si notino i parametri messi con valori di default, e che $name non è passato come parametro, altrimenti prenderebbe il nome della classe chiamante, e non darebbe i risultati voluti
- Si possono poi creare le risorse come:
smbuser { "firstuser":
smb_pass => "SecretPass",
smb_desc => "This is First User",
}