baro: update collectd-openstack branch
[apex.git] / build / barometer-install.sh
1 #!/usr/bin/env bash
2
3 # Copyright 2017 Intel Corporation.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #   http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 # Get and install packages needed for Barometer service.
18 # These are: collectd rpm's and dependencies, collectd-openstack-plugins,
19 # puppet-barometer module.
20
21 # Versions/branches
22 COLLECTD_OPENSTACK_PLUGINS_BRANCH="stable/pike"
23
24 ARCH="6.el7.centos.x86_64.rpm"
25 # don't fail because of missing certificate
26 GETFLAG="--no-check-certificate"
27
28 # Locations of repos
29 ARTIFACTS_BAROM="artifacts.opnfv.org/barometer"
30 COLLECTD_OPENSTACK_REPO="https://github.com/openstack/collectd-ceilometer-plugin"
31 PUPPET_BAROMETER_REPO="https://github.com/johnhinman/puppet-barometer"
32
33 # upload barometer packages tar, extract, and install
34
35 function barometer_pkgs {
36   OVERCLOUD_IMAGE=$1
37
38   # get collectd packages and upload to image
39   echo "adding barometer to " $1
40   rm -rf barometer
41   mkdir barometer
42   pushd barometer > /dev/null
43
44   # get version of barometer packages to download
45   wget $GETFLAG $ARTIFACTS_BAROM/latest.properties
46   BAROMETER_VER=$(grep OPNFV_ARTIFACT_VERSION ./latest.properties | cut -d'=' -f2)
47   echo "BAROMETER version = $BAROMETER_VER"
48
49   # get collectd version from HTML
50   wget $GETFLAG $ARTIFACTS_BAROM.html
51   COLLECTD_VER=$(grep "$BAROMETER_VER/collectd-debuginfo" ./barometer.html \
52     | cut -d'-' -f7)
53   SUFFIX=$COLLECTD_VER-$ARCH
54
55   # get intel_rdt version
56   INTEL_RDT_VER=$(grep "$BAROMETER_VER/intel-cmt-cat-devel" ./barometer.html \
57     | cut -d'-' -f9)
58   RDT_SUFFIX=$INTEL_RDT_VER-1.el7.centos.x86_64.rpm
59
60   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/libcollectdclient-$SUFFIX
61   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/libcollectdclient-devel-$SUFFIX
62   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-$SUFFIX
63   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-utils-$SUFFIX
64   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-ovs_events-$SUFFIX
65   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-ovs_stats-$SUFFIX
66   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-virt-$SUFFIX
67   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-$RDT_SUFFIX
68   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-devel-$RDT_SUFFIX
69   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-python-$SUFFIX
70   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-snmp-$SUFFIX
71   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-snmp_agent-$SUFFIX
72   wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-intel_rdt-$SUFFIX
73   curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
74
75   tar cfz collectd.tar.gz *.rpm get-pip.py
76   cp collectd.tar.gz ${BUILD_DIR}
77   popd > /dev/null
78
79   # get collectd-openstack-plugins and tar it
80   rm -rf collectd-openstack-plugins
81   git clone $COLLECTD_OPENSTACK_REPO collectd-openstack-plugins
82   pushd collectd-openstack-plugins
83   git checkout $COLLECTD_OPENSTACK_PLUGINS_BRANCH
84   git archive --format=tar.gz HEAD > ${BUILD_DIR}/collectd-openstack-plugins.tar.gz
85   popd > /dev/null
86
87   # get the barometer puppet module and tar it
88   rm -rf puppet-barometer
89   git clone $PUPPET_BAROMETER_REPO
90   pushd puppet-barometer/ > /dev/null
91   git archive --format=tar.gz HEAD > ${BUILD_DIR}/puppet-barometer.tar.gz
92   popd > /dev/null
93
94   # get mibs for the snmp plugin
95   rm -rf barometer
96   git clone https://gerrit.opnfv.org/gerrit/barometer
97   pushd barometer/mibs > /dev/null
98   git archive --format=tar.gz HEAD > ${BUILD_DIR}/mibs.tar.gz
99   popd > /dev/null
100
101   # Upload tar files to image
102   # untar collectd packages
103   # install dependencies
104   LIBGUESTFS_BACKEND=direct virt-customize \
105     --upload ${BUILD_DIR}/collectd.tar.gz:/opt/ \
106     --upload ${BUILD_DIR}/collectd-openstack-plugins.tar.gz:/opt/ \
107     --upload ${BUILD_DIR}/puppet-barometer.tar.gz:/etc/puppet/modules/ \
108     --run-command 'tar xfz /opt/collectd.tar.gz -C /opt' \
109     --install libstatgrab,log4cplus,rrdtool,rrdtool-devel \
110     --install mcelog,python34,python34-libs,python34-devel \
111     --install libvirt,libvirt-devel,gcc \
112     -a $OVERCLOUD_IMAGE
113
114   LIBGUESTFS_BACKEND=direct virt-customize \
115     --run-command 'python3.4 /opt/get-pip.py' \
116     --run-command 'pip3 install requests libvirt-python pbr babel future six' \
117     -a $OVERCLOUD_IMAGE
118
119   LIBGUESTFS_BACKEND=direct virt-customize \
120     --run-command "yum install -y \
121     /opt/libcollectdclient-${SUFFIX} \
122     /opt/libcollectdclient-devel-${SUFFIX} \
123     /opt/collectd-${SUFFIX} \
124     /opt/collectd-utils-${SUFFIX} \
125     /opt/collectd-python-${SUFFIX} \
126     /opt/collectd-ovs_events-${SUFFIX} \
127     /opt/collectd-ovs_stats-${SUFFIX} \
128     /opt/intel-cmt-cat-${RDT_SUFFIX} \
129     /opt/intel-cmt-cat-devel-${RDT_SUFFIX} \
130     /opt/collectd-intel_rdt-${SUFFIX} \
131     /opt/collectd-snmp-${SUFFIX} \
132     /opt/collectd-snmp_agent-${SUFFIX} \
133     /opt/collectd-virt-${SUFFIX}" \
134     -a $OVERCLOUD_IMAGE
135
136   # install collectd-openstack-plugins
137   # install puppet-barometer module
138   # make directories for config files and mibs
139   LIBGUESTFS_BACKEND=direct virt-customize \
140     --run-command 'mkdir /opt/stack/collectd-openstack' \
141     --run-command "tar xfz /opt/collectd-openstack-plugins.tar.gz -C /opt/stack/collectd-openstack" \
142     --run-command "cd /etc/puppet/modules/ && mkdir barometer && \
143       tar xzf puppet-barometer.tar.gz -C barometer" \
144     --run-command 'mkdir /usr/share/mibs/' \
145     --upload ${BUILD_DIR}/mibs.tar.gz:/usr/share/snmp/mibs/ \
146     --run-command 'tar xfz /usr/share/snmp/mibs/mibs.tar.gz -C /usr/share/snmp/mibs/' \
147     --run-command 'ln -s /usr/share/snmp/mibs/ /usr/share/mibs/ietf' \
148     --run-command 'mkdir -p /etc/collectd/collectd.conf.d' \
149     -a $OVERCLOUD_IMAGE
150 }
151