SlideShare a Scribd company logo
Unrestricted © Verifa 2018
1
1
WELCOME to the 1st
Continuous Delivery Evening
&
JAM Helsinki Meetup
Welcome & Introduction
Unrestricted © Verifa 2018
2
2
• General Info about Venue
• What is Continuous Delivery Evening
• What is JAM
• Who are Verifa
Agenda
Unrestricted © Verifa 2018
3
3
18:00 - Opening and Introduction

18:15 - Presentation 1: Jenkins Configuration as Code through YAML by
Jacob Larfors, Verifa


18:45 - Presentation 2: OSS Compliance by Kalle Soranko, Verifa

19:15 - Break and Mingle


19:30 - Presentation 3: Empirical Software Development, CodeScene by
James Elderfield, Verifa


19:45 - Closing Words
Jenkins Configuration as
Code
Continuous Delivery Evening / JAM Meetup Helsinki verifa.io
About me (Jacob Larfors)
• CD / DevOps Consultant @ Verifa
• Working with Jenkins since 2011
• Developer/Maintainer of plugins for Jenkins
Jenkins - Quick Introduction
• Automation Server
• Lots of plugins & integrations
• Very popular, hence a good choice
• Competitors: Concourse, Drone, CircleCI, Travis, GitLab…
8/28/18 6
Problem Statement – Typical Deployment
1. Scalability
2. Availability
3. Managed by IT
4. Cleanliness
5. Maintainability
Solution Statement
Well, kinda… how do we manage these container(s)?
Solution Statement (continued)
1. Building the Docker image
• Create self provisioning, ready for production Jenkins instance
2. Orchestrating the Container
Jenkins Architecture
MASTER
Configurations
Node
Configuration
Plugins
EXECUTORS
Dockerizing Jenkins Master – Basic Dockerfile


FROM jenkins/jenkins:lts


# Skip initial setup
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/
plugins.txt
COPY jenkins.yaml /usr/local/jenkins.yaml
ENV CASC_JENKINS_CONFIG /usr/local/jenkins.yaml
8/28/18 11
Dockerizing Jenkins Master – Groovy, but not so groovy
import com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy
import com.michelin.cio.hudson.plugins.rolestrategy.RoleMap
import com.synopsys.arc.jenkins.plugins.rolestrategy.RoleType
import hudson.security.HudsonPrivateSecurityRealm
import io.jenkins.systemgroovy.plugins.OwnershipBasedSecurityHelper
import jenkins.model.Jenkins
import jenkins.security.QueueItemAuthenticatorConfiguration
import hudson.model.*
import org.jenkinsci.plugins.authorizeproject.GlobalQueueItemAuthenticator
import org.jenkinsci.plugins.authorizeproject.strategy.TriggeringUsersAuthorizationStrategy




boolean createAdmin = Boolean.getBoolean("io.jenkins.dev.security.createAdmin")


println("=== Installing the Security Realm")
def securityRealm = new HudsonPrivateSecurityRealm(false)
……
Jenkins CasC Plugin
8/29/18 13
https://plugins.jenkins.io/configuration-as-code
Dockerizing Jenkins Master – the YAML approach
jenkins:
securityRealm:
bitbucket:
clientID: <hash_valuse>
clientSecret: <hash_value>
authorizationStrategy:
loggedInUsersCanDoAnything:
allowAnonymousRead: false
systemMessage: "Jenkins configured automatically!"
numExecutors: 0
scmCheckoutRetryCount: 2
………
8/28/18 14
Next Steps
• Finish converting everything to YAML
• Create PROD, DEV and TEST Dockerfile build stages
• Setup Kubernetes cluster as Jenkins executor pool
8/28/18 15

More Related Content

PPTX
Yannis Evangelou from lexiQA at BLU2017
PDF
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
PDF
Diary of an Infra Guy
PDF
Micro Services - Neither Micro Nor Service
PPTX
Anypoint Connectors
PPTX
Validating latest changes with XCI
PDF
Bringing linguistic QA to the cloud - Vassilis Korkas (lexiQA)
PPTX
OneGlobal Inc.
Yannis Evangelou from lexiQA at BLU2017
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
Diary of an Infra Guy
Micro Services - Neither Micro Nor Service
Anypoint Connectors
Validating latest changes with XCI
Bringing linguistic QA to the cloud - Vassilis Korkas (lexiQA)
OneGlobal Inc.

What's hot (20)

