testing testing one two one two
play

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


  1. 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

  2. Agenda Setting up of an automated testing environment for Samba on Gluster Introductions Implementation Future Roadmap 2 Testing Testing - one two, one two!

  3. Introductions Glusterfs Open Source Scalable Network Filesystem ▸ Utilises off the shelf hardware ▸ Access to the filesystem provided by libgfapi, ▸ glusterfs-fuse, NFS and SMB 3 Testing Testing - one two, one two!

  4. Introductions Samba Export GlusterFS using SMB ▸ Samba uses vfs_glusterfs module to talk to the ▸ Glusterfs cluster. 4 Testing Testing - one two, one two!

  5. Introductions CTDB 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 ・ 5 Testing Testing - one two, one two!

  6. Introductions Challenges Multiple Machines Involved ▸ Multiple Projects Involved ▸ Multiple Configuration Options ▸ 6 Testing Testing - one two, one two!

  7. Introductions Requirements Automate setup of cluster nodes ▸ Test runner to run various tests ▸ Run periodically ▸ 7 Testing Testing - one two, one two!

  8. Implementation Gluster Samba Integration Github ▸ https:/ /github.com/gluster/samba-integration ・ Branches ▸ master ・ centos-ci ・ samba-build ・ tests ・ 8 Testing Testing - one two, one two!

  9. Implementation Tools CentOS 7 ▸ Vagrant ▸ libvirt ・ Ansible ▸ gluster-ansible ・ 9 Testing Testing - one two, one two!

  10. Implementation - prerequisites Samba master test RPMs Test RPMs for easy installation on nodes ▸ Builds created nightly ▸ Gluster already has nightly RPMs from the master ▸ branch spec file 10 Testing Testing - one two, one two!

  11. Implementation - prerequisites Branch - samba-build 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 ▸ 11 Testing Testing - one two, one two!

  12. Implementation - prerequisites Package Repositories GlusterFS ▸ http:/ /artifacts.ci.centos.org/gluster/nightly/master.repo ・ Samba ▸ http:/ /artifacts.ci.centos.org/gluster/nightly-samba/samb ・ a-nightly-master.repo 12 Testing Testing - one two, one two!

  13. Implementation Branch - master Creates virtual machines ▸ Installs cluster nodes and clients ▸ cluster-vars.yml ・ test-info.yml ・ Runs tests ▸ 13 Testing Testing - one two, one two!

  14. Implementation Setup vm setup 14 Testing Testing - one two, one two!

  15. Implementation Setup vm Storage0/1 15 Testing Testing - one two, one two!

  16. Implementation Setup vm Client1 16 Testing Testing - one two, one two!

  17. Implementation Run Tests 17 Testing Testing - one two, one two!

  18. Implementation Branch - tests 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. ▸ 18 Testing Testing - one two, one two!

  19. Implementation - centos-ci integration CentOS CI Environment 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/ ▸ 19 Testing Testing - one two, one two!

  20. Implementation Branch - centos-ci 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 ▸ 20 Testing Testing - one two, one two!

  21. Implementation Centos-ci - what are we running / testing? 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) ・ 21 Testing Testing - one two, one two!

  22. Future Roadmap Future road map Tests! Tests! Tests! ▸ Test different configuration options ▸ Plugin other distributed file systems ▸ Centos-ci: ▸ Get samba space? ○ Use in gitlab? (not so easy…) ○ 22 Testing Testing - one two, one two!

  23. Thank You Questions? sprabhu@redhat.com madam@redhat.com

Recommend


More recommend