diff --git a/lib/facter/grafana_version.rb b/lib/facter/grafana_version.rb new file mode 100644 index 000000000..60728d350 --- /dev/null +++ b/lib/facter/grafana_version.rb @@ -0,0 +1,7 @@ +if FileTest.exists?("/usr/bin/dpkg-query") + Facter.add("grafana_version") do + setcode do + %x{/usr/bin/dpkg-query -W -f='${Version}' grafana} + end + end +end diff --git a/manifests/install.pp b/manifests/install.pp index 982c6eee4..821ffcdb9 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -15,17 +15,30 @@ ensure => present } + # if using 'latest' keyword version, this will run all the time + if $grafana_version != $::grafana::version { + file { '/tmp/grafana.deb': + ensure => absent + } + package { $::grafana::package_name: + ensure => absent, + provider => 'dpkg' + } + } + wget::fetch { 'grafana': source => $::grafana::package_source, destination => '/tmp/grafana.deb' } - package { $::grafana::package_name: + package { 'grafana-package': ensure => present, provider => 'dpkg', source => '/tmp/grafana.deb', - require => [Wget::Fetch['grafana'],Package['libfontconfig1']] + require => [Wget::Fetch['grafana'],Package['libfontconfig1']], + notify => Service[$::grafana::service_name] } + } 'RedHat': { package { 'fontconfig': diff --git a/manifests/service.pp b/manifests/service.pp index d5d2ca40c..f2035b7bd 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -34,7 +34,8 @@ binary => "su - grafana -c '${service_path} -config=${service_config} -homepath=${::grafana::install_dir} web &'", hasrestart => false, hasstatus => false, - status => "ps -ef | grep ${::grafana::service_name} | grep -v grep" + status => "ps -ef | grep ${::grafana::service_name} | grep -v grep", + require => Package['grafana-package'], } } }