Como ler arquivos inteiros no Puppet verbatim (sem analisar como template)?

0

Eu preciso criar vários recursos ssh_authorized_keys . O recurso espera que seu key -attribute seja a própria chave pública - há não é maneira de se referir a um arquivo contendo a chave.

Como as chaves são muito longas e, como eu já as tenho em arquivos, prefiro que o Puppet as leia nos arquivos, em vez de eu citá-las no manifesto.

Eu posso imaginar alguns outros casos de uso também.

Já existe uma função para ler um arquivo especificado verbatim , sem tentar interpretá-los como template() ?

Para chaves públicas, posso, na verdade, sair com template() , mas isso carrega uma sobrecarga de uma tentativa de análise. Além disso, em alguns outros casos, dependendo do conteúdo do arquivo, a análise pode, na verdade, "falhar" ou, pior, não falhar, mas alterar silenciosamente o conteúdo ...

    
por Mikhail T. 23.11.2016 / 20:55

2 respostas

1

Is there already a function to read a specified file verbatim, without attempting to interpret them as template() does?

A função file() lerá e retornará o conteúdo de um arquivo no mestre Puppet (ou onde quer que o catálogo esteja sendo compilado), similar a template() como você descreveu.

Chame-o com um caminho como ssh_keys/foo.key para carregar o arquivo ssh_keys/files/foo.key dentro do modulepath.

Note que esta função requer o Puppet 3.7 ou superior para carregar a partir do modulepath da mesma maneira que template() . Antes disso, só funcionava com caminhos absolutos, embora tenha sido em todos os principais lançamentos.

    
por 24.11.2016 / 00:24
0

Use o tipo de recurso file com um atributo definido source . Meu ambiente de marionetes, para gerenciar as chaves ssh, na verdade apenas importa o arquivo ~ / .ssh / authorized_keys como um arquivo.

    
por 23.11.2016 / 21:34

Tags