From bc1c22c6391745759c8e85f5d4070abf259269d8 Mon Sep 17 00:00:00 2001 From: Christian Trautman Date: Fri, 11 Mar 2016 13:48:58 -0500 Subject: Install: Adding RedHat 7.2 Installation bash scripts Adding in prepare_python_env.sh and build_base_machine.sh scripts to appropriate systems folder for installation on Red Hat 7.2. Modified installation.rst to reflect these changes. * Fixed Header to add Red Hat * Added myself as contributor JIRA: VSPERF-214 Change-Id: I23a10316e77c3cec67b7f25176e8707de683af09 Signed-off-by: Christian Trautman Reviewed-by: Al Morton Reviewed-by: Maryam Tahhan --- docs/configguide/installation.rst | 14 ++--- systems/Red/7.2/build_base_machine.sh | 98 +++++++++++++++++++++++++++++++++++ systems/Red/7.2/prepare_python_env.sh | 34 ++++++++++++ 3 files changed, 140 insertions(+), 6 deletions(-) create mode 100755 systems/Red/7.2/build_base_machine.sh create mode 100755 systems/Red/7.2/prepare_python_env.sh diff --git a/docs/configguide/installation.rst b/docs/configguide/installation.rst index b4aaf60b..354979b0 100755 --- a/docs/configguide/installation.rst +++ b/docs/configguide/installation.rst @@ -13,6 +13,7 @@ Supported Operating Systems * Fedora 20 * Fedora 21 * Fedora 22 +* RedHat 7.2 * Ubuntu 14.04 Supported vSwitches @@ -77,10 +78,11 @@ automatically. Script **build_base_machine.sh** will install all the vsperf dependencies in terms of system packages, Python 3.x and required Python modules. In case of CentOS 7 it will install Python 3.3 from an additional repository -provided by Software Collections (`a link`_). Installation script will also -use `virtualenv`_ to create a vsperf virtual environment, which is isolated -from the default Python environment. This environment will reside -in a directory called **vsperfenv** in $HOME. +provided by Software Collections (`a link`_). In case of RedHat 7 it will +install Python 3.4 as an alternate installation in /usr/local/bin. Installation +script will also use `virtualenv`_ to create a vsperf virtual environment, +which is isolated from the default Python environment. This environment will +reside in a directory called **vsperfenv** in $HOME. You will need to activate the virtual environment every time you start a new shell session. Its activation is specific to your OS: @@ -94,8 +96,8 @@ CentOS 7 $ cd $HOME/vsperfenv $ source bin/activate -Fedora and Ubuntu -================= +Fedora, RedHat and Ubuntu +========================= .. code:: bash diff --git a/systems/Red/7.2/build_base_machine.sh b/systems/Red/7.2/build_base_machine.sh new file mode 100755 index 00000000..a038f7b3 --- /dev/null +++ b/systems/Red/7.2/build_base_machine.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# +# Build a base machine for RHEL 7.2 +# +# Copyright 2016 OPNFV, Intel Corporation & Red Hat Inc. +# +# 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. +# +# Contributors: +# Aihua Li, Huawei Technologies. +# Martin Klozik, Intel Corporation. +# Abdul Halim, Intel Corporation. +# Christian Trautman, Red Hat Inc. + +# Make and Compilers +pkglist=(\ + automake\ + fuse-devel\ + gcc\ + gcc-c++\ + glib2-devel\ + glibc.i686\ + kernel-devel\ + openssl-devel\ + pixman-devel\ + sysstat\ +) + +# Tools +pkglist=( + "${pkglist[@]}"\ + git\ + libtool\ + libpcap-devel\ + libnet\ + net-tools\ + openssl\ + openssl-devel\ + pciutils\ + socat\ + tk-devel\ + wget\ +) + +# python tools for proper QEMU, DPDK, and OVS make +pkglist=( + "${pkglist[@]}"\ + python-six\ +) + +# Iterate installing each package. If packages fail to install, record those +# packages and exit with an error message on completion. Customer may need to +# add repo locations and subscription levels. +failedinstall=() +for pkg in ${pkglist[*]}; do + echo "Installing ${pkg}" + yum -y install ${pkg} || failedinstall=("${failedinstall[*]}" "$pkg") +done + +if [ "${#failedinstall[*]}" -gt 0 ]; then + echo "The following packages failed to install. Please add appropriate repo\ + locations and/or subscription levels. Then run the build script again." + for fail in ${failedinstall[*]}; do + echo $fail + done + exit 1 +fi + +# python34 is not yet available to Red Hat customers so we will just build +# it as an alternate install in usr/local for use with VSPerf. This prevents +# any functionality issues with pre-installed packages using python. +wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tar.xz +tar -xf Python-3.4.2.tar.xz +cd Python-3.4.2 +./configure +make +make altinstall +cd .. + +# cleanup +rm -Rf Python-3.4.2 +rm -f Python-3.4.2.tar.xz + +# need virtualenv +pip3.4 install virtualenv + +# Create hugepage dirs +mkdir -p /dev/hugepages \ No newline at end of file diff --git a/systems/Red/7.2/prepare_python_env.sh b/systems/Red/7.2/prepare_python_env.sh new file mode 100755 index 00000000..1d51380a --- /dev/null +++ b/systems/Red/7.2/prepare_python_env.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Prepare Python environment for vsperf execution on Red Hat 7.2 systems. +# +# Copyright 2016 OPNFV, Intel Corporation, Red Hat Inc. +# +# 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. + +if [ -d "$VSPERFENV_DIR" ] ; then + echo "Directory $VSPERFENV_DIR already exists. Skipping python virtualenv \ +creation." + exit +fi + +# enable virtual environment in a subshell, so QEMU build can use python 2.7 +# Also make sure we know which virtualenv was installed. I've seen the file +# name change pending on what type of installation was done. +virtualenv_file=$(ls /usr/local/bin | awk '/virtualenv/') + +($virtualenv_file "$VSPERFENV_DIR" +source "$VSPERFENV_DIR"/bin/activate +pip3.4 install -r ../requirements.txt +pip3.4 install pylint +) \ No newline at end of file -- cgit 1.2.3-korg