O'Reilly logo
live online training icon Live Online training

Introduction to Jenkins

Learn how to deploy, configure, and take advantage of Jenkins for CI/CD and pipeline-like workflows

Alfredo Deza

Learn all about deploying, configuring, and taking advantage of Jenkins for CI/CD and pipeline workflows. Although Jenkins is quite popular for building CI/CD infrastructure, it is usually not done in a way that can scale, or that follows best practices. It is easy to get started with, but can get complicated if lacking a good foundation.

Using real-world examples in production today, the focus will be on demonstrating how proper configuration can be automated and maintained, and scale out.

What you'll learn-and how you can apply it

  • Learn how to deploy Jenkins for CI/CD and pipeline-like workflows.
  • Master the configuration to take full advantage of features.

This training course is for you because...

  • You work as a software engineer, and you are exposed to an existing CI infrastructure that could use best practices for configuration and management.
  • You work as a DevOps or Operations Engineer, and want to introduce a robust Jenkins instance for continuous integration or continuous delivery to the organization.
  • You work as a DevOps or Operations Engineer in an organization that has an existing CI solution that is difficult to manage or is not scaling out, and want to understand how to properly deploy, configure, and manage Jenkins with the best standards.

Prerequisites

  • Basic understanding of AWS.
  • Familiarity with Jenkins and/or CI/CD is a plus - but not mandatory.

Course Set-up:

  • Free AWS Account: https://aws.amazon.com
  • Web Browser
  • Free Azure account: https://azure.microsoft.com/en-in/account/
  • Free GCP Account: https://cloud.google.com
  • Free Github account: https://github.com

Recommended Preparation:

Recommended Follow-up:

About your instructor

  • Alfredo Deza is a former professional athlete and Olympian, with 10 years of professional Python and DevOps experience, creating large CI/CD environments for testing and deployments, has designed resilient infrastructure for several companies, and has instilled his passion for testing to others by automating code checks and production deployments. He has co-authored O'reilly's Python For DevOps and Testing In Python books, as well as training courses for Pearson and Udacity.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Part 1:Create Manage and Deploy Jenkins Length (45 min)

  • Create a fully functional Jenkins server based on configuration as code
    • Setup Jenkins without automation
    • Use JCasC to automate a basic setup (configuration-as-code)
    • Configure Jenkins Blue Ocean for a pipeline workflow
    • Deploy changes from a Github repository using the pipeline
  • Create and manage Jobs with Jenkins Job Builder
    • Define a layout for scripts, steps, and Job configuration
    • Sourcing helper scripts from other locations into a job
    • Automate Job creation for Github pull requests
  • Managing Jobs with Jenkins Job Builder
    • Creating a base job as a trigger to JJB repository changes
    • Bootstrapping a new Jenkins instance with a base JJB job to rebuild everything
  • Deploy Jenkins in AWS
    • Setup pre-requisites AWS Account, IAM username and password, EC2 Key pair
    • Create a security Group on EC2
  • Deploy a static website with AWS static website
  • QA (10 min)
  • Break (5 min)

Part 2: Further automation and Management Length (45 min)

  • 6.1. Plugin installation and management overview
  • 6.2. Plugin installation via jenkins-cli.jar
  • 6.3 SSH-based job nodes
  • 6.4. JNLP-based nodes using systemd
  • 6.5 API access via the Python Jenkins library
  • QA (10 min)
  • Break (5 min)