Duas coisas em relação ao seu código de fantoches.
A definição deve estar em seu próprio arquivo (chamada add_user.pp e localizada na pasta <modulename>/manifests/
), e não no arquivo de classe.
Defina a definição acima (altere $ name para $ username, pois $ name é uma variável reservada) e, em seguida, inclua o mesmo conjunto de parâmetros que define os usos para a classe. (que no seu exemplo seria $modulepath/users/manifests/add.pp
para fazer funcionar com o autoloader)
Se você alterar a turma da seguinte forma:
class users::add( $u_name, $u_comment, $u_home, $u_shell, $u_uid, $u_gid, $u_password)
{
users::add_user{ $u_name:
$username => $u_name,
$comment => $u_comment,
$home => $u_home,
$shell => $u_shell,
$uid => $u_uid,
$gid => $u_gid,
$password => $u_password,
}
}
E altere o site.pp para:
import "classes/*.pp"
node default{
class { 'add_user':
username => "saga",
comment => "Arun Sag",
gid => "100",
home => "/home/saga",
password => '$1$passwordhash/',
shell => "/bin/bash",
uid => "70960",
}
}
Para o yaml, algo como isso será feito, consulte a documentação para obter mais detalhes:
---
classes:
users::add:
parameters:
name: some_name
comment: some_comment
home: home_value
shell: /bin/sh
uid: 3990
gid: 3990
password: superstrongpassword
environment:
production