PDF
LEAN IT Infrastructure
PDF
Continuous Delivery and Micro Services - A Symbiosis
PPTX
How to keep Jenkins logs forever without performance issues
PDF
RPKI - Securing the Internet One Hop at a Time
PDF
Supervise your Akka actors - Devoxx
PPTX
Evolve your application
PDF
Prop 118 No need policy in APNIC region
PDF
Embrace DevOps: Delivery Value with Puppet Automation
PPTX
.NET Fest 2018. Андрей Тарарака. Как порулить грузовиком в Австралии, находяс...
PDF
Icinga Camp New York 2018 - Icinga2 and Elastic
PPTX
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
PDF
APIdays Paris 2018 - Deliver API Updates in Real Time with Mercure.rocks Kévi...
PDF
Supervise your Akka actors
PPTX
Webinar: Version Control in SOASTA 57
PDF
TuleapCon2017- Requirements traceability Tuleap test tool
PPTX
Using JMeter Scripts in CloudTest for Continuous Testing
PDF
OSMC 2017 | Ops and dev stories- Integrate everything into your monitoring st...
PDF
Traffic Control with Envoy Proxy
PDF
Continuous Globalization Workflow Webinar Slides
PDF
Icinga Camp New York 2018 - What's evolving in icinga 2018
LEAN IT Infrastructure
Continuous Delivery and Micro Services - A Symbiosis
How to keep Jenkins logs forever without performance issues
RPKI - Securing the Internet One Hop at a Time
Supervise your Akka actors - Devoxx
Evolve your application
Prop 118 No need policy in APNIC region
Embrace DevOps: Delivery Value with Puppet Automation
.NET Fest 2018. Андрей Тарарака. Как порулить грузовиком в Австралии, находяс...
Icinga Camp New York 2018 - Icinga2 and Elastic
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
APIdays Paris 2018 - Deliver API Updates in Real Time with Mercure.rocks Kévi...
Supervise your Akka actors
Webinar: Version Control in SOASTA 57
TuleapCon2017- Requirements traceability Tuleap test tool
Using JMeter Scripts in CloudTest for Continuous Testing
OSMC 2017 | Ops and dev stories- Integrate everything into your monitoring st...
Traffic Control with Envoy Proxy
Continuous Globalization Workflow Webinar Slides
Icinga Camp New York 2018 - What's evolving in icinga 2018
Ad

Similar to Helsinki JAM - Jenkins CasC (20)

PDF
Java: Create The Future Keynote
PDF
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
PPTX
_rapid_miner
PDF
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
PDF
Combining Open Source and Standards
PPTX
OPNFV CI and Challenges: How we solved them - if we solved them at all!
PDF
Atmosphere Conference 2015: Service Operations Evolution at Spotify
PPTX
JPA 2.1 on Payara Server
PDF
Experience in teaching devops
PPT
Continuous Delivery Agiles 2014 Medellin
PDF
SCaLE 16x - Application Monitoring And Tracing In Kubernetes
PDF
SplunkLive Brisbane Splunk for Developers
PDF
SplunkLive Brisbane Splunk for Developers
PDF
SplunkLive Melbourne Splunk for Developers
KEY
Continuous Delivery Using Jenkins
PPTX
PD_Rahul Mehta.pptxssseeeeeeeeeweeeeeeeee
KEY
Make It Cooler: Using Decentralized Version Control
PDF
Cloud Native Engineering with SRE and GitOps
PDF
The Evolution of Continuous Delivery at Scale @ Linkedin
PDF
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Java: Create The Future Keynote
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
_rapid_miner
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
Combining Open Source and Standards
OPNFV CI and Challenges: How we solved them - if we solved them at all!
Atmosphere Conference 2015: Service Operations Evolution at Spotify
JPA 2.1 on Payara Server
Experience in teaching devops
Continuous Delivery Agiles 2014 Medellin
SCaLE 16x - Application Monitoring And Tracing In Kubernetes
SplunkLive Brisbane Splunk for Developers
SplunkLive Brisbane Splunk for Developers
SplunkLive Melbourne Splunk for Developers
Continuous Delivery Using Jenkins
PD_Rahul Mehta.pptxssseeeeeeeeeweeeeeeeee
Make It Cooler: Using Decentralized Version Control
Cloud Native Engineering with SRE and GitOps
The Evolution of Continuous Delivery at Scale @ Linkedin
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Ad

Recently uploaded (20)

