Eu pessoalmente prefiro ter todas as minhas variáveis explicitamente declaradas. Nesse caso, eu declararia o valor padrão em common.yaml
e, em seguida, usaria outros arquivos yaml para declarar valores diferentes do padrão, como
common.yaml
-----------
profiles::apache::keepalive : On
profiles::apache::keepalive_timeout : 5
servertype.yaml
---------------
profiles::apache::keepalive : On
profiles::apache::keepalive_timeout : 30
Em seguida, defina a hierarquia em hiera.yaml
:hierarchy: - servertype.yaml
- common.yaml
Se você não quer fazer isso, então eu acho que a única outra abordagem seria usar instruções if
apache.pp
---------
class profiles::apache {
$apache_keepalive = hiera('profiles::apache::keepalive')
$apache_keepalive_timeout = hiera('profiles::apache::keepalive_timeout')
if ($apache_keepalive == undef) {
class {'::apache': }
}
else {
class {'::apache':
keepalive => $apache_keepalive,
keepalive_timeout => $apache_keepalive_timeout,
}
}
}