Puppet - Não pare a execução do manifesto se um módulo falhar

2

Estou com dificuldades para entender um dos muitos mecanismos de lógica do Puppet: o cenário de falha de módulo.

Eu tenho vários módulos fazendo várias coisas em um conjunto de nós de diferenças e quero implementar o seguinte cenário:

  1. implemente todos os módulos para nós especificados
  2. se a execução de um módulo falhar, apenas falhe este módulo, mas continue aplicando outros módulos

Eu escrevi algo ao longo destas linhas no meu módulo de teste ( yum ):

init.pp :

class yum {
    case $operatingsystem { 
        /(RedHat|CentOS)/ : { include yum:config }
        default:            { include yum:fail }
    }
}

class yum::config {
    debug("[${fqdn}] Deploying yum.conf file")
    #DEPLOY YUM.CONF CODE
}

class yum:fail {
    fail("[${fqdn}] This module is only for RedHat or CentOS")
}

E no meu site.pp manifest:

node 'redhat', 'centos', 'debian' {
    include yum
    include motd
}

O problema é que, se o caso operatingsystem não for satisfeito por um determinado nó ( debian nesta instância), ele falhará em todos os módulos consecutivos ( motd NÃO será aplicado).

Então a questão é: o que estou fazendo errado neste caso?

PS: Tenha em mente que ainda estou no processo de aprender as melhores práticas do Puppet e, como tal, não estou fingindo que meu código é impecável.

    
por Iceman94 28.02.2014 / 18:05

1 resposta

1

Parvo comigo. Parece de fato que, considerando a estrutura do meu módulo, eu simplesmente não tenho que fazer nada quando estivermos na classe filha yum::fail (talvez apenas coloque uma mensagem info e / ou debug ). Não há necessidade de falhar explicitamente.

    
por 28.02.2014 / 18:52

Tags