Não é possível obter exec para simular um shell de login. Você sempre pode usar su - (como sugerido por womble ) para conseguir produzir um shell de login, mas se tudo que você quer são variáveis de ambiente controladas pelo Puppet, apenas use o parâmetro environment .