AFAIK O Foreman já leva na direção certa, então talvez você deva começar a brincar com isso.
Além disso, dê uma olhada nos Fatos personalizados . Eles são uma maneira poderosa de acessar todos os tipos de dados e torná-los utilizáveis nos manifestos do Puppet. Por exemplo. crie um fato personalizado como $::inventory_ipaddress
ou até mesmo sobrescreva o $::ipaddress
fact com o canônico a ser usado para configuração.
Para 1: Para um grande número de hosts, geralmente é aconselhável não ter centenas de node
de definições, mas sim ter um conjunto de funções e perfis .
O desafio geral do design aqui é ter um fluxo claro de informações de fonte (s) única (s) de verdade para o provisionamento.
Para 2 + 3: você pode usar o fantoche para chamar todos os tipos de scripts e ferramentas auxiliares, mas duvido que seja a melhor ferramenta para o trabalho, porque provavelmente não será a "fonte da verdade".
Para 4: Isso está em algum lugar entre os dois. Eu mesmo uso marionetes em instâncias do EC2 para periodicamente acionar uma atualização de inventário do Zabbix e usar o facetador para preencher, p. Ex. função, versão do sistema operacional, grupos de segurança. Advertência aqui: minha fonte normativa de verdade é uma ferramenta de provisionamento e minha marionete se manifesta onde eu posso mudar configurações; Por outro lado, este inventário é apenas o resultado final para verificar os resultados.