Назад | Перейти на главную страницу

Как проверить версию Apache в Puppet

Мне нужно применить другую конфигурацию управления доступом в зависимости от того, использует ли сервер Apache 2.2 или 2.4. Предположительно, для этого требуется if проверьте версию Apache.

Я хотел бы знать, следует ли мне это делать:

if versioncmp($apache_version, '2.4') >= 0 {
  requires     => 'all denied',
else
  order        => 'deny,allow',
  deny         => 'from all',
}

Меня беспокоит то, что он, похоже, проверяет явную версию. Что, если на самом деле версия 2.4.6?

$apache_version назначается на вершине класса как

$apache_version =  $::apache::apache_version

Я даже не знаю, сработает ли это, потому что я не уверен, что класс вообще знает о ::apache модуль.

Несмотря на то, что вы видите комментарии о том, что такие проверки не должны выполняться внутри ресурса (apache::vhost в данном случае) я вложил чек. Причина в том, что я не уверен, как бы я сделал многострочное присвоение переменной, чтобы я мог заменить

order    => 'deny,allow',
deny     => 'from all',

с чем-то вроде

else
  $apache2.2_ac
}

Если кто-то может указать мне правильное направление и в этом вопросе, я был бы благодарен.