Se você quiser definir o shell de um usuário existente, basta fazer:
user { "theuser":
ensure => present,
shell => "/bin/zsh",
}
Se você quiser configurar o shell de qualquer usuário que o Puppet esteja executando, você pode usar o $id
fact que retorna o nome do usuário atual. Isso parece um pouco mágico para mim e pode resultar em resultados indesejáveis, como se você estivesse executando como o usuário puppet
com uma execução puppet agent
e acabasse definindo um shell para um usuário que não deveria ter interativo logins.
Isso seria feito como:
user { $id:
ensure => present,
shell => "/bin/zsh",
}
Nota: o "garante = > presente" é opcional.