Puppet: fonte de arquivo condicional

3

Eu gostaria de usar um arquivo squid.conf diferente, dependendo de uma condição. Algo como:

    file { '/etc/squid/squid.conf':
    ensure => file,
    if condition = true then
        source => 'puppet:///modules/1/squid.conf_1',
    else
        source => 'puppet:///modules/1/squid.conf_2',
    fi
    }

Existe uma maneira de fazer isso?

    
por chris 10.12.2011 / 10:23

1 resposta

8

Você precisa de um seletor , que permitirá que você tenha um condicional dentro do recurso - ou defina um variável acima dela.

Aqui está o seletor:

file { '/etc/squid/squid.conf':
  ensure => file,
  source => $fact ? {
    "foo"   => 'puppet:///modules/1/squid.conf_1',
    "bar"   => 'puppet:///modules/1/squid.conf_2',
    default => 'puppet:///modules/1/squid.conf_default',
  },
}

Ou defina uma variável e use isso:

if $fact == "foo" {
  $squidconf = 'puppet:///modules/1/squid.conf_1'
} else {
  $squidconf = 'puppet:///modules/1/squid.conf_2'
}

file { '/etc/squid/squid.conf':
  ensure => file,
  source => $squidconf,
}

Existem outras variações, claro, veja o guia de idiomas vinculado acima e o tutorial do Puppet de aprendizado seção sobre variáveis.

    
por 10.12.2011 / 11:17

Tags