From 26013163411b419fcf60866d61a028c62737e282 Mon Sep 17 00:00:00 2001 From: Guo Ruijing Date: Sun, 26 Nov 2017 13:31:05 -0500 Subject: [PATCH] build vagrant/libvirt box 1. build box based on chef/bento 2. move setup_vagrant to src/vagrant Change-Id: I69dffac9e16435b20975a4c73a2ac37543a8edf5 Signed-off-by: Guo Ruijing --- ci/setup_ci.sh | 11 +++++++++ src/vagrant/README.md | 23 ------------------- {ci => src/vagrant}/setup_vagrant.sh | 43 +++++++++++++++++++++++++----------- {ci => src/vagrant}/update.sh | 0 4 files changed, 41 insertions(+), 36 deletions(-) create mode 100755 ci/setup_ci.sh delete mode 100644 src/vagrant/README.md rename {ci => src/vagrant}/setup_vagrant.sh (70%) rename {ci => src/vagrant}/update.sh (100%) diff --git a/ci/setup_ci.sh b/ci/setup_ci.sh new file mode 100755 index 0000000..f2e352f --- /dev/null +++ b/ci/setup_ci.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +echo "Please run it by jenkins account!" +cat << EOF | sudo tee /etc/sudoers.d/${USER} +${USER} ALL = (root) NOPASSWD:ALL +EOF +sudo apt-get update > /dev/null +sudo apt install -y qemu-kvm libvirt-bin 2>1 /dev/null +echo "Plsease reboot/logout to make effective for libvirt group adding" diff --git a/src/vagrant/README.md b/src/vagrant/README.md deleted file mode 100644 index ed5f6c6..0000000 --- a/src/vagrant/README.md +++ /dev/null @@ -1,23 +0,0 @@ -Vagrant -======= - -vagrant is to create kubernetes cluster using kubeadm. -kubernetes installation by kubeadm can be refered to -https://kubernetes.io/docs/getting-started-guides/kubeadm - -Vagrant Setup -------------- - -sudo apt-get install -y virtualbox -wget --no-check-certificate https://releases.hashicorp.com/vagrant/1.8.6/vagrant_1.8.6_x86_64.deb -sudo dpkg -i vagrant_1.8.6_x86_64.deb - -K8s Setup ---------- - -vagrant up - -K8s Cleanup ------------ - -vagrant destroy -f diff --git a/ci/setup_vagrant.sh b/src/vagrant/setup_vagrant.sh similarity index 70% rename from ci/setup_vagrant.sh rename to src/vagrant/setup_vagrant.sh index 1a09ffb..a2ac72f 100755 --- a/ci/setup_vagrant.sh +++ b/src/vagrant/setup_vagrant.sh @@ -2,23 +2,36 @@ set -ex +DIR="$(dirname `readlink -f $0`)" + install_packages() { cat << EOF | sudo tee /etc/sudoers.d/${USER} ${USER} ALL = (root) NOPASSWD:ALL EOF sudo apt-get update -y - sudo apt-get install -y openssh-server git virtualbox unzip + sudo apt-get install -y git unzip wget https://releases.hashicorp.com/vagrant/1.8.7/vagrant_1.8.7_x86_64.deb sudo dpkg -i vagrant_1.8.7_x86_64.deb rm -rf vagrant_1.8.7_x86_64.deb + + sudo apt-get install -y virtualbox + + #refer to https://github.com/vagrant-libvirt/vagrant-libvirt + #sudo apt-get build-dep vagrant ruby-libvirt -y + sudo apt-get install -y bridge-utils qemu libvirt-bin ebtables dnsmasq + sudo apt-get install -y libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev + vagrant plugin install vagrant-libvirt + sudo adduser ${USER} libvirtd + sudo service libvirtd restart } -build_box() { - rm -rf ~/'VirtualBox VMs'/ubuntu-16.04-amd64 - rm -rf bento +install_box_builder() +{ # Thanks Bento's great effort # Bento project(https://github.com/chef/bento) is released by Apache 2.0 License + cd $DIR + rm -rf bento git clone https://github.com/chef/bento cd bento; git checkout 05d98910d835b503e7be3d2e4071956f66fbbbc4 cp ../update.sh ubuntu/scripts/ @@ -26,20 +39,24 @@ build_box() { unzip packer_1.1.2_linux_amd64.zip cd ubuntu sed -i 's/"disk_size": "40960"/"disk_size": "409600"/' ubuntu-16.04-amd64.json +} + +build_virtualbox() { + cd $DIR/bento/ubuntu + rm -rf ~/'VirtualBox VMs'/ubuntu-16.04-amd64 ../packer build -var 'headless=true' -only=virtualbox-iso ubuntu-16.04-amd64.json vagrant box remove -f opnfv/container4nfv --all || true vagrant box add opnfv/container4nfv ../builds/ubuntu-16.04.virtualbox.box } -install_vagrant_libvirt() { - #refer to https://github.com/vagrant-libvirt/vagrant-libvirt - #sudo apt-get build-dep vagrant ruby-libvirt -y - sudo apt-get install -y qemu libvirt-bin ebtables dnsmasq - sudo apt-get install -y libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev - vagrant plugin install vagrant-libvirt - sudo adduser ${USER} libvirtd - sudo service libvirtd restart +build_kvmbox() { + cd $DIR/bento/ubuntu + ../packer build -var 'headless=true' -only=qemu ubuntu-16.04-amd64.json + vagrant box remove -f opnfv/container4nfv.kvm --all || true + vagrant box add opnfv/container4nfv.kvm ../builds/ubuntu-16.04.libvirt.box } install_packages -build_box +install_box_builder +build_virtualbox +build_kvmbox diff --git a/ci/update.sh b/src/vagrant/update.sh similarity index 100% rename from ci/update.sh rename to src/vagrant/update.sh -- 2.16.6