Fantoche - Função

O Puppet suporta funções como qualquer outra linguagem de programação, uma vez que a linguagem base de desenvolvimento do Puppet é Ruby. Ele suporta dois tipos de funções conhecidas com o nome destatement e rvalue funções.

  • Statementsficam por conta própria e não têm nenhum tipo de retorno. Eles são usados ​​para realizar tarefas autônomas, como importar outros módulos do Puppet no novo arquivo de manifesto.

  • Rvalue retorna valores e só pode ser usado quando a instrução requer um valor, como uma atribuição ou uma instrução case.

A chave por trás da execução de funções no Puppet é que ela só executa no Puppet master e não no cliente ou no agente Puppet. Portanto, eles só têm acesso aos comandos e dados disponíveis no mestre Puppet. Existem diferentes tipos de funções que já estão presentes e até mesmo o usuário tem o privilégio de criar funções personalizadas conforme a necessidade. Algumas funções integradas estão listadas abaixo.

Função de arquivo

A função de arquivo do recurso de arquivo é carregar um módulo no Puppet e retornar a saída desejada na forma de uma string. Os argumentos que ele procura são, a referência <nome do módulo> / <arquivo>, que ajuda a carregar o módulo do diretório de arquivo do módulo Puppet.

Como script / tesingscript.sh carregará os arquivos de <nome do módulo> /script/files/testingscript.sh. A função tem a capacidade de ler e aceitar um caminho absoluto, o que ajuda a carregar o arquivo de qualquer lugar do disco.

Incluir Função

No Puppet, a função include é muito semelhante à função include em qualquer outra linguagem de programação. É utilizado para a declaração de uma ou mais classes, o que resulta na avaliação de todos os recursos presentes dentro dessas classes e, por fim, adicioná-los a um catálogo. A forma como funciona é que a função de inclusão aceita um nome de classe, lista de classes ou uma lista separada por vírgulas de nomes de classes.

Uma coisa a ter em mente ao usar um includedeclaração é que ele pode ser usado várias vezes em uma classe, mas tem a limitação de incluir uma única classe apenas uma vez. Se a classe incluída aceitar um parâmetro, a função de inclusão irá automaticamente procurar valores para eles usando <nome da classe> :: <nome do parâmetro> como a chave de pesquisa.

A função de inclusão não faz com que uma classe seja contida na classe quando eles são declarados, para isso precisamos usar uma função contida. Ele ainda não cria uma dependência na classe declarada e nas classes ao seu redor.

Na função de inclusão, apenas o nome completo de uma classe é permitido, nomes relativos não são permitidos.

Função Definida

No Puppet, a função definida ajuda a determinar onde uma determinada classe ou tipo de recurso é definido e retorna um valor booleano ou não. Também se pode usar define para determinar se um recurso específico está definido ou se a variável definida tem um valor. O ponto principal a se manter em mente ao usar a função definida é que essa função leva pelo menos um argumento de string, que pode ser um nome de classe, nome de tipo, referência de recurso ou referência de variável no formato “$ name”.

Defina verificações de função para o tipo de função nativo e definido, incluindo tipos fornecidos por módulos. Tipo e classe são combinados por seus nomes. A função corresponde à desaceleração do recurso usando a referência do recurso.

Definir correspondências de função

# Matching resource types 
defined("file") 
defined("customtype")  

# Matching defines and classes 
defined("testing") 
defined("testing::java")  

# Matching variables 
defined('$name')  

# Matching declared resources 
defined(File['/tmp/file'])