Infraestrutura Ágil

Soluções e métodos inteligentes para sua infra

Puppet Criando módulo Saltstack

| Comments

Eu já mostrei como instalar o Salt manualmente, agora vou compartilhar com vocês o módulo que criei para instalá-lo via puppet em todo o nosso parque de servidores.

Criando o módulo

crie o diretório

mkdir saltstack

entre no diretório

cd saltstack

crie o subdir files

mkdir files

crie o subdir manifests

mkdir manifests

entre no subdir manifests

cd manifests

crie o subdir classes

mkdir classes

entre no subdir classes

cd classes

crie o arquivo salt-master.pp

vim salt-master.pp

insira os seguinte conteúdo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class salt-master {

  if $lsbdistcodename == 'squeeze' {
  
      package { "salt-master":
          ensure => present,
      }

      file { "/etc/salt/master":
          ensure  => present,
          mode    => 644,
          owner   => root,
          group   => root,
          source  => "puppet:///salt/master",
          require => Package['salt-master'],
          notify  => Service['salt-master'],
      }

      service { "salt-master":
          ensure     => running,
          enable     => true,
          hasstatus  => true,
          hasrestart => true,
          require    => [ Package['salt-master'], File["/etc/salt/master"] ],
      }
  }
}

crie o arquivo salt-minion.pp com o conteúdo abaixo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class salt-minion {

  if $lsbdistcodename == 'squeeze' {

      package { "salt-minion":
          ensure => present,
      }

      file { "/etc/salt/minion":
          ensure  => present,
          mode    => 644,
          owner   => root,
          group   => root,
          source  => "puppet:///salt/minion",
          require => Package['salt-minion'],
          notify  => Service['salt-minion'],
      }

      service { "salt-minion":
          ensure     => running,
          enable     => true,
          hasstatus  => true,
          hasrestart => true,
          require    => [ Package['salt-minion'], File["/etc/salt/minion"] ],
      }
  }
}

suba um nível

cd ..

crie o arquivo init.pp

vim init.pp

insira o conteúdo abaixo

import "classes/*.pp"

coloque os arquivos de configuração master e minion no diretório files.

Declarando módulo no site.pp

Após a construção do módulo precisamos de alguma forma carregá-lo, após isto poderemos incluir suas classes nas configurações dos nodes.

O arquivo /etc/puppet/manifests/site.pp é o arquivo em que você precisa carregar os módulos, neste arquivo você poderá colocar uma linha como a abaixo:

import "saltstack"

Isso será suficiente para o carregamento do módulo.

Declarando classes em nodes

Declarando a classe salt-master ao node master

1
2
3
node "master" {
    include salt-master
}

Declarando a classe salt-minion ao node minion

1
2
3
node "master" {
    include salt-master
}

Amarrando as pontas

Este módulo é simples, porém é o suficiente para instalarmos o servidor salt-master e também o salt-minion em nossos nodes, com isso poderemos executar comandos nos nodes em tempo real, algo que faz muita falta no puppet.

Comments