From 2622e8417a9fca67fb0cac480410cf9c5912725a Mon Sep 17 00:00:00 2001 From: jhinman1 Date: Fri, 14 Jul 2017 20:28:14 -0400 Subject: Adds Barometer service Adds Barometer service as a deploy option to Compute nodes by specifying barometer as true in deploy settings. Barometer packages are installed only for x86_64. Adds scenarios os-nosdn-bar-ha and os-nosdn-bar-noha. Add scenarios to opnfv-apex-common.spec. Temporarily remove references to snmp packages. apex-tripleo-heat-templates: I397d2557639c87ab8afacd076a5b9fd7c056dce7 apex-puppet-tripleo: I878ff8d1e0a8b96f3380bb77f168cd5a4c3f6543 Puppet module is at: https://github.com/johnhinman/puppet-barometer. Change-Id: Ic087c2052f7849ee2cf6c63224558c2b36a8ca1f Signed-off-by: jhinman1 --- build/barometer-install.sh | 129 +++++++++++++++++++++++++++ build/opnfv-environment.yaml | 1 + build/overcloud-full.sh | 7 ++ build/overcloud-opendaylight.sh | 1 - build/rpm_specs/opnfv-apex-common.spec | 4 + config/deploy/os-nosdn-bar-ha.yaml | 9 ++ config/deploy/os-nosdn-bar-noha.yaml | 9 ++ lib/ansible/playbooks/build_dependencies.yml | 2 +- lib/overcloud-deploy-functions.sh | 7 +- lib/python/apex/deploy_settings.py | 3 +- 10 files changed, 168 insertions(+), 4 deletions(-) create mode 100755 build/barometer-install.sh create mode 100644 config/deploy/os-nosdn-bar-ha.yaml create mode 100644 config/deploy/os-nosdn-bar-noha.yaml diff --git a/build/barometer-install.sh b/build/barometer-install.sh new file mode 100755 index 00000000..f4df8539 --- /dev/null +++ b/build/barometer-install.sh @@ -0,0 +1,129 @@ +#!/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-ceilometer-plugin, +# puppet-barometer module. + +# Versions/branches +COLLECTD_CEILOMETER_PLUGIN_BRANCH="stable/ocata" +INTEL_CMT_CAT_VER="1.0.1-1.el7.centos.x86_64.rpm" + +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_CEILOMETER_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 + + 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-$INTEL_CMT_CAT_VER + wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-devel-$INTEL_CMT_CAT_VER + wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-python-$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-ceilometer-plugin and tar it + rm -rf collectd-ceilometer-plugin + git clone https://github.com/openstack/collectd-ceilometer-plugin + pushd collectd-ceilometer-plugin + git checkout -b $COLLECTD_CEILOMETER_PLUGIN_BRANCH + git archive --format=tar.gz HEAD > ${BUILD_DIR}/collectd-ceilometer-plugin.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 + + # 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-ceilometer-plugin.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/collectd-virt-${SUFFIX} \ + /opt/intel-cmt-cat-${INTEL_CMT_CAT_VER} \ + /opt/intel-cmt-cat-devel-${INTEL_CMT_CAT_VER}" \ + -a $OVERCLOUD_IMAGE + + # install collectd-ceilometer plugin + # install puppet-barometer module + # make directory for config files + LIBGUESTFS_BACKEND=direct virt-customize \ + --run-command 'mkdir /opt/collectd-ceilometer' \ + --run-command "tar xfz /opt/collectd-ceilometer-plugin.tar.gz -C /opt/collectd-ceilometer" \ + --run-command "cd /etc/puppet/modules/ && mkdir barometer && \ + tar xzf puppet-barometer.tar.gz -C barometer" \ + --run-command 'mkdir -p /etc/collectd/collectd.conf.d' \ + -a $OVERCLOUD_IMAGE +} + diff --git a/build/opnfv-environment.yaml b/build/opnfv-environment.yaml index 79b9542e..a6bd7378 100644 --- a/build/opnfv-environment.yaml +++ b/build/opnfv-environment.yaml @@ -128,6 +128,7 @@ parameter_defaults: - OS::TripleO::Services::OVNDBs # - OS::TripleO::Services::Vpp ComputeServices: + - OS::TripleO::Services::Barometer - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient - OS::TripleO::Services::CephOSD diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh index cb1b94bc..e8697925 100755 --- a/build/overcloud-full.sh +++ b/build/overcloud-full.sh @@ -10,6 +10,7 @@ set -xe source ./cache.sh source ./variables.sh +source ./barometer-install.sh populate_cache "$rdo_images_uri/overcloud-full.tar" @@ -53,6 +54,7 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --upload ${BUILD_DIR}/apex-os-net-config.tar.gz:/usr/lib/python2.7/site-packages \ --run-command "cd /usr/lib/python2.7/site-packages/ && rm -rf os_net_config && tar xzf apex-os-net-config.tar.gz" \ --run-command "if ! rpm -qa | grep python-redis; then yum install -y python-redis; fi" \ + --install epel-release \ --run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \ --run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \ --run-command "yum install -y etcd" \ @@ -142,5 +144,10 @@ LIBGUESTFS_BACKEND=direct virt-customize \ -a overcloud-full_build.qcow2 fi + # upload and install barometer packages +if [ "$(uname -i)" == 'x86_64' ]; then + barometer_pkgs overcloud-full_build.qcow2 +fi + mv -f overcloud-full_build.qcow2 overcloud-full.qcow2 popd > /dev/null diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh index 12b47f1e..9c8a82eb 100755 --- a/build/overcloud-opendaylight.sh +++ b/build/overcloud-opendaylight.sh @@ -62,7 +62,6 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --upload ${BUILD_DIR}/puppet-opendaylight-carbon.tar.gz:/root/ \ --upload ${BUILD_DIR}/puppet-gluon.tar.gz:/etc/puppet/modules/ \ --run-command "cd /etc/puppet/modules/ && tar xzf puppet-gluon.tar.gz" \ - --install epel-release \ --install python-click \ --upload ${CACHE_DIR}/$gluon_rpm:/root/\ --install /root/$gluon_rpm \ diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec index 97a44779..da2d4a04 100644 --- a/build/rpm_specs/opnfv-apex-common.spec +++ b/build/rpm_specs/opnfv-apex-common.spec @@ -38,6 +38,8 @@ install build/bash_completion_apex %{buildroot}%{_sysconfdir}/bash_completion.d/ mkdir -p %{buildroot}%{_sysconfdir}/opnfv-apex/ install config/deploy/os-nosdn-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml +install config/deploy/os-nosdn-bar-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-bar-noha.yaml +install config/deploy/os-nosdn-bar-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-bar-ha.yaml install config/deploy/os-nosdn-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml install config/deploy/os-nosdn-fdio-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-ha.yaml install config/deploy/os-nosdn-ovs_dpdk-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-ovs_dpdk-noha.yaml @@ -121,6 +123,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %{_var}/opt/opnfv/lib/installer/domain.xml %{_sysconfdir}/bash_completion.d/apex %{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml +%{_sysconfdir}/opnfv-apex/os-nosdn-bar-noha.yaml +%{_sysconfdir}/opnfv-apex/os-nosdn-bar-ha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-fdio-ha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-ovs_dpdk-noha.yaml diff --git a/config/deploy/os-nosdn-bar-ha.yaml b/config/deploy/os-nosdn-bar-ha.yaml new file mode 100644 index 00000000..b59c034c --- /dev/null +++ b/config/deploy/os-nosdn-bar-ha.yaml @@ -0,0 +1,9 @@ +--- +global_params: + ha_enabled: true + +deploy_options: + sdn_controller: false + sfc: false + vpn: false + barometer: true diff --git a/config/deploy/os-nosdn-bar-noha.yaml b/config/deploy/os-nosdn-bar-noha.yaml new file mode 100644 index 00000000..f7de7a16 --- /dev/null +++ b/config/deploy/os-nosdn-bar-noha.yaml @@ -0,0 +1,9 @@ +--- +global_params: + ha_enabled: false + +deploy_options: + sdn_controller: false + sfc: false + vpn: false + barometer: true diff --git a/lib/ansible/playbooks/build_dependencies.yml b/lib/ansible/playbooks/build_dependencies.yml index 620b1b3f..c57474a0 100644 --- a/lib/ansible/playbooks/build_dependencies.yml +++ b/lib/ansible/playbooks/build_dependencies.yml @@ -8,7 +8,7 @@ yum: name: python34,python34-devel,python34-jinja2, python34-markupsafe, python2-virtualbmc, - libguestfs-tools,bsdtar,libvirt, + libguestfs-tools,bsdtar,libvirt,yum-utils, python2-oslo-config,python2-debtcollector, make, python-pip, python-virtualenv, python34-pip - name: Install Virtualization group diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index d2ae027a..e8f19238 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -94,7 +94,12 @@ function overcloud_deploy { DEPLOY_OPTIONS+=" -e /home/stack/enable_rt_kvm.yaml" fi - # Make sure the correct overcloud image is available + # Enable Barometer service + if [ "${deploy_options_array['barometer']}" == 'True' ]; then + DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/enable_barometer.yaml" + fi + +# Make sure the correct overcloud image is available if [ ! -f $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then echo "${red} $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment." echo "Please install the opnfv-apex package to provide this overcloud image for deployment.${reset}" diff --git a/lib/python/apex/deploy_settings.py b/lib/python/apex/deploy_settings.py index 1025fcea..06185941 100644 --- a/lib/python/apex/deploy_settings.py +++ b/lib/python/apex/deploy_settings.py @@ -31,7 +31,8 @@ OPT_DEPLOY_SETTINGS = ['performance', 'yardstick', 'dovetail', 'odl_vpp_routing_node', - 'odl_vpp_netvirt'] + 'odl_vpp_netvirt', + 'barometer'] VALID_ROLES = ['Controller', 'Compute', 'ObjectStorage'] VALID_PERF_OPTS = ['kernel', 'nova', 'vpp', 'ovs'] -- cgit 1.2.3-korg