Puppet - Arquivos de Manifesto

No Puppet, todos os programas que são escritos usando a linguagem de programação Ruby e salvos com uma extensão de .pp são chamados manifests. Em termos gerais, todos os programas Puppet que são construídos com a intenção de criar ou gerenciar qualquer máquina host de destino são chamados de manifesto. Todos os programas escritos no Puppet seguem o estilo de codificação do Puppet.

O núcleo do Puppet é a forma como os recursos são declarados e como esses recursos representam seu estado. Em qualquer manifesto, o usuário pode ter uma coleção de diferentes tipos de recursos que são agrupados usando classe e definição.

Em alguns casos, o manifesto do Puppet pode até ter uma instrução condicional para atingir o estado desejado. No entanto, em última análise, tudo se resume a garantir que todos os recursos sejam definidos e usados ​​da maneira certa e o manifesto definido, quando aplicado após ser convertido em um catálogo, seja capaz de realizar a tarefa para a qual foi projetado.

Fluxo de trabalho do arquivo de manifesto

O manifesto do Puppet consiste nos seguintes componentes -

  • Files (estes são arquivos simples onde o Puppet não tem nada a ver com eles, apenas para pegá-los e colocá-los no local de destino)

  • Resources

  • Templates (eles podem ser usados ​​para construir arquivos de configuração no nó).

  • Nodes (todas as definições relacionadas a um nó cliente são definidas aqui)

  • Classes

Pontos a serem observados

  • No Puppet, todos os arquivos de manifesto usam Ruby como linguagem de codificação e são salvos com .pp extensão.

  • A instrução "Import" em muitos manifestos é usada para carregar arquivos quando o Puppet é iniciado.

  • Para importar todos os arquivos contidos em um diretório, você pode usar a instrução import de outra forma, como import 'clients / *'. Isso importará todos.pp arquivos dentro desse diretório.

Escrevendo manifestos

Trabalhando com Variáveis

Ao escrever um manifesto, o usuário pode definir uma nova variável ou usar uma variável existente em qualquer ponto de um manifesto. O Puppet suporta diferentes tipos de variáveis, mas poucas delas são freqüentemente usadas, como strings e array de strings. Além deles, outros formatos também são suportados.

Exemplo de variável de string

$package = "vim"  

package {  $package: 
   ensure => "installed" 
}

Usando Loops

Os loops são usados ​​quando se deseja passar por várias iterações em um mesmo conjunto de código até que uma condição definida seja atendida. Eles também são usados ​​para fazer tarefas repetitivas com diferentes conjuntos de valores. Criação de 10 tarefas para 10 coisas diferentes. Pode-se criar uma única tarefa e usar um loop para repetir a tarefa com diferentes pacotes que deseja instalar.

Mais comumente, uma matriz é usada para repetir um teste com valores diferentes.

$packages = ['vim', 'git', 'curl']  

package { $packages: 
   ensure => "installed" 
}

Usando condicionais

O Puppet suporta a maior parte da estrutura condicional que pode ser encontrada nas linguagens de programação tradicionais. A condição pode ser usada para definir dinamicamente se uma tarefa específica deve ser executada ou um conjunto de códigos deve ser executado. Como instruções if / else e case. Além disso, condições como execute também suportam atributos que funcionam como condição, mas só aceita uma saída de comando como condição.

if $OperatingSystem != 'Linux' { 
   warning('This manifest is not supported on this other OS apart from linux.') 
} else { 
   notify { 'the OS is Linux. We are good to go!': }
}