Book Image

Jenkins Administrator's Guide

By : Calvin Sangbin Park, Lalit Adithya, Sam Gleske
Book Image

Jenkins Administrator's Guide

By: Calvin Sangbin Park, Lalit Adithya, Sam Gleske

Overview of this book

Jenkins is a renowned name among build and release CI/CD DevOps engineers because of its usefulness in automating builds, releases, and even operations. Despite its capabilities and popularity, it's not easy to scale Jenkins in a production environment. Jenkins Administrator's Guide will not only teach you how to set up a production-grade Jenkins instance from scratch, but also cover management and scaling strategies. This book will guide you through the steps for setting up a Jenkins instance on AWS and inside a corporate firewall, while discussing design choices and configuration options, such as TLS termination points and security policies. You’ll create CI/CD pipelines that are triggered through GitHub pull request events, and also understand the various Jenkinsfile syntax types to help you develop a build and release process unique to your requirements. For readers who are new to Amazon Web Services, the book has a dedicated chapter on AWS with screenshots. You’ll also get to grips with Jenkins Configuration as Code, disaster recovery, upgrading plans, removing bottlenecks, and more to help you manage and scale your Jenkins instance. By the end of this book, you’ll not only have a production-grade Jenkins instance with CI/CD pipelines in place, but also knowledge of best practices by industry experts.
Table of Contents (13 chapters)
12
Index

Redeploying Jenkins using JCasC

We'll redeploy Jenkins using the new Dockerfile with plugins preinstalled and the JCasC configuration file:

  1. SSH into the controller host.
  2. Build a custom Docker image for the controller with plugins preinstalled and name it <Docker Hub ID>/jenkins:2.263.1-plugins:
    controller:~$ docker build -t calvinpark/jenkins:2.263.1-plugins 
    -f jenkins.dockerfile .

    During the image build, we can see that the plugins are installed.

  3. Create a new directory named jcasc_home, then copy jcasc.yaml into the jcasc_home directory:
    controller:~$ mkdir jcasc_home
    controller:~$ cp jcasc.yaml jcasc_home/
  4. Stop and delete the existing Jenkins controller to release the ports (don't worry, we'll get it back):
    controller:~$ docker stop jenkins_controller 
    controller:~$ docker rm jenkins_controller
  5. Finally, run the new Jenkins...