aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Trautman <ctrautma@redhat.com>2018-09-04 01:58:50 -0400
committerChristian Trautman <ctrautma@redhat.com>2018-09-04 01:58:50 -0400
commit190afc581ba32fec62473572af0654867efb9aa0 (patch)
tree24b92c68fcb41aaccebcf128b833daf234e7f5c0
parent01724ca5eb6198cd0d9bf804e1c7972b2b1edf09 (diff)
RHEL_75_INSTALL: Add install build script for RHEL 7.5 version
Adds build scripts that prevent compiling of incompatible packages due to kernel. Those packages can be installed from channel subscripts or binaries can be built from upstream sources. JIRA: VSPERF-589 Change-Id: I92821c64e43fb2e80b9c2978c0870a2c1d84409f Signed-off-by: Christian Trautman <ctrautma@redhat.com>
-rw-r--r--docs/testing/user/configguide/installation.rst6
-rwxr-xr-xsystems/rhel/7.5/build_base_machine.sh111
-rwxr-xr-xsystems/rhel/7.5/prepare_python_env.sh28
3 files changed, 145 insertions, 0 deletions
diff --git a/docs/testing/user/configguide/installation.rst b/docs/testing/user/configguide/installation.rst
index 51588007..fcf5b05d 100644
--- a/docs/testing/user/configguide/installation.rst
+++ b/docs/testing/user/configguide/installation.rst
@@ -53,6 +53,7 @@ Supported Operating Systems
* SLES 15
* RedHat 7.2 Enterprise Linux
* RedHat 7.3 Enterprise Linux
+* RedHat 7.5 Enterprise Linux
* Ubuntu 14.04
* Ubuntu 16.04
* Ubuntu 16.10 (kernel 4.8 requires DPDK 16.11 and newer)
@@ -176,6 +177,11 @@ built from upstream source due to kernel incompatibilities. Please see the
instructions in the vswitchperf_design document for details on configuring
OVS Vanilla for binary package usage.
+**NOTE:** For RHEL 7.5 Enterprise DPDK and Openvswitch are not built from
+upstream sources due to kernel incompatibilities. Please use subscription
+channels to obtain binary equivalents of openvswitch and dpdk packages or
+build binaries using instructions from openvswitch.org and dpdk.org.
+
.. _vpp-installation:
VPP installation
diff --git a/systems/rhel/7.5/build_base_machine.sh b/systems/rhel/7.5/build_base_machine.sh
new file mode 100755
index 00000000..2073a38c
--- /dev/null
+++ b/systems/rhel/7.5/build_base_machine.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Build a base machine for RHEL 7.3
+#
+# 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\
+ 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\
+ numactl\
+ numactl-devel\
+ libpng-devel\
+ sshpass\
+)
+
+# python tools for proper QEMU, DPDK, and OVS make
+pkglist=(
+ "${pkglist[@]}"\
+ python-six\
+)
+
+# install RHEL compatible epel for sshpass
+yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+
+# 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
+
+# install SCL for python34 by adding a repo to find its location to install it
+cat <<'EOT' >> /etc/yum.repos.d/python34.repo
+[centos-sclo-rh]
+name=CentOS-7 - SCLo rh
+baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/rh/
+gpgcheck=0
+enabled=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
+EOT
+
+# install python34 packages and git-review tool
+yum -y install $(echo "
+rh-python34
+rh-python34-python-tkinter
+" | grep -v ^#)
+
+# cleanup python 34 repo file
+rm -f /etc/yum.repos.d/python34.repo
+
+# Create hugepage dirs
+mkdir -p /dev/hugepages
+
+# prevent upstream from building from source due to kernel incompatibilities
+sed -i s/'SUBBUILDS = src_vanilla'/'#SUBBUILDS = src_vanilla'/ ../src/Makefile
+sed -i s/'SUBDIRS += dpdk'/'#SUBDIRS += dpdk'/ ../src/Makefile
+sed -i s/'SUBDIRS += ovs'/'#SUBDIRS += ovs'/ ../src/Makefile
diff --git a/systems/rhel/7.5/prepare_python_env.sh b/systems/rhel/7.5/prepare_python_env.sh
new file mode 100755
index 00000000..047d6961
--- /dev/null
+++ b/systems/rhel/7.5/prepare_python_env.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# Prepare Python environment for vsperf execution on RHEL 7.3 systems.
+#
+# Copyright 2016-2017 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
+
+scl enable rh-python34 "
+virtualenv "$VSPERFENV_DIR" --python /opt/rh/rh-python34/root/usr/bin/python3
+source "$VSPERFENV_DIR"/bin/activate
+pip install -r ../requirements.txt
+"