From fa2b06e398ba2cc900d58d4bf44462785e3aa617 Mon Sep 17 00:00:00 2001 From: aviau Date: Tue, 26 May 2015 15:46:08 -0400 Subject: [PATCH] Install mod-ceilometer in Alignak Change-Id: I72b07016244827a0dee510740dd89ea130917c65 --- Dockerfile | 10 ++++++---- docker-compose-production.yml | 6 +++--- docker-compose.yml | 5 +++++ tools/docker/alignak_container/Dockerfile | 16 +++++++++++++++- .../etc/alignak/brokers/broker-master.cfg | 2 +- .../etc/alignak/modules/ceilometer.cfg | 11 +++++++++++ tools/docker/alignak_container/setup.sh | 16 ++++++++++++++++ tools/docker/surveil_container/setup.sh | 6 +++--- 8 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 tools/docker/alignak_container/etc/alignak/modules/ceilometer.cfg create mode 100755 tools/docker/alignak_container/setup.sh diff --git a/Dockerfile b/Dockerfile index d319e1b..7add11e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,13 +37,15 @@ ENV PBR_VERSION=PROD # We are using develop so that the code can be mounted when in DEV. RUN cd /opt/surveil && python setup.py develop -#Set to 'surveil' or 'keystone' +# Set to 'surveil' or 'keystone' ENV SURVEIL_AUTH_BACKEND=surveil ENV SURVEIL_KEYSTONE_HOST=198.72.123.131 ENV SURVEIL_KEYSTONE_AUTH_PROTOCOL=http -ENV SURVEIL_KEYSTONE_ADMIN_USER=admin -ENV SURVEIL_KEYSTONE_ADMIN_PASSWORD=password -ENV SURVEIL_KEYSTONE_ADMIN_TENANT_NAME=admin + +# OpenStack Authentication credentials. Used for Keystone authentication +ENV SURVEIL_OS_USERNAME=admin +ENV SURVEIL_OS_PASSWORD=password +ENV SURVEIL_OS_TENANT_NAME=admin CMD cd /opt/surveil && \ ./setup.sh && \ diff --git a/docker-compose-production.yml b/docker-compose-production.yml index 75e6ad1..aaec359 100644 --- a/docker-compose-production.yml +++ b/docker-compose-production.yml @@ -12,9 +12,9 @@ surveil: #SURVEIL_AUTH_BACKEND: "keystone" #SURVEIL_KEYSTONE_HOST: "198.72.123.131" #SURVEIL_KEYSTONE_AUTH_PROTOCOL: "http" - #SURVEIL_KEYSTONE_ADMIN_USER: "admin" - #SURVEIL_KEYSTONE_ADMIN_PASSWORD: "password" - #SURVEIL_KEYSTONE_ADMIN_TENANT_NAME: "admin" + #SURVEIL_OS_USERNAME: "admin" + #SURVEIL_OS_PASSWORD: "password" + #SURVEIL_OS_TENANT_NAME: "admin" alignak: #build: tools/docker/alignak_container/ diff --git a/docker-compose.yml b/docker-compose.yml index cc7022d..d3234bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,6 +20,11 @@ alignak: - influxdb ports: - "7767:7767" + environment: + SURVEIL_OS_AUTH_URL: "http://keystone:5000/v2.0" + SURVEIL_OS_USERNAME: "admin" + SURVEIL_OS_PASSWORD: "password" + SURVEIL_OS_TENANT_NAME: "admin" mongo: image: mongo diff --git a/tools/docker/alignak_container/Dockerfile b/tools/docker/alignak_container/Dockerfile index 967493e..4c29e53 100644 --- a/tools/docker/alignak_container/Dockerfile +++ b/tools/docker/alignak_container/Dockerfile @@ -63,6 +63,13 @@ RUN cd /tmp && \ mv /tmp/mod-mongo-live-config-*/mod_mongo_live_config /var/lib/alignak/modules/mod_mongo_live_config && \ rm -rfv /tmp/mod-mongo-live-config* +# mod-ceilometer +RUN cd /tmp && \ + wget -O mod-ceilometer.tar.gz https://github.com/savoirfairelinux/mod-ceilometer/archive/062c546b12f6a57b3f9810955e1aee6b5b92e38f.tar.gz && \ + tar -zxvf mod-ceilometer.tar.gz && \ + mv /tmp/mod-ceilometer-*/module /var/lib/alignak/modules/mod-ceilometer && \ + rm -rfv /tmp/mod-ceilometer* + ## plugins RUN apt-get update && apt-get install -y nagios-plugins nagios-nrpe-plugin # run permissions for user `alignak` @@ -97,6 +104,7 @@ RUN sh -c 'gpg --recv-keys --keyserver keyserver.ubuntu.com 2320E8F8 && gpg --e apt-get install -y --force-yes monitoring-packs-sfl-generic-host monitoring-packs-sfl-linux-system-nrpe ## configuration +ADD setup.sh /setup.sh RUN rm -rf /etc/alignak ADD etc/alignak /etc/alignak RUN chown -R root:alignak /etc/alignak @@ -110,4 +118,10 @@ EXPOSE 7767 # ws-arbiter EXPOSE 7760 -CMD /usr/bin/supervisord +# OpenStack Authentication credentials. Used for sending data to Ceilometer +ENV SURVEIL_OS_AUTH_URL=http://keystone:5000/v2.0 +ENV SURVEIL_OS_USERNAME=admin +ENV SURVEIL_OS_PASSWORD=password +ENV SURVEIL_OS_TENANT_NAME=admin + +CMD ./setup.sh && /usr/bin/supervisord diff --git a/tools/docker/alignak_container/etc/alignak/brokers/broker-master.cfg b/tools/docker/alignak_container/etc/alignak/brokers/broker-master.cfg index b5d6bf4..bb61741 100644 --- a/tools/docker/alignak_container/etc/alignak/brokers/broker-master.cfg +++ b/tools/docker/alignak_container/etc/alignak/brokers/broker-master.cfg @@ -37,7 +37,7 @@ define broker { # - graphite = Use a Graphite time series DB for perfdata # - webui = Shinken Web interface # - glpidb = Save data in GLPI MySQL database - modules WebUI,mod-influxdb + modules WebUI,mod-influxdb,mod-ceilometer # Enable https or not use_ssl 0 diff --git a/tools/docker/alignak_container/etc/alignak/modules/ceilometer.cfg b/tools/docker/alignak_container/etc/alignak/modules/ceilometer.cfg new file mode 100644 index 0000000..7ec388b --- /dev/null +++ b/tools/docker/alignak_container/etc/alignak/modules/ceilometer.cfg @@ -0,0 +1,11 @@ +## Module: mod-ceilometer +## Loaded by: Broker +define module { + module_name mod-ceilometer + module_type ceilometer_perfdata + auth_url <- SURVEIL_OS_AUTH_URL -> + username <- SURVEIL_OS_USERNAME -> + password <- SURVEIL_OS_PASSWORD -> + tenant_name <- SURVEIL_OS_TENANT_NAME -> + #tick_limit 300 ; Default value 300 +} diff --git a/tools/docker/alignak_container/setup.sh b/tools/docker/alignak_container/setup.sh new file mode 100755 index 0000000..2ee630d --- /dev/null +++ b/tools/docker/alignak_container/setup.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +function setup_alignak { + echo -e "Setting up mod-ceilometer" + sed -i "s|<- SURVEIL_OS_AUTH_URL ->|${SURVEIL_OS_AUTH_URL}|" /etc/alignak/modules/ceilometer.cfg + sed -i "s|<- SURVEIL_OS_USERNAME ->|${SURVEIL_OS_USERNAME}|" /etc/alignak/modules/ceilometer.cfg + sed -i "s|<- SURVEIL_OS_PASSWORD ->|${SURVEIL_OS_PASSWORD}|" /etc/alignak/modules/ceilometer.cfg + sed -i "s|<- SURVEIL_OS_TENANT_NAME ->|${SURVEIL_OS_TENANT_NAME}|" /etc/alignak/modules/ceilometer.cfg +} + +if [ -f "/.setup_alignak" ]; then + echo "=> Alignak was already configured, skipping..." +else + setup_alignak && touch "/.setup_alignak" + echo -e "=> Done with Alignak configuration." +fi diff --git a/tools/docker/surveil_container/setup.sh b/tools/docker/surveil_container/setup.sh index 4185d99..9aad578 100755 --- a/tools/docker/surveil_container/setup.sh +++ b/tools/docker/surveil_container/setup.sh @@ -9,9 +9,9 @@ function setup_surveil_api { sed -i "s|pipeline =.*|pipeline = authtoken api-server|" /etc/surveil/api_paste.ini sed -i "s|auth_protocol=.*|auth_protocol=${SURVEIL_KEYSTONE_AUTH_PROTOCOL}|" /etc/surveil/api_paste.ini sed -i "s|auth_host=.*|auth_host=${SURVEIL_KEYSTONE_HOST}|" /etc/surveil/api_paste.ini - sed -i "s|admin_user=.*|admin_user=${SURVEIL_KEYSTONE_ADMIN_USER}|" /etc/surveil/api_paste.ini - sed -i "s|admin_password=.*|admin_password=${SURVEIL_KEYSTONE_ADMIN_PASSWORD}|" /etc/surveil/api_paste.ini - sed -i "s|admin_tenant_name=.*|admin_tenant_name=${SURVEIL_KEYSTONE_ADMIN_TENANT_NAME}|" /etc/surveil/api_paste.ini + sed -i "s|admin_user=.*|admin_user=${SURVEIL_OS_USERNAME}|" /etc/surveil/api_paste.ini + sed -i "s|admin_password=.*|admin_password=${SURVEIL_OS_PASSWORD}|" /etc/surveil/api_paste.ini + sed -i "s|admin_tenant_name=.*|admin_tenant_name=${SURVEIL_OS_TENANT_NAME}|" /etc/surveil/api_paste.ini fi }