PPTX
ai tools demonstartion for schools and inter college
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
System and Network Administraation Chapter 3
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
AI in Product Development-omnex systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
medical staffing services at VALiNTRY
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
top salesforce developer skills in 2025.pdf
PPTX
history of c programming in notes for students .pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
ai tools demonstartion for schools and inter college
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo Companies in India – Driving Business Transformation.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
System and Network Administraation Chapter 3
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PTS Company Brochure 2025 (1).pdf.......
AI in Product Development-omnex systems
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
medical staffing services at VALiNTRY
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
top salesforce developer skills in 2025.pdf
history of c programming in notes for students .pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Online Work Permit System for Fast Permit Processing
Understanding Forklifts - TECH EHS Solution
Internet Downloader Manager (IDM) Crack 6.42 Build 41

Helsinki JAM - Jenkins CasC

  • 1. Unrestricted © Verifa 2018 1 1 WELCOME to the 1st Continuous Delivery Evening & JAM Helsinki Meetup
  • 2. Welcome & Introduction Unrestricted © Verifa 2018 2 2 • General Info about Venue • What is Continuous Delivery Evening • What is JAM • Who are Verifa
  • 3. Agenda Unrestricted © Verifa 2018 3 3 18:00 - Opening and Introduction
 18:15 - Presentation 1: Jenkins Configuration as Code through YAML by Jacob Larfors, Verifa 
 18:45 - Presentation 2: OSS Compliance by Kalle Soranko, Verifa
 19:15 - Break and Mingle 
 19:30 - Presentation 3: Empirical Software Development, CodeScene by James Elderfield, Verifa 
 19:45 - Closing Words
  • 4. Jenkins Configuration as Code Continuous Delivery Evening / JAM Meetup Helsinki verifa.io
  • 5. About me (Jacob Larfors) • CD / DevOps Consultant @ Verifa • Working with Jenkins since 2011 • Developer/Maintainer of plugins for Jenkins
  • 6. Jenkins - Quick Introduction • Automation Server • Lots of plugins & integrations • Very popular, hence a good choice • Competitors: Concourse, Drone, CircleCI, Travis, GitLab… 8/28/18 6
  • 7. Problem Statement – Typical Deployment 1. Scalability 2. Availability 3. Managed by IT 4. Cleanliness 5. Maintainability
  • 8. Solution Statement Well, kinda… how do we manage these container(s)?
  • 9. Solution Statement (continued) 1. Building the Docker image • Create self provisioning, ready for production Jenkins instance 2. Orchestrating the Container
  • 11. Dockerizing Jenkins Master – Basic Dockerfile 
 FROM jenkins/jenkins:lts 
 # Skip initial setup ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/ plugins.txt COPY jenkins.yaml /usr/local/jenkins.yaml ENV CASC_JENKINS_CONFIG /usr/local/jenkins.yaml 8/28/18 11
  • 12. Dockerizing Jenkins Master – Groovy, but not so groovy import com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy import com.michelin.cio.hudson.plugins.rolestrategy.RoleMap import com.synopsys.arc.jenkins.plugins.rolestrategy.RoleType import hudson.security.HudsonPrivateSecurityRealm import io.jenkins.systemgroovy.plugins.OwnershipBasedSecurityHelper import jenkins.model.Jenkins import jenkins.security.QueueItemAuthenticatorConfiguration import hudson.model.* import org.jenkinsci.plugins.authorizeproject.GlobalQueueItemAuthenticator import org.jenkinsci.plugins.authorizeproject.strategy.TriggeringUsersAuthorizationStrategy 
 
 boolean createAdmin = Boolean.getBoolean("io.jenkins.dev.security.createAdmin") 
 println("=== Installing the Security Realm") def securityRealm = new HudsonPrivateSecurityRealm(false) ……
  • 13. Jenkins CasC Plugin 8/29/18 13 https://plugins.jenkins.io/configuration-as-code
  • 14. Dockerizing Jenkins Master – the YAML approach jenkins: securityRealm: bitbucket: clientID: <hash_valuse> clientSecret: <hash_value> authorizationStrategy: loggedInUsersCanDoAnything: allowAnonymousRead: false systemMessage: "Jenkins configured automatically!" numExecutors: 0 scmCheckoutRetryCount: 2 ……… 8/28/18 14
  • 15. Next Steps • Finish converting everything to YAML • Create PROD, DEV and TEST Dockerfile build stages • Setup Kubernetes cluster as Jenkins executor pool 8/28/18 15