J'essaie de configurer les hôtes virtuels Apache avec Puppet et j'ai essayé différentes choses sans grand succès.
J'ai défini un nœud comme suit :
node 'test1.cob' inherits serveurClient {
$smcvhost = 'all'
}
La classe serveurClient inclut la classe apache. Cela fonctionne bien, Apache est installé et toute la configuration est appliquée correctement, sauf les hôtes virtuels.
La configuration relative aux hôtes virtuels est la suivante :
class apache::config {
File{
require => Class["apache::install"],
notify => Class["apache::service"],
ensure => present,
owner => "www-data",
group => "www-data",
mode => 755
}
...
if ( $smcvhost == 'belleville' ) or ( $smcvhost == 'all' ) {
apache::smcvhost{'belleville':
client => 'belleville',
}
}
...
}
Le site apache::smcvhost fonctionne correctement car si je la spécifie directement dans le nœud sans la condition, l'hôte virtuel est créé correctement et sans erreur. Si je supprime l'instruction if, il sera également créé correctement. J'ai essayé de ne spécifier que la deuxième condition mais cela n'a pas fonctionné.
Lorsque l'exécution échoue, je ne reçois pas d'erreur. Le rapport Puppet ignore simplement cette partie de la configuration.
Je pense qu'il s'agit d'un problème de délimitation de variable, mais d'après ce que j'ai lu, cette pratique semble correcte et j'imagine que Puppet me donnerait une erreur si j'essayais d'évaluer une variable inexistante.