Este é realmente um bug em Puppet 3.6
, aparentemente.
Como um aparte, observe que o uso de agentes que são mais recentes que o mestre geralmente não é suportado.
De acordo com o este artigo dos laboratórios de fantoches, posso crie fatos personalizados a partir de scripts de shell.
Eu criei um script bash que retorna um único fato, ele é empacotado em um diretório modules facts.d O módulo está incluído no sistema de destino por meio de uma classe ENC. Quando invocado pelo agente fantoche no destino, ele retorna um conjunto vazio, quando executado manualmente no agente, retorna corretamente o fato. O script tem permissão de execução no mestre, mas não o possui no agente.
Eu vi um relatório de bug relacionado a permissões e tipos de arquivo, mas que era windows e deveria ser corrigido na versão 3 do fantoche.
O que estou fazendo de errado?
Definição ENC:
---
classes:
facttest:
Script de shell:
#!/bin/bash
echo "test_fact1=$(hostname)"
Permissões:
master: -rwxr-xr-x 1 root root ... modules/facttest/facts.d/testfact.sh
agent: -rw-r--r-- 1 root root ... /var/lib/puppet/facts.d/testfact.sh
Mensagem do agente:
Fact file /var/lib/puppet/facts.d/testfact.sh was parsed but returned an empty data set
Informação da versão:
Puppet master: 3.5.1 (Debian)
Facter master: 2.0.1
Puppet agent: 3.6.1 (OpenSUSE)
Facter agent: 2.0.1
Este é realmente um bug em Puppet 3.6
, aparentemente.
Como um aparte, observe que o uso de agentes que são mais recentes que o mestre geralmente não é suportado.