From 0036098e46e16c9ae5b795b108a5b9566c02906b Mon Sep 17 00:00:00 2001 From: Yichen Wang Date: Fri, 4 Aug 2017 17:06:18 -0700 Subject: Add the scipts to build NFVbench VM Change-Id: I9632333777260468d6f07cf0149c789626f20145 Signed-off-by: Yichen Wang --- .../nfvbenchvm/post-install.d/01-update-kernel | 14 +++++++++ .../nfvbenchvm/post-install.d/02-testpmd-script | 25 ++++++++++++++++ .../post-install.d/03-add-execute-attribute | 4 +++ .../nfvbenchvm/post-install.d/50-pip-package | 8 ++++++ .../nfvbenchvm/post-install.d/51-cloudcfg-edit | 33 ++++++++++++++++++++++ .../elements/nfvbenchvm/post-install.d/99-cleanup | 3 ++ 6 files changed, 87 insertions(+) create mode 100755 nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/01-update-kernel create mode 100755 nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/02-testpmd-script create mode 100755 nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/03-add-execute-attribute create mode 100755 nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/50-pip-package create mode 100755 nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/51-cloudcfg-edit create mode 100755 nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/99-cleanup (limited to 'nfvbenchvm/dib/elements/nfvbenchvm/post-install.d') diff --git a/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/01-update-kernel b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/01-update-kernel new file mode 100755 index 0000000..d884f79 --- /dev/null +++ b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/01-update-kernel @@ -0,0 +1,14 @@ +#!/bin/bash + +if [ $DIB_USE_ELREPO_KERNEL != "True" ]; then + exit 0 +fi + +# Installing the latest kernel from ELRepo +rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org +rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm +yum remove -y kernel-firmware kernel-headers kernel-devel +yum install -y --enablerepo=elrepo-kernel kernel-ml kernel-ml-headers kernel-ml-devel + +# gcc will be removed with old kernel as dependency, so reinstalling it back +yum install -y gcc diff --git a/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/02-testpmd-script b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/02-testpmd-script new file mode 100755 index 0000000..b1cffc5 --- /dev/null +++ b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/02-testpmd-script @@ -0,0 +1,25 @@ +#!/bin/bash + +DPDK=dpdk-17.05 +DPDK_UNTAR=dpdk-17.05 + +# pick up the kernel version for the target image +kernel_version=`ls -t /lib/modules | awk 'NR==1 {print}'` + +mkdir dpdk +wget http://fast.dpdk.org/rel/$DPDK.tar.xz +tar xfJ $DPDK.tar.xz +cd $DPDK_UNTAR + +export RTE_KERNELDIR=/lib/modules/$kernel_version/build +export ARCH=x86 +make -j4 install T=x86_64-native-linuxapp-gcc + +cp usertools/dpdk-devbind.py ../dpdk +# cp tools/dpdk_nic_bind.py ../dpdk/dpdk-devbind.py +cp x86_64-native-linuxapp-gcc/app/testpmd ../dpdk +cp x86_64-native-linuxapp-gcc/kmod/igb_uio.ko ../dpdk + +cd .. +rm -f $DPDK.tar.xz +rm -rf $DPDK_UNTAR diff --git a/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/03-add-execute-attribute b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/03-add-execute-attribute new file mode 100755 index 0000000..a13ab95 --- /dev/null +++ b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/03-add-execute-attribute @@ -0,0 +1,4 @@ +#!/bin/bash + +chmod +x /etc/rc.d/rc.local +chmod +x /etc/sysconfig/network-scripts/ifcfg-eth0 diff --git a/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/50-pip-package b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/50-pip-package new file mode 100755 index 0000000..2d74ff5 --- /dev/null +++ b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/50-pip-package @@ -0,0 +1,8 @@ +#!/bin/bash + +cd /tmp +wget https://bootstrap.pypa.io/get-pip.py +python get-pip.py + +pip install setuptools wheel +pip install pyyaml diff --git a/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/51-cloudcfg-edit b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/51-cloudcfg-edit new file mode 100755 index 0000000..3e4647a --- /dev/null +++ b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/51-cloudcfg-edit @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +import yaml +cloudcfg = "/etc/cloud/cloud.cfg" +user = "cloud-user" + +with open(cloudcfg) as f: + cfg = yaml.load(f) + +try: + if cfg['system_info']['default_user']['name']: + synver = "2" +except KeyError: + synver = "1" + +if synver == "1": + if cfg['user'] == user: + print("No change needed") + exit() + else: + cfg['user'] = user +elif synver == "2": + if cfg['system_info']['default_user']['name'] == user: + print("No change needed") + exit() + else: + # Change the user to cloud-user + cfg['system_info']['default_user']['name'] = user + cfg['system_info']['default_user']['gecos'] = "Cloud User" + print cfg['system_info']['default_user']['name'] + +with open(cloudcfg, "w") as f: + yaml.dump(cfg, f, default_flow_style=False) diff --git a/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/99-cleanup b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/99-cleanup new file mode 100755 index 0000000..83d4fc5 --- /dev/null +++ b/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d/99-cleanup @@ -0,0 +1,3 @@ +#!/bin/bash + +yum erase -y python-devel libyaml-devel kernel-devel kernel-headers kernel-ml-headers kernel-ml-devel gcc -- cgit 1.2.3-korg