summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2015-10-21 13:56:38 +0100
committerMaryam Tahhan <maryam.tahhan@intel.com>2015-10-23 13:58:15 +0000
commitf1227a6fc81552c59fa56fe63db872871982adcc (patch)
treeb7749620fa89407375fdbc57fad5d73df4eab6e9
parent52eacb37b9e6d11174c23bd053f7ad42b1581dd3 (diff)
systems directory scripts for Centos7
Installation scripts for Centos7 have been updated with new packages. Script will install also python3 packages and create python virtual environment. As a last step DPDK, OVS and QEMU will be compiled. So after script execution VSPERF should be ready for use. It is recommended to execute installation script from user account with password less sudo access. Otherwise python environment must be copied over from root home directory. After VSPERF generic Makefile will be created by VSPERF-114, it can be enhanced to call build script too. Change-Id: I6ff5d2660af29cf8be134a4cae3b1d7b559892fa JIRA: VSPERF-93 Signed-off-by: Martin Klozik <martinx.klozik@intel.com> Signed-off-by: Abdul Halim <abdul.halim@intel.com> Reviewed-by: Billy O Mahony <billy.o.mahony@intel.com> Reviewed-by: Brian Castelli <brian.castelli@spirent.com>
-rw-r--r--docs/to-be-reorganized/installation.rst55
-rwxr-xr-xsystems/CentOS/build_base_machine.sh64
-rwxr-xr-xsystems/CentOS/prepare_python_env.sh29
-rw-r--r--systems/README3
-rwxr-xr-xsystems/build_base_machine.sh49
5 files changed, 132 insertions, 68 deletions
diff --git a/docs/to-be-reorganized/installation.rst b/docs/to-be-reorganized/installation.rst
index 90de7a0a..272993ef 100644
--- a/docs/to-be-reorganized/installation.rst
+++ b/docs/to-be-reorganized/installation.rst
@@ -8,55 +8,18 @@ Collections (see
https://www.softwarecollections.org/en/scls/rhscl/python33) should be
enabled.
-Install the requirements as specified below.
+Installation of required packages and preparation of Python 3 virtual
+environment is performed by systems/build_base_machine.sh. It should be
+executed under user account, which will be used for vsperf execution.
+Password less sudo access must be configured for given user account
+before script is executed.
-Enable Software Collections (SCL)
----------------------------------
+Execution of installation script:
- .. code-block:: console
-
- yum -y install scl-utils
- yum -y install https://www.softwarecollections.org/en/scls/rhscl/python33/epel-7-x86_64/download/rhscl-python33-epel-7-x86_64.noarch.rpm
-
-(Optional) Enable Repoforge (for stress)
-----------------------------------------
-Allows optional installation of stress tool, which is required by load tests.
-
- .. code-block:: console
-
- yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
-
-System packages
------------------
-There are a number of packages that must be installed using `yum`. These can be installed like so:
-
- .. code-block:: console
-
- yum -y --exclude=python33-mod_wsgi* install python33-* pciutils
-
-Optional installation of stress tool
-
- .. code-block:: console
-
- yum -y install stress
-
-Python 3 Packages
------------------
-
-To avoid file permission errors and Python version issues, use
-virtualenv to create an isolated environment with Python3. The required
-Python 3 packages can be found in the ``requirements.txt`` file in the
-root of the test suite. They can be installed in your virtual
-environment like so:
-
- .. code-block:: bash
+.. code:: bash
- scl enable python33 bash
- # Create virtual environment
- virtualenv vsperfenv
- cd vsperfenv
- source bin/activate
- pip install -r requirements.txt
+ cd systems
+ ./build_base_machine.sh
You need to activate the virtual environment every time you start a new
shell session. To activate, simple run:
diff --git a/systems/CentOS/build_base_machine.sh b/systems/CentOS/build_base_machine.sh
index d08a80bd..8339dd2d 100755
--- a/systems/CentOS/build_base_machine.sh
+++ b/systems/CentOS/build_base_machine.sh
@@ -18,31 +18,61 @@
#
# Contributors:
# Aihua Li, Huawei Technologies.
+# Martin Klozik, Intel Corporation.
# Synchronize package index files
yum -y update
-# this sould be installed if running from parent
-yum -y install redhat-lsb
+# Install required packages
+yum -y install $(echo "
-# Make and Compilers
-yum -y install make
-yum -y install automake
-yum -y install gcc
-yum -y install libxml2
+# Make, Compilers and devel
+make
+gcc
+gcc-c++
+libxml2
+glibc.i686
+kernel-devel
# tools
-yum -y install curl
-yum -y install autoconf libtool
+wget
+git
+scl-utils
+vim
+curl
+autoconf
+libtool
+automake
+pciutils
+cifs-utils
+sysstat
-yum -y install libpcap-devel
-yum -y install libnet
+# libs
+libpcap-devel
+libnet
+fuse
+fuse-libs
+fuse-devel
+zlib
+zlib-devel
+glib2-devel
+pixman-devel
+socat
# install gvim
-yum -y install vim-X11
+vim-X11
-# install git-review tool, it is not as intuitive as expected
-yum -y install epel-release
-wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
-rpm -Uvh epel-release-7*.rpm
-yum -y install git-review
+# install epel release required for git-review
+epel-release
+" | grep -v ^#)
+
+# install SCL for python33
+wget https://www.softwarecollections.org/en/scls/rhscl/python33/epel-7-x86_64/download/rhscl-python33-epel-7-x86_64.noarch.rpm
+rpm -i rhscl-python33-epel-7-x86_64.noarch.rpm
+
+# install python33 packages and git-review tool
+yum -y install $(echo "
+python33
+python33-python-tkinter
+git-review
+" | grep -v ^#)
diff --git a/systems/CentOS/prepare_python_env.sh b/systems/CentOS/prepare_python_env.sh
new file mode 100755
index 00000000..5777448b
--- /dev/null
+++ b/systems/CentOS/prepare_python_env.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# Prepare Python 3 environment for vsperf execution
+#
+# Copyright 2015 OPNFV
+#
+# 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
+
+scl enable python33 "
+virtualenv "$VSPERFENV_DIR"
+source "$VSPERFENV_DIR"/bin/activate
+pip install -r ../requirements.txt
+pip install pylint
+"
diff --git a/systems/README b/systems/README
index e9498600..14967107 100644
--- a/systems/README
+++ b/systems/README
@@ -3,6 +3,7 @@ This folder abstract out details among linux distros.
One time setup:
---------------
-On a freshly built system, run the following with a super user privilege
+On a freshly built system, run the following with a super user privilege
+or with password less sudo access.
./build_base_machine.sh
diff --git a/systems/build_base_machine.sh b/systems/build_base_machine.sh
index 82cf4762..2b09f910 100755
--- a/systems/build_base_machine.sh
+++ b/systems/build_base_machine.sh
@@ -20,6 +20,13 @@
#
# Contributors:
# Aihua Li, Huawei Technologies.
+# Abdul Halim, Intel Corporation.
+# Martin Klozik, Intel Corporation.
+
+ROOT_UID=0
+SUDO=""
+
+export VSPERFENV_DIR="$HOME/vsperfenv"
# function to emit error message before quitting
function die() {
@@ -28,12 +35,46 @@ function die() {
}
# determine this machine's distro-version
+# replacing 'lsb_release' tool to detect OS distro name with using systemd distribution release file /etc/os-release
+# 'lsb_release' is not available by default on Fedora.
-distro=`lsb_release -i | cut -f 2`
-distro_dir=$distro
+. /etc/os-release
+
+# check if root
+if [ "$UID" -ne "$ROOT_UID" ]
+then
+ # installation must be run via sudo
+ SUDO="sudo -E"
+fi
+
+# Get distro name from variables imported; Special case for 'Fedora 22' - we need to get versions as well
+if [ "$NAME" == 'Fedora' -a $VERSION_ID -gt 21 ]
+then
+ distro_dir="$NAME$VERSION_ID"
+else
+ distro_dir=`echo "$NAME" | cut -d ' ' -f1`
+fi
+# build base system
if [ -d "$distro_dir" ] && [ -e $distro_dir/build_base_machine.sh ]; then
- $distro_dir/build_base_machine.sh
+ $SUDO $distro_dir/build_base_machine.sh
else
- die "$distro_dir is not yet supported"
+ die "$distro_dir is not yet supported"
+fi
+
+if [ -d "$distro_dir" ] && [ -e $distro_dir/prepare_python_env.sh ] ; then
+ $distro_dir/prepare_python_env.sh
+else
+ die "$distro_dir is not yet supported"
+fi
+
+if [ ! -d /lib/modules/`uname -r`/build ] ; then
+ die "Kernel devel is not available for active kernel. It can be caused by recent kernel update. Please reboot and run $0 again."
+fi
+
+# download and compile DPDK, OVS and QEMU
+if [ -f ../src/Makefile ] ; then
+ cd ../src
+ make
+ cd -
fi