Sempre que tenho esse problema (particularmente comum com pacotes), coloco o recurso em uma classe, por si só:
class git {
package { 'git': ensure => installed, }
}
Depois, incluo a classe em vez de definir o recurso.
Próximo problema: mas eles são usados por diferentes módulos! Sim, coloque-os em common
ou em algum outro módulo comum específico de módulo (digamos, puppet-common
).