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

To get the most out of this book

We will be using Git, Docker, systemd, OpenSSL, NGINX, and other tools on Linux, so you need basic familiarity with the Linux command line. For AWS Jenkins, you need an AWS account where you can create and manage EC2 instances, ELBs, AWS Certificate Manager certificates, and Route 53 entries. For the Jenkins inside a corporate firewall, you need three virtual machines and optionally access to a company Public Key Infrastructure (PKI) where you can generate TLS/SSL certificates. You also need a GitHub and a Docker Hub account.

Software/hardware covered in the book

Windows, macOS, Linux, or any other operating system that you can use to SSH into a Linux machine

Ubuntu 20.04 for the virtual machines and EC2 instances

Docker 18 or higher, used in the Ubuntu 20.04 hosts

Git and OpenSSL, which are preinstalled in Ubuntu 20.04

Jenkins 2.263.1-LTS or higher

Jenkinsfiles and Shared Libraries code are written in the Groovy programming language. You can follow along without prior experience with Groovy, but familiarity with Groovy will help you understand the shared libraries chapter more easily. It’s very similar to Java.

If you are using the digital version of this book, we advise you to type the code yourself or access the code via the GitHub repository (link available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.