I have thought about somehow trying to move the keys for these hosts in to hiera, or something else, but I haven't found a solution that isn't ugly.
Existem várias maneiras de conseguir isso. Eu tento manter minhas classes genéricas, com todos os meus dados de configuração no hiera. Quando estou lidando com coleções de dados, tento usar um hiera hash, assim nunca preciso mudar minha classe ou definir código.
1: Use um hash hiera para armazenar uma coleção de chaves.
hiera_key_hash:
key-1:
name: cisco500
type: router
key: xxx
key-2:
name: cisco100
type: switch
key: xxx
2: Crie uma classe que chame um create_resource para cada chave (isso chamará a definição de 'chave').
class keys {
create_resources( "key", hiera('hiera_key_hash') )
}
3: Crie uma definição que faça o trabalho para cada chave.
define key($name, $type, $key) {
// code goes here
}
Nota: Em algum momento, você pode acabar armazenando informações confidenciais no seu hiera. Você pode querer considerar criptografar alguns de seus valores confidenciais.