summaryrefslogtreecommitdiffstats
path: root/nfvbenchvm/dib/elements/nfvbenchvm/post-install.d
diff options
context:
space:
mode:
authorYichen Wang <yicwang@cisco.com>2017-08-04 17:06:18 -0700
committerYichen Wang <yicwang@cisco.com>2017-08-04 17:07:25 -0700
commit0036098e46e16c9ae5b795b108a5b9566c02906b (patch)
tree005463f0fa4f7a37dead0fa0c0f35c212a551ae7 /nfvbenchvm/dib/elements/nfvbenchvm/post-install.d
parentba423e2c7f322871507835341d8265074d747781 (diff)
Add the scipts to build NFVbench VM
Change-Id: I9632333777260468d6f07cf0149c789626f20145 Signed-off-by: Yichen Wang <yicwang@cisco.com>
Diffstat (limited to 'nfvbenchvm/dib/elements/nfvbenchvm/post-install.d')
-rwxr-xr-xnfvbenchvm/dib/elements/nfvbenchvm/post-install.d/01-update-kernel14
-rwxr-xr-xnfvbenchvm/dib/elements/nfvbenchvm/post-install.d/02-testpmd-script25
-rwxr-xr-xnfvbenchvm/dib/elements/nfvbenchvm/post-install.d/03-add-execute-attribute4
-rwxr-xr-xnfvbenchvm/dib/elements/nfvbenchvm/post-install.d/50-pip-package8
-rwxr-xr-xnfvbenchvm/dib/elements/nfvbenchvm/post-install.d/51-cloudcfg-edit33
-rwxr-xr-xnfvbenchvm/dib/elements/nfvbenchvm/post-install.d/99-cleanup3
6 files changed, 87 insertions, 0 deletions
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