From 93a05133b04d80da7ff7548b428871fe156ec5fe Mon Sep 17 00:00:00 2001 From: Jeremy MANSON Date: Mon, 7 Mar 2016 10:19:14 +0100 Subject: [PATCH] first commit Adding scripts Primitives "install" " delete" "upgrade" and nginx conf --- README.md | 2 ++ conf/nginx.conf | 7 +++++++ manifest.json | 32 ++++++++++++++++++++++++++++++++ scripts/install | 45 +++++++++++++++++++++++++++++++++++++++++++++ scripts/remove | 11 +++++++++++ scripts/upgrade | 14 ++++++++++++++ 6 files changed, 111 insertions(+) create mode 100644 README.md create mode 100644 conf/nginx.conf create mode 100644 manifest.json create mode 100644 scripts/install create mode 100644 scripts/remove create mode 100644 scripts/upgrade diff --git a/README.md b/README.md new file mode 100644 index 0000000..c367f27 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +shinken for yunohost +============= \ No newline at end of file diff --git a/conf/nginx.conf b/conf/nginx.conf new file mode 100644 index 0000000..0f249b6 --- /dev/null +++ b/conf/nginx.conf @@ -0,0 +1,7 @@ +location ^~ /shinken { + proxy_pass http://127.0.0.1:7677; + + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; + more_clear_input_headers 'Accept-Encoding'; +} \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..3d351f4 --- /dev/null +++ b/manifest.json @@ -0,0 +1,32 @@ +{ + "name": "Shinken", + "id": "shinken", + "description": { + "en": "Shinken is an open source computer system and network monitoring software application compatible with Nagios. It watches hosts and services, gathers performance data and alerts users when error conditions occur and again when the conditions clear." + }, + "developer": { + "name": "Jeremy MANSON", + "email": "jeremy.manson@jmanson.fr", + "url": "https://www.jmanson.fr" + }, + "multi_instance": "false", + "arguments": { + "install": [ + { + "name": "domain", + "ask": { + "en": "Choose a domain for Shinken" + }, + "example": "domain.org" + }, + { + "name": "path", + "ask": { + "en": "Choose a path for Shinken" + }, + "example": "/shinken", + "default": "/shinken" + } + ] + } +} diff --git a/scripts/install b/scripts/install new file mode 100644 index 0000000..3429676 --- /dev/null +++ b/scripts/install @@ -0,0 +1,45 @@ +#!/bin/bash + +# Retrieve arguments +domain=$1 +path=$2 + +sudo yunohost app checkurl $domain$path -a shinken +if [[ ! $? -eq 0 ]]; then + exit 1 +fi + +# Create user +id -u shinken &>/dev/null || sudo useradd -d /home/yunohost.app/shinken shinken + +# Install required packages +sudo apt-get install -y apt-get install python-cherrypy3 python-pip python-pycurl nagios-plugins +sudo bash -c "pip install shinken" + +# prepare shinken +sudo pip install pymongo>=3.0.3 requests arrow bottle==0.12.8 passlib +sudo apt-get install mongodb +sudo su -c shinken --int -l shinken +sudo su -c shinken install webui2 -l shinken + + +# Remove trailing "/" for next commands +path=${path%/} + +# Monitor service +sudo yunohost service add shinken + +# Configure Nginx + +sudo sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf +sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/shinken.conf + + +# Add new shinken service +sudo update-rc.d shinken defaults + +# Generate SSOwat conf +sudo service nginx restart +echo $? +sudo yunohost app ssowatconf +sudo service shinken start diff --git a/scripts/remove b/scripts/remove new file mode 100644 index 0000000..5d528a2 --- /dev/null +++ b/scripts/remove @@ -0,0 +1,11 @@ +#!/bin/bash + +domain=$(sudo yunohost app setting shinken domain) + +sudo rm /etc/nginx/conf.d/$domain.d/shinken.conf +sudo rm -rf /home/yunohost.app/shinken + +sudo sudo update-rc.d -f shinken remove + +sudo service nginx reload +sudo yunohost app ssowatconf \ No newline at end of file diff --git a/scripts/upgrade b/scripts/upgrade new file mode 100644 index 0000000..2a2118f --- /dev/null +++ b/scripts/upgrade @@ -0,0 +1,14 @@ +#!/bin/bash + +# Retrieve arguments +domain=$(sudo yunohost app setting shinken domain) +path=$(sudo yunohost app setting shinken path) + +# Remove trailing "/" for next commands +path=${path%/} + +# Configure Nginx and reload +sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf +sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/shinken.conf +sudo service nginx reload +