4 set -o nounset #Do not allow for unset variables
5 #set -e #Exit script if a command fails
10 EL_VERSION=$(grep -oP '\d+\.\d+.\d+' /etc/centos-release)
12 APT="sudo yum update -y centos-release"
13 $APT || (echo "Failed to update centos release info" && exit 1)
15 APT="sudo yum install -y --enablerepo=C${EL_VERSION}-base --enablerepo=C${EL_VERSION}-updates kernel-devel-${K_VERSION} kernel-debug-devel-${K_VERSION} kernel-headers-${K_VERSION}"
16 $APT || (echo "Failed to install kernel devel packages" && exit 1)
18 APT="sudo yum install -y git python-devel vim autoconf automake libtool systemd-units rpm-build openssl openssl-devel groff graphviz selinux-policy-devel python python-twisted-core python-zope-interface python-twisted-web PyQt4 python-six desktop-file-utils procps-ng wget"
19 $APT || (echo "Failed to install ovs requirement packages" && exit 1)
22 [ -e configure-ovs.sh ] || \
23 wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/configure-ovs.sh
24 chmod a+x configure-ovs.sh
25 [ -e supervisord.conf ] || \
26 wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/supervisord.conf
28 [ -e supervisor-stdout/supervisor-stdout-0.1.1.tar.gz ] || \
29 wget https://pypi.python.org/packages/source/s/supervisor-stdout/supervisor-stdout-0.1.1.tar.gz --no-check-certificate
31 [ -e ovs_nsh_patches ] || \
32 git clone https://github.com/yyang13/ovs_nsh_patches.git
34 git clone https://github.com/openvswitch/ovs.git
37 git config user.email "yi.y.yang@intel.com"
38 git config user.name "Yi Yang"
39 git checkout -b v2.6.1 v2.6.1
40 git am ../ovs_nsh_patches/v2.6.1/*.patch
44 ./configure --with-linux=/lib/modules/${K_VERSION}/build --prefix=/usr/local
45 make rpm-fedora RPMBUILD_OPT="--without check --without libcapng"
46 make DESTDIR=$WORK_DIR/ovs_install/openvswitch_2.6.1 install
48 #copy rpms and installation
49 mkdir -p $WORK_DIR/ovs_package
50 find . -name "*.rpm"|xargs -I[] cp [] $WORK_DIR/ovs_package
51 tar cvzf $WORK_DIR/ovs_package/openvswitch_2.6.1.tgz -C $WORK_DIR/ovs_install .
54 cd $WORK_DIR/ovs_package
55 CMD='sudo yum list installed openvswitch'
57 echo "openvswitch already installed"
59 sudo yum --nogpgcheck -y install `find . -regex "\./openvswitch-[0-9,.,-].*"`
63 sudo /sbin/service openvswitch start
65 #prepare libraries for docker image in busybox
67 cp /usr/lib64/libcrypto.so.10 .
68 cp /usr/lib64/libssl.so.10 .
69 cp /usr/lib64/libgssapi_krb5.so.2 .
70 cp /usr/lib64/libkrb5.so.3 .
71 cp /usr/lib64/libcom_err.so.2 .
72 cp /usr/lib64/libk5crypto.so.3 .
73 cp /usr/lib64/libkrb5support.so.0 .
74 cp /usr/lib64/libkeyutils.so.1 .
75 cp /usr/lib64/libselinux.so.1 .
76 cp /usr/lib64/libpcre.so.1 .
77 cp /usr/lib64/liblzma.so.5 .
82 if [ -z `sudo docker images | awk '/^ovs-docker / {print $1}'` ];
84 sudo docker build -t ovs-docker .