diff options
-rw-r--r-- | docs/to-be-reorganized/installation.rst | 55 | ||||
-rwxr-xr-x | systems/CentOS/build_base_machine.sh | 64 | ||||
-rwxr-xr-x | systems/CentOS/prepare_python_env.sh | 29 | ||||
-rw-r--r-- | systems/README | 3 | ||||
-rwxr-xr-x | systems/build_base_machine.sh | 49 |
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 |