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