O uso como $::packages indica explicitamente que você deseja que a variável seja pesquisada no escopo superior, fora de qualquer classe. Já que você parece estar definindo dentro de uma classe, isso não funcionará.
Use apenas package { $packages: ou package { $classname::packages: .