diff options
author | Raghavendra Talur <rtalur@redhat.com> | 2016-04-20 15:02:16 +0530 |
---|---|---|
committer | Jeff Darcy <jdarcy@redhat.com> | 2016-04-25 07:28:39 -0700 |
commit | ef3d6fd06cf0712774e721eaf1d0b072f54e0b8a (patch) | |
tree | 802fc16778961c5c2149c496074101769c426ef3 /tests/vagrant | |
parent | 19fd9a371fff4ece2c617f1e7194ffcee039f21e (diff) |
vagrant-test: added more options and centos6 base box
Options added are
1. destroy-now option
Now you can call run-tests-in-vagrant.sh with --destroy-now option to
destroy the VM corresponding to the git branch and delete the
corresponding vagrant dir.
Usage: run-tests-in-vagrant.sh --destroy-now
2. os option
With --os option you can specify the os to be used for VM.
Default is fedora and this patch adds support for centos6.
Usage: run-tests-in-vagrant.sh --os="centos6"
3. destroy-after-test option
When specified the VM is deleted right after the tests are executed. If
the script exited before running tests then the VM is left as is for
further debugging.
4. verbose option
Many log messages which were mainly added for initial debugging have
been removed now. All vagrant and compilation outputs have been redirected to
/dev/null. To enable these logs please use --verbose option.
5. ssh option
--ssh option now allows one to ssh into the VM from topdir of source
code thereby avoiding the hassle of cd'ing into the vagrant dir.
Box added
1. This patch adds a centos6 base box which is currently made available
at atlas.hashicorp.com. Template files for this box are available
under tests/vagrant/vagrant-template-centos6 directory. The default box is
moved under vagrant-template-fedora directory to keep up with the naming
convention.
Enhancements
This patch also modifies the cpu and memory allocation mechanism for
the VMs. All the cpus on the host are used and 1/4 of the memory
available on host is used.
Bug Fixes
1. Fix CFLAGS not passed to configure error
If CFLAGS is assigned and then configure is called under sudo, the cflags
are not passed onto configure.
Change-Id: Iee1811a7d2b77785f6167f4706135a8f584a6bbd
BUG: 1291537
Signed-off-by: Raghavendra Talur <rtalur@redhat.com>
Reviewed-on: http://review.gluster.org/14046
Smoke: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'tests/vagrant')
19 files changed, 202 insertions, 4 deletions
diff --git a/tests/vagrant/vagrant-template-centos6/Vagrantfile b/tests/vagrant/vagrant-template-centos6/Vagrantfile new file mode 100644 index 00000000000..b276f90768d --- /dev/null +++ b/tests/vagrant/vagrant-template-centos6/Vagrantfile @@ -0,0 +1,55 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.define "vagrant-testVM" do |testvm| + testvm.vm.box = "raghavendra-talur/gluster-dev-centos6" + testvm.vm.hostname = "vagrant-testVM" + #testvm.ssh.insert_key = false + testvm.vm.synced_folder ".", "/vagrant", disabled: true + + host = RbConfig::CONFIG['host_os'] + # Give VM 1/4 system memory & access to all cpu cores on the host + if host =~ /darwin/ + cpus = `sysctl -n hw.ncpu`.to_i + # sysctl returns Bytes and we need to convert to MB + mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4 + elsif host =~ /linux/ + cpus = `nproc`.to_i + # meminfo shows KB and we need to convert to MB + mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4 + else # sorry Windows folks, I can't help you + cpus = 2 + mem = 1024 + end + + # Define basic config for VM, memory, cpu, storage pool + testvm.vm.provider "libvirt" do |lv| + lv.storage_pool_name = "default" + lv.memory = mem + lv.cpus = cpus + + + # We need a brick partition, lets have a 5G disk for that. + # If you need more bricks, just add more letters to the + # string below. + "b".split("").each do |i| + lv.storage :file, + #:path => "", + #:allow_existing => "", + :device => "vd#{i}", + :size => "5G", + :type => "qcow2", + :bus => "virtio", + :cache => "default" + end + end + + # Let's provision + testvm.vm.provision "ansible", run: "always" do |setup| + setup.verbose = "v" + setup.playbook = "setup.yml" + end + + end +end diff --git a/tests/vagrant/vagrant-template-centos6/roles/daemon-services/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/daemon-services/tasks/main.yml new file mode 100644 index 00000000000..0e4c83244cc --- /dev/null +++ b/tests/vagrant/vagrant-template-centos6/roles/daemon-services/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- name: stop and disable kernel nfs + service: name=nfs state=stopped enabled=no diff --git a/tests/vagrant/vagrant-template/roles/fix-localhost/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/fix-localhost/tasks/main.yml index 84dd252b65b..84dd252b65b 100644 --- a/tests/vagrant/vagrant-template/roles/fix-localhost/tasks/main.yml +++ b/tests/vagrant/vagrant-template-centos6/roles/fix-localhost/tasks/main.yml diff --git a/tests/vagrant/vagrant-template-centos6/roles/install-pkgs/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/install-pkgs/tasks/main.yml new file mode 100644 index 00000000000..37dbc108d9f --- /dev/null +++ b/tests/vagrant/vagrant-template-centos6/roles/install-pkgs/tasks/main.yml @@ -0,0 +1,91 @@ +--- +- name: install deltarpm + yum: name=deltarpm state=present + +- name: remove samba3 + shell: yum -y remove samba* + +- name: update system + shell: yum -y update + +- name: install epel repo + yum: name=http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm state=present + +- name: install other packages + yum: name={{ item }} state=present + with_items: + - attr + - autoconf + - automake + - bison + #- libcmocka-devel + - dbench + - dos2unix + - e2fsprogs + - findutils + - flex + - fuse-devel + - fuse-libs + - gcc + - gdb + - git + - glib2-devel + #- hostname + - libacl-devel + - libaio-devel + - libattr-devel + - libibverbs-devel + - librdmacm-devel + - libselinux-python + - libsemanage-python + - libtool + - libxml2-devel + - lvm2-devel + - make + #- man-db + - mock + - net-tools + #- nfs-ganesha-gluster + - nfs-utils + - openssh-server + - openssl-devel + - perl-Test-Harness + - pkgconfig + #- procps-ng + - psmisc + - python-devel + - python-eventlet + - python-netifaces + - python-paste-deploy + - python-setuptools + - python-simplejson + - python-sphinx + - python-webob + - pyxattr + - readline-devel + - rpm-build + - screen + - strace + - supervisor + - systemtap-sdt-devel + - sqlite-devel + - samba4* + - userspace-rcu-devel + - vim + - wget + - which + - xfsprogs + - yajl-devel + +- name: install dev help packages, not required by Gluster + yum: name={{ item }} state=present + with_items: + - cgdb + - clang + - lsof + - perf + - sysstat + - systemtap + - systemtap-runtime + - tcpdump + - valgrind diff --git a/tests/vagrant/vagrant-template/roles/iptables/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/iptables/tasks/main.yml index 768cb0e8668..768cb0e8668 100644 --- a/tests/vagrant/vagrant-template/roles/iptables/tasks/main.yml +++ b/tests/vagrant/vagrant-template-centos6/roles/iptables/tasks/main.yml diff --git a/tests/vagrant/vagrant-template/roles/mock-user/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/mock-user/tasks/main.yml index c8e1209937e..c8e1209937e 100644 --- a/tests/vagrant/vagrant-template/roles/mock-user/tasks/main.yml +++ b/tests/vagrant/vagrant-template-centos6/roles/mock-user/tasks/main.yml diff --git a/tests/vagrant/vagrant-template/roles/prepare-brick/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/prepare-brick/tasks/main.yml index 6b3f6b8d3ea..6b3f6b8d3ea 100644 --- a/tests/vagrant/vagrant-template/roles/prepare-brick/tasks/main.yml +++ b/tests/vagrant/vagrant-template-centos6/roles/prepare-brick/tasks/main.yml diff --git a/tests/vagrant/vagrant-template/roles/remove-gluster-pkgs/tasks/main.yml b/tests/vagrant/vagrant-template-centos6/roles/remove-gluster-pkgs/tasks/main.yml index c91efa9ba7c..c91efa9ba7c 100644 --- a/tests/vagrant/vagrant-template/roles/remove-gluster-pkgs/tasks/main.yml +++ b/tests/vagrant/vagrant-template-centos6/roles/remove-gluster-pkgs/tasks/main.yml diff --git a/tests/vagrant/vagrant-template-centos6/setup.yml b/tests/vagrant/vagrant-template-centos6/setup.yml new file mode 100644 index 00000000000..520f1cdb019 --- /dev/null +++ b/tests/vagrant/vagrant-template-centos6/setup.yml @@ -0,0 +1,15 @@ +--- +- hosts: all + sudo: true + roles: + #Installing packages invoke dnf and metadata download takes a long time. + #The box used in Vagrantfile has all the packages installed. + #Refer to main.yml file in install-pkgs role to get list of packages. + #install-pkgs role is hence disabled by default. + #- install-pkgs + - remove-gluster-pkgs + - prepare-brick + - mock-user + - iptables + - fix-localhost + - daemon-services diff --git a/tests/vagrant/vagrant-template/Vagrantfile b/tests/vagrant/vagrant-template-fedora/Vagrantfile index ccbbf60575d..df806c7aaee 100644 --- a/tests/vagrant/vagrant-template/Vagrantfile +++ b/tests/vagrant/vagrant-template-fedora/Vagrantfile @@ -9,12 +9,26 @@ Vagrant.configure("2") do |config| #testvm.ssh.insert_key = false testvm.vm.synced_folder ".", "/vagrant", disabled: true + host = RbConfig::CONFIG['host_os'] + # Give VM 1/4 system memory & access to all cpu cores on the host + if host =~ /darwin/ + cpus = `sysctl -n hw.ncpu`.to_i + # sysctl returns Bytes and we need to convert to MB + mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4 + elsif host =~ /linux/ + cpus = `nproc`.to_i + # meminfo shows KB and we need to convert to MB + mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4 + else # sorry Windows folks, I can't help you + cpus = 2 + mem = 1024 + end # Define basic config for VM, memory, cpu, storage pool testvm.vm.provider "libvirt" do |lv| lv.storage_pool_name = "default" - lv.memory = 1024 - lv.cpus = 1 + lv.memory = mem + lv.cpus = cpus # We need a brick partition, lets have a 5G disk for that. @@ -40,4 +54,3 @@ Vagrant.configure("2") do |config| end end - diff --git a/tests/vagrant/vagrant-template/roles/daemon-services/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/daemon-services/tasks/main.yml index 98d077b1f2e..98d077b1f2e 100644 --- a/tests/vagrant/vagrant-template/roles/daemon-services/tasks/main.yml +++ b/tests/vagrant/vagrant-template-fedora/roles/daemon-services/tasks/main.yml diff --git a/tests/vagrant/vagrant-template-fedora/roles/fix-localhost/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/fix-localhost/tasks/main.yml new file mode 100644 index 00000000000..84dd252b65b --- /dev/null +++ b/tests/vagrant/vagrant-template-fedora/roles/fix-localhost/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: remove IPv6 address for localhost + shell: sed -i '/::1/s/localhost //' /etc/hosts + +- name: add IPv4 address for localhost + shell: sed -i '/127.0.0.1/s/$/ localhost/' /etc/hosts diff --git a/tests/vagrant/vagrant-template/roles/install-pkgs/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/install-pkgs/tasks/main.yml index 4e7d8d0d7b8..4e7d8d0d7b8 100644 --- a/tests/vagrant/vagrant-template/roles/install-pkgs/tasks/main.yml +++ b/tests/vagrant/vagrant-template-fedora/roles/install-pkgs/tasks/main.yml diff --git a/tests/vagrant/vagrant-template-fedora/roles/iptables/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/iptables/tasks/main.yml new file mode 100644 index 00000000000..768cb0e8668 --- /dev/null +++ b/tests/vagrant/vagrant-template-fedora/roles/iptables/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- name: disable iptables, need to add specific rules later + shell: iptables -F diff --git a/tests/vagrant/vagrant-template-fedora/roles/mock-user/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/mock-user/tasks/main.yml new file mode 100644 index 00000000000..c8e1209937e --- /dev/null +++ b/tests/vagrant/vagrant-template-fedora/roles/mock-user/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- name: Add mock user; required for rpm.t + user: name=mock group=mock diff --git a/tests/vagrant/vagrant-template-fedora/roles/prepare-brick/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/prepare-brick/tasks/main.yml new file mode 100644 index 00000000000..6b3f6b8d3ea --- /dev/null +++ b/tests/vagrant/vagrant-template-fedora/roles/prepare-brick/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: Format backend + filesystem: fstype=xfs dev=/dev/vdb + +- name: Add entry to fstab and mount + mount: name=/d src=/dev/vdb fstype=xfs state=mounted diff --git a/tests/vagrant/vagrant-template-fedora/roles/remove-gluster-pkgs/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/remove-gluster-pkgs/tasks/main.yml new file mode 100644 index 00000000000..c91efa9ba7c --- /dev/null +++ b/tests/vagrant/vagrant-template-fedora/roles/remove-gluster-pkgs/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- name: Erase gluster packages, keep dependencies; we will source install + shell: rpm -ev --nodeps `rpm -qa | grep ^gluster` + ignore_errors: True diff --git a/tests/vagrant/vagrant-template/roles/selinux/tasks/main.yml b/tests/vagrant/vagrant-template-fedora/roles/selinux/tasks/main.yml index c9ba9618428..c9ba9618428 100644 --- a/tests/vagrant/vagrant-template/roles/selinux/tasks/main.yml +++ b/tests/vagrant/vagrant-template-fedora/roles/selinux/tasks/main.yml diff --git a/tests/vagrant/vagrant-template/setup.yml b/tests/vagrant/vagrant-template-fedora/setup.yml index a9e798da3f4..fc42a8157f3 100644 --- a/tests/vagrant/vagrant-template/setup.yml +++ b/tests/vagrant/vagrant-template-fedora/setup.yml @@ -14,4 +14,3 @@ - iptables - fix-localhost - daemon-services - |