1
resposta

Como trabalhar com estrutura de módulos utilizando módulos do puppetlabs?

Eu estou tentando trabalhar com estrutura de módulos usando módulos do puppetlabs, mas não estou conseguindo. Minha estrutura segue esse padrão:

manifests
    nodes.pp
    web.pp
modules
    django
        manifests
            init.pp
        files
            (empty directory)
    postgres
        manifests
            init.pp
        files
            (empty directory)

No vagrantfile eu coloquei a linha:

puppet.module_path = "/vagrant/modules"

E nos arquivos web.pp e nodes.pp eu faço a chamada, sendo que no arquivo web.pp você faz a chamada do nó:

import 'nodes.pp'

No arquivo nodes.pp eu faço os includes dos módulos que eu tenho que são os nomes das classes, no caso por exemplo, o django e o postgres:

node default {
        include django
        include postgres
}

Se executar, com script normal que tenha suas classes apenas pra fazer algo, funciona numa boa. O problema é quando trabalha com módulos do puppetlabs, quando inclui as classes desses módulo, dá erro, o puppet não aceita.

O que eu vi é que normalmente pra executar com estruturas de módulos as classes são declaradas da seguinte forma:

class django {

}

Mas as classes para os módulos do puppetlabs qualquer que seja, são declaradas da seguinte forma:

class { 'django':

}

E dessa forma dá erro, pra eu conseguir fazer executar o script e funcionar, tive que deixar de trabalhar com estrutura de módulos e coloquei tudo em um script só, no caso o web.pp dentro do manifests. Ainda estou verificando como trabalhar com os módulos puppetlabs usando a estrutura de módulos.

1 resposta

Oi Fagner

Qual erro aconteceu quando você tentou com os módulos do puppetlabs?