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!': }
}