summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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