Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS. Craig Rodrigues rodrigc@ixsystems.com



Similar documents
Building a Continuous Integration Pipeline with Docker

Continuous Integration Processes and SCM To Support Test Automation

Tivoli Endpoint Manager for Security and Compliance Analytics. Setup Guide

DevOps Course Content

depl Documentation Release depl contributors

Rally Installation Guide

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Parallels Plesk Automation

RSA Authentication Manager 8.1 Virtual Appliance Getting Started

How Liferay Is Improving Quality Using Hundreds of Jenkins Servers

Mastering Continuous Integration with Jenkins

Hyper-V vs ESX at the datacenter

Storage Sync for Hyper-V. Installation Guide for Microsoft Hyper-V

How To Set Up A Shared Insight Cache Server On A Pc Or Macbook With A Virtual Environment On A Virtual Computer (For A Virtual) (For Pc Or Ipa) ( For Macbook) (Or Macbook). (For Macbook

Course 6331A: Deploying and Managing Microsoft System Center Virtual Machine Manager

vrealize Air Compliance OVA Installation and Deployment Guide

VMware Identity Manager Connector Installation and Configuration

EMC Smarts SAM, IP, ESM, MPLS, NPM, OTM, and VoIP Managers 9.4 Support Matrix

MaaS360 Mobile Enterprise Gateway

A Guide to New Features in Propalms OneGate 4.0

I N S T A L L A T I O N M A N U A L

MaaS360 Mobile Enterprise Gateway

vsphere Upgrade vsphere 6.0 EN

OBSERVEIT DEPLOYMENT SIZING GUIDE

The Evolved Office APPLICATION PLATFORM REQUIREMENTS. Release: 16.0

Introduction to Mobile Access Gateway Installation

SUSE Cloud 2.0. Pete Chadwick. Douglas Jarvis. Senior Product Manager Product Marketing Manager

OnCommand Performance Manager 2.0

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

6422: Implementing and Managing Windows Server 2008 Hyper-V (3 Days)

INTRODUCTION TO CLOUD MANAGEMENT

Citrix XenServer 5.6 OpenSource Xen 2.6 on RHEL 5 OpenSource Xen 3.2 on Debian 5.0(Lenny)

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

INUVIKA OPEN VIRTUAL DESKTOP FOUNDATION SERVER

Lecture 2 Cloud Computing & Virtualization. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Minimum System Requirements

CernVM Online and Cloud Gateway a uniform interface for CernVM contextualization and deployment

EMC Smarts SAM, IP, ESM, MPLS, NPM, OTM, and VoIP Managers Support Matrix

An Oracle White Paper September Oracle WebLogic Server 12c on Microsoft Windows Azure

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 7

OnCommand Unified Manager 6.3

Verax Service Desk Installation Guide for UNIX and Windows

OnCommand Performance Manager 1.1

Veeam Backup Enterprise Manager. Version 7.0

Microsoft Windows Apple Mac OS X

High Availability of the Polarion Server

HP Business Availability Center

Server Installation Procedure - Load Balanced Environment

ISERink Installation Guide

Intro to Virtualization

Abila MIP Mobile. System Requirements

Cloud Computing through Virtualization and HPC technologies

Alinto Mail Server Pro

VMware vsphere 4.1 with ESXi and vcenter

Outline SSS Microsoft Windows Server 2008 Hyper-V Virtualization

Application-Centric WLAN. Rob Mellencamp

How To Protect Your Data From Being Damaged On Vsphere Vdp Vdpa Vdpo Vdprod (Vmware) Vsphera Vdpower Vdpl (Vmos) Vdper (Vmom

Deploying and Managing Microsoft System Center Virtual Machine Manager

Last time. Today. IaaS Providers. Amazon Web Services, overview

McAfee Product Entitlement Definitions

Minimum System Requirements

Developing tests for the KVM autotest framework

Server Monitoring. AppDynamics Pro Documentation. Version Page 1

MEGA Web Application Architecture Overview MEGA 2009 SP4

Table 1. Requirements for Domain Controller. You will need a Microsoft Active Directory domain. Microsoft SQL Server. SQL Server Reporting Services

ITCertMaster. Safe, simple and fast. 100% Pass guarantee! IT Certification Guaranteed, The Easy Way!

Required Ports and Protocols. Communication Direction Protocol and Port Purpose Enterprise Controller Port 443, then Port Port 8005

SOFTWARE DEVELOPMENT BASICS SED

Citrix XenServer Workload Balancing Quick Start. Published February Edition

TIBCO Spotfire Platform IT Brief

ServerPronto Cloud User Guide

OPAS Prerequisites. Prepared By: This document contains the prerequisites and requirements for setting up OPAS.

VMware vcenter Support Assistant 5.1.1

VMware vcenter Log Insight Getting Started Guide

Installing and Configuring Websense Content Gateway

NetIQ Cloud Manager 2.3 Installation Guide

Implementing and Managing Windows Server 2008 Hyper-V

Core Protection for Virtual Machines 1

Installing and Configuring VMware vcenter Orchestrator

Portal. from the trenches!

Get Success in Passing Your Certification Exam at first attempt!

Backup & Disaster Recovery Appliance User Guide

Comparing Free Virtualization Products

Decision Support System Software Asset Management (SAM)

PHD Virtual Backup for Hyper-V

Virtual Managment Appliance Setup Guide

Hadoop on OpenStack Cloud. Dmitry Mescheryakov Software

Ensure that the server where you install the Primary Server software meets the following requirements: Item Requirements Additional Details

Lifecycle Manager Installation and Configuration Guide

SNOW LICENSE MANAGER (7.X)... 3

AlphaTrust PRONTO - Hardware Requirements

Synchronizer Installation

Acano solution. Virtualized Deployment R1.1 Installation Guide. Acano. February B

Continuous Integration in the Cloud with Hudson

Red Hat enterprise virtualization 3.0 feature comparison

OnCommand Performance Manager 1.1

IBM License Metric Tool Version Installing with embedded WebSphere Application Server

Microsoft Windows Apple Mac OS X

Transcription:

Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS Craig Rodrigues rodrigc@ixsystems.com

What is Jenkins? System which provides tools for Continuous Integration, Testing Open source (MIT licensed) Written by Kohsuke Kawaguchi

How do I install it? pkg install devel/jenkins Depends on OpenJDK Needs a few entries in /etc/rc.conf Additional installation notes: http://forums.freebsd.org

How do I configure it? Easy to use web interface for configuration Functionality extensible via 3rd party plugins (over 700)

Where do I get help? http://jenkins-ci.org, active community Books Conferences Consulting companies, http://cloudbees.com

Jenkins User Conference 2013

How do I use it?

How am I trying to use Jenkins Developer SCM (git) Build Test Deploy

BHyve BSD Hypervisor, in FreeBSD 10 works great for booting/testing images Python pexpect over serial interface to drive installer thanks to Neel, Peter

Webdriver Framework for automated web app testing Built into Firefox I'm using Python Splinter library to interface with Webdriver: http://splinter.cobrateam.info

Webdriver example using Python splinter library from splinter import Browser browser = Browser() browser.visit("http://www.yahoo.com") browser.find_by_id("p_13838465-p").fill("bsdcan 2014") browser.find_by_id("search-submit").click()

Special Thanks FreeBSD ports team BHyve team

FreeNAS and TrueNAS #1 Open-Source NAS software Take a look and try it out! http://www.freenas.org

http://www.ixsystems.com/freenas

Jenkins and Bhyve: Continuous Integration for FreeBSD Craig Rodrigues rodrigc@freebsd.org

Presentation Overview Introduction to Jenkins and Continuous Integration (CI) Describe how Jenkins was set up in FreeBSD cluster

Jenkins

What is Jenkins? Continuous Integration tool implemented in Java written by Kohsuke Kawaguchi at Sun

Continuous Integration

What is Continuous Integration? Developer commits code changes System verifies that code builds System verifies that code passes tests Code is deployed

Jenkins in the FreeBSD cluster

Motivation Use more modern development tools in FreeBSD Help improve quality of FreeBSD Take advantage of large Jenkins ecosystem

Setting up Jenkins in the FreeBSD cluster

Task #1: Set up machine clusteradm@freebsd.org provided: vmhost.freebsd.org: 16G RAM, 1.8TB disks Intel E5620, 16 CPU cores FreeBSD 11

Task #2: Set up VM's Two 200GB disk images created Image 1: jenkins-9.freebsd.org (FBSD 9) Image 2: jenkins-10.freebsd.org (FBSD 10) Run VM's under BSD Hypervisor (BHyve)

Task #3: Create rc.d scripts rc.d scripts start VM's on boot of vmhost VM's send console output to /dev/nmdm Example to connect to VM console: cu -l /dev/nmdm0b

Task #4: Install Jenkins in VM's pkg install devel/jenkins OpenJDK pulled in as dependency configure some settings in /etc/rc.conf service jenkins start

Task #5: Set up nginx DNS CNAME: jenkins jenkins-9 Nginx reverse proxy set up: https://jenkins.freebsd.org http://jenkins-9.freebsd.org:8180/jenkins nginx https configured with SSL certificate d

VM Host vmhost.freebsd.org (FreeBSD 11) jenkins-9.freebsd.org (Bhyve VM) jenkins-10.freebsd.org (Bhyve VM)

jenkins-9.freebsd.org VM jenkins-9.freebsd.org (FreeBSD 9) Web request Nginx proxy Jenkins Java VM

Task #6: Set up authentication Jenkins authentication via LDAP used Configured via Jenkins web UI FreeBSD LDAP servers at Yahoo used d

Web request LDAP authentication jenkins-9.freebsd.org (FreeBSD 9) Nginx proxy Jenkins Java VM Authenticate (ldaps://)

Task #7: Set up builds Set up free-form builds via Jenkins web UI On Unix, free-form builds executed via /bin/sh -xe, if first line lacks #! (shebang) d

What do we have so far?

Implementation status of CI Developer commits SCM (svn.freebsd.org) Build Latest project status: http://wiki.freebsd.org/jenkins Test (TBD) Deploy (TBD)

What's next?

Next steps Integrate with Julio Merino's Kyua framework at BSDCan Set up more builds Boot results of builds in VM's Coverity integration d

Where do I find out more?

Further information Project page: http://wiki.freebsd.org/jenkins Contact us: freebsd-testing@freebsd.org Join in, and help out!

Special Thanks jenkins-admin@freebsd.org: Craig Rodrigues, rodrigc@ (project lead) Li-Wen Hsu, lwhsu@, (port maintainer) Steve Kreuzer, skreuzer@ (devops ninja) Steve Wills, swills@, (port maintainer) R. Tyler Croy, tyler@, (Jenkins guru)

Special Thanks clusteradm@freebsd.org: Sean Bruno, sbruno@freebsd.org Peter Wemm, peter@freebsd.org Glen Barber, gjb@freebsd.org