summaryrefslogtreecommitdiffstats
path: root/build/barometer-install.sh
blob: 15753a44e0176ea35c7ea64d2d312ac485b93997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env bash

# Copyright 2017 Intel Corporation.
#
# 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.

# Get and install packages needed for Barometer service.
# These are: collectd rpm's and dependencies, collectd-openstack-plugins,
# puppet-barometer module.
source ./variables.sh

# Versions/branches
COLLECTD_OPENSTACK_PLUGINS_BRANCH="stable/pike"

ARCH="6.el7.centos.x86_64.rpm"
# don't fail because of missing certificate
GETFLAG="--no-check-certificate"

# Locations of repos
ARTIFACTS_BAROM="artifacts.opnfv.org/barometer"
COLLECTD_OPENSTACK_REPO="https://github.com/openstack/collectd-ceilometer-plugin"
PUPPET_BAROMETER_REPO="https://github.com/johnhinman/puppet-barometer"

# upload barometer packages tar, extract, and install

function barometer_pkgs {
  OVERCLOUD_IMAGE=$1

  # get collectd packages and upload to image
  echo "adding barometer to " $1
  rm -rf barometer
  mkdir barometer
  pushd barometer > /dev/null

  # get version of barometer packages to download
  wget $GETFLAG $ARTIFACTS_BAROM/latest.properties
  BAROMETER_VER=$(grep OPNFV_ARTIFACT_VERSION ./latest.properties | cut -d'=' -f2)
  echo "BAROMETER version = $BAROMETER_VER"

  # get collectd version from HTML
  wget $GETFLAG $ARTIFACTS_BAROM.html
  COLLECTD_VER=$(grep "$BAROMETER_VER/collectd-debuginfo" ./barometer.html \
    | cut -d'-' -f7)
  SUFFIX=$COLLECTD_VER-$ARCH

  # get intel_rdt version
  INTEL_RDT_VER=$(grep "$BAROMETER_VER/intel-cmt-cat-devel" ./barometer.html \
    | cut -d'-' -f9)
  RDT_SUFFIX=$INTEL_RDT_VER-1.el7.centos.x86_64.rpm

  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/libcollectdclient-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/libcollectdclient-devel-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-utils-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-ovs_events-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-ovs_stats-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-virt-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-$RDT_SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-devel-$RDT_SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-python-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-snmp-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-snmp_agent-$SUFFIX
  wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-intel_rdt-$SUFFIX
  curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"

  tar cfz collectd.tar.gz *.rpm get-pip.py
  cp collectd.tar.gz ${BUILD_DIR}
  popd > /dev/null

  # get collectd-openstack-plugins and tar it
  rm -rf collectd-openstack-plugins
  git clone $COLLECTD_OPENSTACK_REPO collectd-openstack-plugins
  pushd collectd-openstack-plugins
  git checkout $COLLECTD_OPENSTACK_PLUGINS_BRANCH
  git archive --format=tar.gz HEAD > ${BUILD_DIR}/collectd-openstack-plugins.tar.gz
  popd > /dev/null

  # get the barometer puppet module and tar it
  rm -rf puppet-barometer
  git clone $PUPPET_BAROMETER_REPO
  pushd puppet-barometer/ > /dev/null
  git archive --format=tar.gz HEAD > ${BUILD_DIR}/puppet-barometer.tar.gz
  popd > /dev/null

  # get mibs for the snmp plugin
  rm -rf barometer
  git clone https://gerrit.opnfv.org/gerrit/barometer
  pushd barometer/mibs > /dev/null
  git archive --format=tar.gz HEAD > ${BUILD_DIR}/mibs.tar.gz
  popd > /dev/null

  # Upload tar files to image
  # untar collectd packages
  # install dependencies
  LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
    --upload ${BUILD_DIR}/collectd.tar.gz:/opt/ \
    --upload ${BUILD_DIR}/collectd-openstack-plugins.tar.gz:/opt/ \
    --upload ${BUILD_DIR}/puppet-barometer.tar.gz:/etc/puppet/modules/ \
    --run-command 'tar xfz /opt/collectd.tar.gz -C /opt' \
    --install libstatgrab,log4cplus,rrdtool,rrdtool-devel \
    --install mcelog,python34,python34-libs,python34-devel \
    --install libvirt,libvirt-devel,gcc \
    -a $OVERCLOUD_IMAGE

  LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
    --run-command 'python3.4 /opt/get-pip.py' \
    --run-command 'pip3 install requests libvirt-python pbr babel future six' \
    -a $OVERCLOUD_IMAGE

  LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
    --run-command "yum install -y \
    /opt/libcollectdclient-${SUFFIX} \
    /opt/libcollectdclient-devel-${SUFFIX} \
    /opt/collectd-${SUFFIX} \
    /opt/collectd-utils-${SUFFIX} \
    /opt/collectd-python-${SUFFIX} \
    /opt/collectd-ovs_events-${SUFFIX} \
    /opt/collectd-ovs_stats-${SUFFIX} \
    /opt/intel-cmt-cat-${RDT_SUFFIX} \
    /opt/intel-cmt-cat-devel-${RDT_SUFFIX} \
    /opt/collectd-intel_rdt-${SUFFIX} \
    /opt/collectd-snmp-${SUFFIX} \
    /opt/collectd-snmp_agent-${SUFFIX} \
    /opt/collectd-virt-${SUFFIX}" \
    -a $OVERCLOUD_IMAGE

  # install collectd-openstack-plugins
  # install puppet-barometer module
  # make directories for config files and mibs
  LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
    --run-command 'mkdir /opt/stack/collectd-openstack' \
    --run-command "tar xfz /opt/collectd-openstack-plugins.tar.gz -C /opt/stack/collectd-openstack" \
    --run-command "cd /etc/puppet/modules/ && mkdir barometer && \
      tar xzf puppet-barometer.tar.gz -C barometer" \
    --run-command 'mkdir /usr/share/mibs/' \
    --upload ${BUILD_DIR}/mibs.tar.gz:/usr/share/snmp/mibs/ \
    --run-command 'tar xfz /usr/share/snmp/mibs/mibs.tar.gz -C /usr/share/snmp/mibs/' \
    --run-command 'ln -s /usr/share/snmp/mibs/ /usr/share/mibs/ietf' \
    --run-command 'mkdir -p /etc/collectd/collectd.conf.d' \
    -a $OVERCLOUD_IMAGE
}