diff options
author | ng <ng+gitlab@immerda.ch> | 2015-11-28 09:22:57 +0000 |
---|---|---|
committer | ng <ng+gitlab@immerda.ch> | 2015-11-28 09:22:57 +0000 |
commit | 465abc11546ea02664a957aed4672fd1311a22a9 (patch) | |
tree | c64ead2eb8f3cfb78d71471acbe144df243f119f /lib/puppet/parser/functions | |
parent | fcd2a84e535e5d280d5299a8ff489920e1ea2305 (diff) | |
parent | ce46bcb833032440103ea9a7e0eb49c5a2cd093e (diff) |
Merge branch 'modalias_apache2.4' into 'master'
[bug] Use guess_apache_version() to query apache version
Using $::apache_version won't work because the facts are
evaluated before compiling the catalog and with this, before
the installation of apache. so on an install from scratch, this
fact won't contain anything.
See merge request !5
Diffstat (limited to 'lib/puppet/parser/functions')
-rw-r--r-- | lib/puppet/parser/functions/guess_apache_version.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/guess_apache_version.rb b/lib/puppet/parser/functions/guess_apache_version.rb new file mode 100644 index 0000000..7537f6d --- /dev/null +++ b/lib/puppet/parser/functions/guess_apache_version.rb @@ -0,0 +1,39 @@ +# Try to guess the version of apache to be installed. +# Certain apache modules depend on each other, so we +# need to evaluate the apache version before it gets +# installed. This function decides which apache version +# is going to be installed based on the `operatingsystemrelease` +# fact. +module Puppet::Parser::Functions + newfunction(:guess_apache_version, :type => :rvalue) do |args| + release = lookupvar('operatingsystemrelease') + unknown = 'unknown' + + case lookupvar('operatingsystem') + + when 'Debian' + case release + when /^7.*/ + version = '2.2' + when /^8.*/ + version = '2.4' + else + version = unknown + end + + when 'Ubuntu' + case release + when /(12.04|12.10|13.04|13.10)/ + version = '2.2' + when /(14.04|14.10|15.04|15.10|16.04)/ + version = '2.4' + else + version = unknown + end + + else + version = unknown + end + version + end +end |