Comando Puppet Run no master

2

Estou tentando criar um módulo letsencrypt no Puppet. Basicamente, o que estou tentando alcançar é o seguinte:

  1. Adicionando um novo nó e importando meu módulo: class { "letsencrypt": url => "example.com" }
  2. O mestre de marionetes verificará em sua pasta de arquivos se já houver uma chave privada e um CSR para o URL fornecido e então:
    • copie a chave privada e o CSR para o nó ou
    • execute openssl openssl genrsa 4096 > example.com.key (e uma chave para a conta letsencrypt e a solicitação de assinatura de certificado), salve-a na pasta de arquivos fantoches e execute a etapa 2 novamente.
  3. Configure um cron job no nó para executar acme-tiny uma vez a cada três meses.
  4. Execute o acme-tiny uma vez no nó e obtenha o primeiro certificado e recarregue / inicie o servidor da web.

Basicamente, meu problema é como executar um comando no mestre de marionetes. Eu gostaria de executar a geração de chaves no mestre de marionetes e ter a chave privada lá, e só ter o pedido de certificado executado no nó.

Isso é possível com o Puppet? Ou devo passar o procedimento completo para o nó inteiramente, não rastreando nada no Puppet (apenas configurando o cronjob etc)?

Obrigado!

    
por Hellstorm 24.03.2016 / 21:26

1 resposta

1

O Puppet fornece uma função chamada generate , que irá preencher uma variável de manifesto local com a saída de um comando local arbitrário. Ele pode ser usado para chamar um script local personalizado que executa a geração de chave, instala a chave pública localmente e retorna o conteúdo da chave privada, que pode ser instalado como um recurso de arquivo no agente fantoche. Por exemplo:

file { "/path/to/private/key": ensure => present, content => generate("/path/to/my/custom/script"), ... }

    
por 25.03.2016 / 21:12

Tags