diff --git a/manifests/init.pp b/manifests/init.pp index e82405e..af9c008 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,7 +15,8 @@ # Class to install kibana frontend to logstash. # class kibana ( - $discover_nodes = ['localhost:9200'] + $discover_nodes = ['localhost:9200'], + $version = 'ruby', ) { group { 'kibana': @@ -41,64 +42,12 @@ class kibana ( require => User['kibana'], } - vcsrepo { '/opt/kibana/kibana': - ensure => latest, - provider => git, - source => 'https://github.com/rashidkpc/Kibana2.git', - revision => 'v0.2.0', - require => File['/opt/kibana'], - } - - package { 'bundler': - ensure => latest, - provider => 'gem', - } - - if $::osfamily == 'Debian' { - package { 'ruby-dev': - ensure => installed, - before => Exec['install_kibana'], + case $version { + 'ruby': { + include ::kibana::ruby } - package { 'build-essential': - ensure => installed, - before => Exec['install_kibana'], + default: { + fail("Unknown version: ${version}") } } - - exec { 'install_kibana': - command => 'bundle install', - path => ['/usr/bin', '/usr/local/bin'], - cwd => '/opt/kibana/kibana', - logoutput => true, - refreshonly => true, - subscribe => Vcsrepo['/opt/kibana/kibana'], - require => [ - User['kibana'], - Package['bundler'], - ], - } - - file { '/opt/kibana/kibana/KibanaConfig.rb': - ensure => present, - content => template('kibana/config.rb.erb'), - replace => true, - owner => 'kibana', - group => 'kibana', - require => Vcsrepo['/opt/kibana/kibana'], - } - - file { '/etc/init/kibana.conf': - ensure => present, - source => 'puppet:///modules/kibana/kibana.init', - } - - service { 'kibana': - ensure => running, - require => [ - File['/etc/init/kibana.conf'], - File['/opt/kibana/kibana/KibanaConfig.rb'], - Exec['install_kibana'], - ], - } - } diff --git a/manifests/ruby.pp b/manifests/ruby.pp new file mode 100644 index 0000000..b7cef76 --- /dev/null +++ b/manifests/ruby.pp @@ -0,0 +1,81 @@ +# Copyright 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# Class to install kibana frontend to logstash. +# +class kibana::ruby ( + $git_revision = 'v0.2.0', +) { + + vcsrepo { '/opt/kibana/kibana': + ensure => latest, + provider => git, + source => 'https://github.com/rashidkpc/Kibana2.git', + revision => $git_revision, + require => File['/opt/kibana'], + } + + package { 'bundler': + ensure => latest, + provider => 'gem', + } + + if $::osfamily == 'Debian' { + package { 'ruby-dev': + ensure => installed, + before => Exec['install_kibana'], + } + package { 'build-essential': + ensure => installed, + before => Exec['install_kibana'], + } + } + + exec { 'install_kibana': + command => 'bundle install', + path => ['/usr/bin', '/usr/local/bin'], + cwd => '/opt/kibana/kibana', + logoutput => true, + refreshonly => true, + subscribe => Vcsrepo['/opt/kibana/kibana'], + require => [ + User['kibana'], + Package['bundler'], + ], + } + + file { '/opt/kibana/kibana/KibanaConfig.rb': + ensure => present, + content => template('kibana/config.rb.erb'), + replace => true, + owner => 'kibana', + group => 'kibana', + require => Vcsrepo['/opt/kibana/kibana'], + } + + file { '/etc/init/kibana.conf': + ensure => present, + source => 'puppet:///modules/kibana/kibana.init', + } + + service { 'kibana': + ensure => running, + require => [ + File['/etc/init/kibana.conf'], + File['/opt/kibana/kibana/KibanaConfig.rb'], + Exec['install_kibana'], + ], + } + +}