Existem duas maneiras de fazer isso: uma definição ou um recurso virtual. Eu sei mais sobre definições, então essa é a abordagem que descreverei. Leia sobre os recursos virtuais aqui , mas esteja pronto para ficar confuso antes de obter entendimento.
Para fazer isso em uma definição, crie um manifesto em sua estrutura de módulo para contê-la; no seu exemplo, seria em _modulepath_/applink/manifests/desktoplinks.pp
define applink::desktoplinks {
file { "/home/$title/Escritorio/Workdesktop.desktop":
owner => $title,
group => root,
source => "puppet://$server/files/Workdesktop.desktop",
}
# you could have others here if you wanted
}
Em seguida, para usá-lo, você o chamaria com o nome de cada usuário, talvez de uma só vez em uma matriz:
applink::desktoplinks { [ "user1", "user2", "user3" ]: }
O truque é que o nome de usuário é o "título" do recurso definido, portanto, ele está disponível dentro da definição como $title
. Leia mais sobre tipos definidos aqui .
HTH