install 4.3 version
diff --git a/kibana/files/kibana.init b/kibana/files/kibana.init
new file mode 100755
index 0000000..d19ba7c
--- /dev/null
+++ b/kibana/files/kibana.init
@@ -0,0 +1,156 @@
+#!/bin/sh
+# Init script for kibana
+# Maintained by
+# Generated by pleaserun.
+# Implemented based on LSB Core 3.1:
+# * Sections: 20.2, 20.3
+#
+### BEGIN INIT INFO
+# Provides: kibana
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description:
+# Description: no description given
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+export PATH
+
+name=kibana
+program=/opt/kibana/bin/kibana
+args=''
+pidfile="/var/run/$name.pid"
+
+[ -r /etc/default/$name ] && . /etc/default/$name
+[ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name
+
+trace() {
+ logger -t "/etc/init.d/kibana" "$@"
+}
+
+emit() {
+ trace "$@"
+ echo "$@"
+}
+
+start() {
+
+ # Ensure the log directory is setup correctly.
+ [ ! -d "/var/log/kibana/" ] && mkdir "/var/log/kibana/"
+ chown "$user":"$group" "/var/log/kibana/"
+ chmod 755 "/var/log/kibana/"
+
+
+ # Setup any environmental stuff beforehand
+
+
+ # Run the program!
+
+ chroot --userspec "$user":"$group" "$chroot" sh -c "
+
+ cd \"$chdir\"
+ exec \"$program\" $args
+ " >> /var/log/kibana/kibana.stdout 2>> /var/log/kibana/kibana.stderr &
+
+ # Generate the pidfile from here. If we instead made the forked process
+ # generate it there will be a race condition between the pidfile writing
+ # and a process possibly asking for status.
+ echo $! > $pidfile
+
+ emit "$name started"
+ return 0
+}
+
+stop() {
+ # Try a few times to kill TERM the program
+ if status ; then
+ pid=$(cat "$pidfile")
+ trace "Killing $name (pid $pid) with SIGTERM"
+ kill -TERM $pid
+ # Wait for it to exit.
+ for i in 1 2 3 4 5 ; do
+ trace "Waiting $name (pid $pid) to die..."
+ status || break
+ sleep 1
+ done
+ if status ; then
+ emit "$name stop failed; still running."
+ else
+ emit "$name stopped."
+ fi
+ fi
+}
+
+status() {
+ if [ -f "$pidfile" ] ; then
+ pid=$(cat "$pidfile")
+ if ps -p $pid > /dev/null 2> /dev/null ; then
+ # process by this pid is running.
+ # It may not be our pid, but that's what you get with just pidfiles.
+ # TODO(sissel): Check if this process seems to be the same as the one we
+ # expect. It'd be nice to use flock here, but flock uses fork, not exec,
+ # so it makes it quite awkward to use in this case.
+ return 0
+ else
+ return 2 # program is dead but pid file exists
+ fi
+ else
+ return 3 # program is not running
+ fi
+}
+
+force_stop() {
+ if status ; then
+ stop
+ status && kill -KILL $(cat "$pidfile")
+ fi
+}
+
+
+case "$1" in
+ force-start|start|stop|force-stop|restart)
+ trace "Attempting '$1' on kibana"
+ ;;
+esac
+
+case "$1" in
+ force-start)
+ PRESTART=no
+ exec "$0" start
+ ;;
+ start)
+ status
+ code=$?
+ if [ $code -eq 0 ]; then
+ emit "$name is already running"
+ exit $code
+ else
+ start
+ exit $?
+ fi
+ ;;
+ stop) stop ;;
+ force-stop) force_stop ;;
+ status)
+ status
+ code=$?
+ if [ $code -eq 0 ] ; then
+ emit "$name is running"
+ else
+ emit "$name is not running"
+ fi
+ exit $code
+ ;;
+ restart)
+
+ stop && start
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|force-start|stop|force-start|force-stop|status|restart}" >&2
+ exit 3
+ ;;
+esac
+
+exit $?
diff --git a/kibana/init.sls b/kibana/init.sls
index 2003aa5..45e2ea3 100644
--- a/kibana/init.sls
+++ b/kibana/init.sls
@@ -1,5 +1,7 @@
+{%- if pillar.kibana is defined %}
{%- if pillar.kibana.server is defined %}
include:
- kibana.server
{%- endif %}
+{%- endif %}
diff --git a/kibana/map.jinja b/kibana/map.jinja
index a6736e3..1a220ee 100644
--- a/kibana/map.jinja
+++ b/kibana/map.jinja
@@ -1,7 +1,8 @@
{% set server = salt['grains.filter_by']({
'Debian': {
- 'pkgname': 'kibana',
+ 'pkgs': ['kibana'],
'service': 'kibana',
+ 'dir': '/opt/kibana'
},
}, merge=salt['pillar.get']('kibana:server')) %}
diff --git a/kibana/meta/sphinx.yml b/kibana/meta/sphinx.yml
index 58af7b3..3aa536e 100644
--- a/kibana/meta/sphinx.yml
+++ b/kibana/meta/sphinx.yml
@@ -1,6 +1,6 @@
doc:
name: Kibana
- description: Kibana is an open source (Apache Licensed), browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch.
+ description: Kibana is a browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch.
role:
{%- if pillar.kibana.server is defined %}
server:
diff --git a/kibana/server.sls b/kibana/server.sls
index 8122fdc..d98cc9d 100644
--- a/kibana/server.sls
+++ b/kibana/server.sls
@@ -1,35 +1,45 @@
{%- from "kibana/map.jinja" import server with context %}
{%- if server.enabled %}
-{%- if server.addrepo is defined and grains['os_family'] == 'Debian' %}
+kibana_user:
+ user.present:
+ - name: kibana
+ - system: True
+ - home: {{ server.dir }}
+ - require:
+ - file: {{ server.dir }}
-kibana_repo:
- pkgrepo.managed:
- - humanname: Kibana Repository
- - name: deb http://packages.elastic.co/kibana/4.1/debian stable main
- - dist: stable
- - file: /etc/apt/sources.list.d/kibana.list
- - key_url: https://packages.elastic.co/GPG-KEY-elasticsearch
+kibana_archive:
+ archive.extracted:
+ - name: {{ server.dir }}
+ - source: https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz
+ - archive_format: tar.gz
+ - if_missing: /opt/kibana/src
+ - require:
+ - user: kibana_user
-{%- endif %}
+/etc/init.d/kibana:
+ file.managed:
+ - source: salt://kibana/files/kibana.init
+ - user: kibana
+ - group: kibana
+ - mode: 700
+ - template: jinja
+ - require:
+ - archive: kibana_archive
+ - watch_in:
+ - service: kibana_service
-kibana_package:
- pkg.installed:
- - name: {{ server.pkgname }}
+/opt/kibana/src/config/kibana.yml:
+ file.managed:
+ - source: salt://kibana/files/kibana.yml
+ - template: jinja
+ - watch_in:
+ - service: kibana_service
kibana_service:
service.running:
- enable: true
- name: {{ server.service }}
- - watch:
- - file: /opt/kibana/config/kibana.yml
-/opt/kibana/config/kibana.yml:
- file.managed:
- - source: salt://kibana/files/kibana.yml
- - template: jinja
- - require:
- - pkg: kibana_package
-
-{%- endif %}
-
+{%- endif %}
\ No newline at end of file