Your SlideShare is downloading. ×
0
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
FreeB...
Jenkins
What is Jenkins?
●
Continuous Integration tool
implemented in Java
●
written by Kohsuke Kawaguchi
at Sun
What is Jenkins?
●
Now an Open Source project:
http://jenkins-ci.org
●
Hundreds of plugins available
●
Hundreds of users
●...
Jenkins User Conference 2013
Continuous Integration
What is Continuous Integration?
●
Developer commits code changes
●
System verifies that code builds
●
System verifies that...
Example Production CI Workflow
Jenkins in the
FreeBSD cluster
Motivation
●
Use more modern development tools in
FreeBSD
●
Help improve quality of FreeBSD
●
Take advantage of large Jenk...
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 ...
Task #2: Set up VM's
●
Two 200GB disk images created
●
Image 1: jenkins-9.freebsd.org (FBSD 9)
●
Image 2: jenkins-10.freeb...
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...
Task #4: Install Jenkins in VM's
●
pkg install devel/jenkins
●
OpenJDK pulled in as dependency
●
configure some settings i...
d
Task #5: Set up nginx
●
DNS CNAME: jenkins → jenkins-9
●
Nginx reverse proxy set up:
https://jenkins.freebsd.org →
http:...
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)
Nginx proxy Jenkins Java VM
Web request
d
Task #6: Set up authentication
●
Jenkins authentication via LDAP used
●
Configured via Jenkins web UI
●
FreeBSD LDAP ser...
LDAP authentication
jenkins-9.freebsd.org (FreeBSD 9)
Nginx proxy Jenkins Java VM
Web request
Authenticate
(ldaps://)
d
Task #7: Set up builds
●
Set up “free-form builds” via Jenkins
web UI
●
On Unix, “free-form” builds executed
via “/bin/s...
What do we have so far?
Developer
commits
Build
Test
(TBD)
SCM
(svn.freebsd.org)
Deploy
(TBD)
Implementation status of CI
●
Latest project status:...
What's next?
d
Next steps
●
Integrate with Julio Merino's Kyua
framework at BSDCan
●
Set up more builds
●
Boot results of builds in VM'...
Where do I find out more?
Further information
●
Project page:
http://wiki.freebsd.org/Jenkins
●
Contact us:
freebsd-testing@FreeBSD.org
●
Join in, a...
Special Thanks
●
jenkins-admin@freebsd.org:
●
Craig Rodrigues, rodrigc@ (project lead)
●
Li-Wen Hsu, lwhsu@, (port maintai...
Special Thanks
●
clusteradm@freebsd.org:
●
Sean Bruno, sbruno@freebsd.org
●
Peter Wemm, peter@freebsd.org
●
Glen Barber, g...
Jenkins and Bhyve: Continuous Integration for FreeBSD by Craig Rodrigues
Upcoming SlideShare
Loading in...5
×

Jenkins and Bhyve: Continuous Integration for FreeBSD by Craig Rodrigues

2,816

Published on

A team of FreeBSD developers led by Craig Rodrigues (rodrigc@freebsd.org) has formed the jenkins-admin team (jenkins-admin@freebsd.org). They have set up the Jenkins Continuous Integration (http://www.jenkins-ci.org) system inside the FreeBSD cluster, and are building several branches of FreeBSD. The web server which lists the builds is visible at: https://jenkins.freebsd.org

The jenkins-admin team has plans to expand the use of Jenkins to build and test FreeBSD. The project status and future plans are listed at: http://wiki.freebsd.org/Jenkins

The presentation discusses the progress of the effort to date, the use of BHyve VM's in the effort, and future plans. The team is also looking for FreeBSD developers who can help along with this effort to improve testing of FreeBSD. A video of the full talk can be found here: http://www.ixsystems.com/whats-new/jenkins-and-bhyve-continuous-integration-for-freebsd-by-craig-rodrigues/

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,816
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Jenkins and Bhyve: Continuous Integration for FreeBSD by Craig Rodrigues"

  1. 1. Jenkins and Bhyve: Continuous Integration for FreeBSD Craig Rodrigues rodrigc@FreeBSD.org
  2. 2. Presentation Overview ● Introduction to Jenkins and Continuous Integration (CI) ● Describe how Jenkins was set up in FreeBSD cluster
  3. 3. Jenkins
  4. 4. What is Jenkins? ● Continuous Integration tool implemented in Java ● written by Kohsuke Kawaguchi at Sun
  5. 5. What is Jenkins? ● Now an Open Source project: http://jenkins-ci.org ● Hundreds of plugins available ● Hundreds of users ● Active developer community
  6. 6. Jenkins User Conference 2013
  7. 7. Continuous Integration
  8. 8. What is Continuous Integration? ● Developer commits code changes ● System verifies that code builds ● System verifies that code passes tests ● Code is deployed
  9. 9. Example Production CI Workflow
  10. 10. Jenkins in the FreeBSD cluster
  11. 11. Motivation ● Use more modern development tools in FreeBSD ● Help improve quality of FreeBSD ● Take advantage of large Jenkins ecosystem
  12. 12. Setting up Jenkins in the FreeBSD cluster
  13. 13. Task #1: Set up machine ● clusteradm@freebsd.org provided: ● vmhost.freebsd.org: ● 16G RAM, 1.8TB disks ● Intel E5620, 16 CPU cores ● FreeBSD 11
  14. 14. 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)
  15. 15. 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
  16. 16. 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
  17. 17. d 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
  18. 18. VM Host vmhost.freebsd.org (FreeBSD 11) jenkins-9.freebsd.org (Bhyve VM) jenkins-10.freebsd.org (Bhyve VM)
  19. 19. jenkins-9.freebsd.org VM jenkins-9.freebsd.org (FreeBSD 9) Nginx proxy Jenkins Java VM Web request
  20. 20. d Task #6: Set up authentication ● Jenkins authentication via LDAP used ● Configured via Jenkins web UI ● FreeBSD LDAP servers at Yahoo used
  21. 21. LDAP authentication jenkins-9.freebsd.org (FreeBSD 9) Nginx proxy Jenkins Java VM Web request Authenticate (ldaps://)
  22. 22. d 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)
  23. 23. What do we have so far?
  24. 24. Developer commits Build Test (TBD) SCM (svn.freebsd.org) Deploy (TBD) Implementation status of CI ● Latest project status: http://wiki.freebsd.org/Jenkins
  25. 25. What's next?
  26. 26. d Next steps ● Integrate with Julio Merino's Kyua framework at BSDCan ● Set up more builds ● Boot results of builds in VM's ● Coverity integration
  27. 27. Where do I find out more?
  28. 28. Further information ● Project page: http://wiki.freebsd.org/Jenkins ● Contact us: freebsd-testing@FreeBSD.org ● Join in, and help out!
  29. 29. 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)
  30. 30. Special Thanks ● clusteradm@freebsd.org: ● Sean Bruno, sbruno@freebsd.org ● Peter Wemm, peter@freebsd.org ● Glen Barber, gjb@freebsd.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×