Testing Testing one two, one two! Setting up an automated testing - - PowerPoint PPT Presentation

testing testing one two one two
SMART_READER_LITE
LIVE PREVIEW

Testing Testing one two, one two! Setting up an automated testing - - PowerPoint PPT Presentation

Testing Testing one two, one two! Setting up an automated testing environment for Samba on Gluster Sachin Prabhu Michael Adam sprabhu@redhat.com obnox@samba.org 1 Agenda Setting up of an automated testing environment for Samba on Gluster


slide-1
SLIDE 1

Setting up an automated testing environment for Samba on Gluster

Testing Testing

  • ne two, one two!

Sachin Prabhu sprabhu@redhat.com Michael Adam

  • bnox@samba.org

1

slide-2
SLIDE 2

Setting up of an automated testing environment for Samba on Gluster

Agenda

2 Testing Testing - one two, one two!

Introductions Implementation Future Roadmap

slide-3
SLIDE 3

Introductions

Glusterfs

3 Testing Testing - one two, one two!

Open Source Scalable Network Filesystem

Utilises off the shelf hardware

Access to the filesystem provided by libgfapi, glusterfs-fuse, NFS and SMB

slide-4
SLIDE 4

Introductions

Samba

4 Testing Testing - one two, one two!

Export GlusterFS using SMB

Samba uses vfs_glusterfs module to talk to the Glusterfs cluster.

slide-5
SLIDE 5

Introductions

CTDB

5 Testing Testing - one two, one two!

Turns Samba into a clustered service

By providing the needed cross-node IPC:

clustered TDB database ・ Inter-node messaging

▸ Additionally: resource management:

・ Monitors nodes ・ Monitors Samba service ・ Manages pool of ip addresses

slide-6
SLIDE 6

Introductions

Challenges

6 Testing Testing - one two, one two!

Multiple Machines Involved

Multiple Projects Involved

Multiple Configuration Options

slide-7
SLIDE 7

Introductions

Requirements

7 Testing Testing - one two, one two!

Automate setup of cluster nodes ▸ Test runner to run various tests ▸ Run periodically

slide-8
SLIDE 8

Implementation

Gluster Samba Integration

8 Testing Testing - one two, one two!

Github ・ https:/ /github.com/gluster/samba-integration ▸ Branches ・ master ・ centos-ci ・ samba-build ・ tests

slide-9
SLIDE 9

Implementation

Tools

9 Testing Testing - one two, one two!

CentOS 7

Vagrant ・ libvirt ▸ Ansible ・ gluster-ansible

slide-10
SLIDE 10

Implementation - prerequisites

Samba master test RPMs

10 Testing Testing - one two, one two!

▸ Test RPMs for easy installation on nodes ▸ Builds created nightly ▸ Gluster already has nightly RPMs from the master branch spec file

slide-11
SLIDE 11

Implementation - prerequisites

Branch - samba-build

11 Testing Testing - one two, one two!

▸ Fetches current samba master ▸ Creates an SRPM loosely based on fedora rawhide ▸ Builds binary RPMs for centos ▸ Runs a basic install test ▸ Builds running nightly in centos-ci

slide-12
SLIDE 12

Implementation - prerequisites

Package Repositories

12 Testing Testing - one two, one two!

GlusterFS

・ http:/ /artifacts.ci.centos.org/gluster/nightly/master.repo

▸ Samba

・ http:/ /artifacts.ci.centos.org/gluster/nightly-samba/samb a-nightly-master.repo

slide-13
SLIDE 13

Implementation

Branch - master

13 Testing Testing - one two, one two!

Creates virtual machines ▸ Installs cluster nodes and clients ・ cluster-vars.yml ・ test-info.yml ▸ Runs tests

slide-14
SLIDE 14

Implementation

Setup vm setup

14 Testing Testing - one two, one two!

slide-15
SLIDE 15

Implementation

Setup vm Storage0/1

15 Testing Testing - one two, one two!

slide-16
SLIDE 16

Implementation

Setup vm Client1

16 Testing Testing - one two, one two!

slide-17
SLIDE 17

Implementation

Run Tests

17 Testing Testing - one two, one two!

slide-18
SLIDE 18

Implementation

Branch - tests

18 Testing Testing - one two, one two!

▸ Executed once the nodes and clients are setup

Contains the test runner and various tests ▸ Simple sanity tests using the cifs kernel module ▸ Smbtorture tests ・ Latest nightly build smbtorture test used ・ Re-use selftest infrastructure for known fails and unreliable results ▸ Focus is now on adding more tests.

slide-19
SLIDE 19

Implementation - centos-ci integration

CentOS CI Environment

19 Testing Testing - one two, one two!

https:/ /ci.centos.org/ ▸ Free Jenkins based bare metal machines for open source projects to build CI / test infrastructures ▸ https:/ /wiki.centos.org/QaWiki/CI/GettingStarted

Using: Gluster Space (for now)

Job definitions: https:/ /github.com/gluster/centosci/

slide-20
SLIDE 20

Implementation

Branch - centos-ci

20 Testing Testing - one two, one two!

Entry point for the Centos-CI environment ▸ Script invoked by the centos-ci jenkins jobs ▸ Sets up the host machine ▸ Fetches master branch and kickstarts install and test

slide-21
SLIDE 21

Implementation

Centos-ci - what are we running / testing?

21 Testing Testing - one two, one two!

Nightly:

Full clustered test run from master ・ build samba RPMs from master ▸ PRs: ・ Master (full cluster test) ・ Tests (full cluster test) ・ Centos-ci (full cluster test) ・ Samba-build (build and install)

slide-22
SLIDE 22

Future Roadmap

Future road map

22 Testing Testing - one two, one two!

Tests! Tests! Tests! ▸ Test different configuration options ▸ Plugin other distributed file systems ▸ Centos-ci: ○ Get samba space? ○ Use in gitlab? (not so easy…)

slide-23
SLIDE 23

Questions? sprabhu@redhat.com madam@redhat.com

Thank You