De um fantoche de perspectiva de tempo de execução verifica o status do usuário no sistema e o compara com o manifesto. Se o usuário não existir no sistema, o fantoche executa o comando useradd
apropriado para criá-lo. Se o usuário não deve existir e, em seguida, ele executa o comando userdel
apropriado. Se algum atributo do usuário, como associação de grupo, uid, nome, etc, tiver sido alterado, ele emitirá o comando gpasswd
ou usermod
apropriado.
Infelizmente, a documentação do tipo de usuário não é a mais clara. O parâmetro managehome
não faz muito uma declaração sobre esse diretório, pois é uma opção para o comando useradd
, usermod
ou userdel
. Portanto, se você definir managehome => true
e alterar o local do diretório inicial, ele será criado, se você excluir o usuário, ele será excluído e, se você adicionar o usuário, ele será criado. No entanto, não garante que o diretório exista em todos os momentos.
Se isso for necessário, recomendo que você crie um tipo de arquivo e defina um requerimento apropriado. Algo parecido com isto:
user { 'artifactory':
ensure => 'present',
home => '/home/artifactory',
managehome => true,
}
file {
'/home/artifactory/data':
ensure => link,
target => '/var/lib',
require => [ User['artifactory'], File['artifactoryhomedir'] ];
'/home/artifactory':
ensure => directory,
alias => 'artifactoryhomedir',
require => User['artifactory'];
}