Até onde eu sei, você não pode obter variáveis dentro de recursos definidos.
Eu abordaria isso reordenando as definições de tipo de recurso e colocando a cláusula nginx::siteconfig dentro da definição layouts::website . (Se todo uso de layouts::website também deve ter um nginx::siteconfig , então aninhar um no outro é uma boa maneira de DRY.) Se você precisar ter alguns casos em que o uso de layouts::website também não tem uma definição nginx, você terá que adicionar um parâmetro para layouts::website , algo como $nginx = true .
Além disso, os seguintes bits de código:
layouts::website {$domain:
name => $domain,
}
nginx::siteconfig {$domain:
domain => $domain,
}
cheira a repetição desnecessária para mim. O nome do site e o domínio nginx parecem candidatos perfeitos para serem namevars, então você pode deixar o parâmetro na maioria dos casos.