systems directory scripts for Centos7 37/2737/4
authorMartin Klozik <martinx.klozik@intel.com>
Wed, 21 Oct 2015 12:56:38 +0000 (13:56 +0100)
committerMaryam Tahhan <maryam.tahhan@intel.com>
Fri, 23 Oct 2015 13:58:15 +0000 (13:58 +0000)
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>
docs/to-be-reorganized/installation.rst
systems/CentOS/build_base_machine.sh
systems/CentOS/prepare_python_env.sh [new file with mode: 0755]
systems/README
systems/build_base_machine.sh

index 90de7a0..272993e 100644 (file)
@@ -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:
index d08a80b..8339dd2 100755 (executable)
 #
 # 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 (executable)
index 0000000..5777448
--- /dev/null
@@ -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
+"
index e949860..1496710 100644 (file)
@@ -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
index 82cf476..2b09f91 100755 (executable)
 #
 # 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