Puppet : Trabalhando com classes

Neste post será apresentado como trabalhar com classes com o Puppet, caso você tenha dúvidas sobre esta poderosa ferramenta de automação o link abaixo apresenta como dar o primeiro passo .

http://fajlinux.com.br/devops/puppet-instalacao-do-servidor-no-rhel-6-7/

1) Configuração do arquivo /etc/puppet/fileserver.conf :

Para que o puppet possa ler as configurações apresentadas neste post inclui as seguintes linhas no arquivo /etc/puppet/fileserver.conf .

[files]
path /etc/puppet/files
allow *.example.com
allow_ip 10.0.0.0/24

[modules]
path /etc/puppet/modules
allow *.example.com
allow_ip 10.0.0.0/24

Utilizei a configuração allow para liberar o domínio e allow_ip para liberar a range da minha rede. Aplicando estas configurações as máquinas clientes poderão solicitar arquivos do servidor master.

2) Criando a Classe a ser utilizada :

Vou apresentar um exemplo utilizando o Apache para simplificar a configuração :

arquivo /etc/puppet/manifests/classes/httpd.pp

class httpd {

package { "httpd":
ensure => present,
}
 
# declarando arquivo de configuração main.cf
 
file { '/etc/httpd/conf/httpd.conf':
ensure  => present,
source  => "puppet:///files/httpd/conf/httpd.conf",
notify  => Service["httpd"],
require => Package["httpd"],
}
 
service { "httpd":
ensure     => running,
enable     => true,
hasrestart => true,
hasstatus  => true,
require    => Package['httpd'],
}
 
}

Coloque o arquivo httpd.conf dentro de /etc/puppet/files/httpd/conf/ para pegar o arquivo modelo da configuração.

3) Declarando a classe :

Vamos criar o diretório nodes para declarar o manifest webserver.pp

mkdir /etc/puppet/manifests/nodes
vim /etc/puppet/manifests/nodes/webserver.pp

Declarando manifest webserver.pp :

node "web-01.example.com" {
     include httpd
}

Assim teremos um controle melhor da configuração implantada em cada servidor chamando apenas a classe .

Referência :

https://docs.puppetlabs.com/pe/latest/puppet_assign_configurations.html#basics-of-assigning-and-configuring-classes