La finalul acestui curs, studenții vor avea cunoștințe solide despre caracteristicile Jenkins Fundamentals. Aceștia vor avea cunoștințe despre cum să automatizeze procesele de development software, cu integrări continue și vor ști cum să faciliteze aspecte tehnice pentru livrare continuă.
DevOps Jenkins Fundamentals
Cursul va începe cu o imagine de ansamblu asupra arhitecturii Jenkins și va continua cu instalarea lui Jenkins. Studenții se vor familiariza cu interfața de utilizator Jenkins, unele dintre cele mai utilizate pluginuri, și diferite tipuri de joburi. Cursul va include, de asemenea, integrarea prin e-mail, integrarea GitHub și integrarea Maven. Toate aceste caracteristici vor fi explicate și demonstrate cu exemple detaliate în laboratorul de practică.
Acest curs se adresează:
- tuturor celor care doresc să învețe Jenkins și tuturor celor care sunt interesați să își dezvolte abilitățile necesare pentru a putea desfășura un rol de entry-level în Jenkins.
- Beginner and intermediate Developers
- QA Engineers
- Build and Release Engineers
- Technical Project Managers
- DevOps Engineers
Module 1: Continuous Integration, Delivery and Deployment
- DevOps Culture
- DevOps Tools overview
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- Delivery vs. Deployment
Module 2: Introduction to Jenkins
- What is Jenkins?
- Why Jenkins?
- Key aspects of Jenkins
Module 3: Jenkins architecture
- Jenkins architecture
- Jenkins Terminology
Module 4: Installing Jenkins
- Installation steps
Hands-on Lab: Installing Jenkins on the assigned machines.
Module 5: Overview of the Jenkins UI
- Main menu explained
- New item menu
- People menu
- Build history menu
- Manage Jenkins menu
- My Views menu
- Job Status and job store
Demo: Walkthrough the different menus and UI elements of Jenkins. Learn what different icons mean and where you should go when searching for various information.
Module 6: Jenkins server configuration
- Manage Plugins
- Configure Credentials
- Configure System
- System Information
- Global Tool Configuration
Demo: Installing new plugins and checking what plugins are already installed on the server. Learn where you can find the various configuration options for those plugins.
Module 7: Creating your first Job
- Jenkins job Terminology
- Your first Jenkins job walkthrough
- Post-build actions
- Build other projects
Hands-on Lab: Creating Jobs in Jenkins. Use Jenkins to create a set of simple tasks that the server should be able to execute. Learn how different jobs can trigger the execution of other jobs and what kind of information does Jenkins expose for each task that has been executed.
Module 8: Environmental variables
- What is an environment variable?
- Environment variable types
- Access the value of a variable
- Local vs. Global
Module 9: Parameterized jobs
- What are Parameterized jobs?
- Create simple Parameter
- POST Method
- Trigger other build with parameters
Hands-on Lab: Parameterized Jobs. Learn how to use parameters for your Jenkins jobs and also make use of the available environment variables. Customize the type of the parameters and create dynamic ones by making use of available plugins and scripting. Pass parameters to other Jenkins jobs programmatically.
Module 10: Email integration for notification
- E-mail Service Configuration
- E-mail Notifier
- E-mail extension Plugin
Demo: Integrate Jenkins with Gmail services. Short introduction to the types of configurations needed to configure an email server with your Jenkins server. These steps can be used to integrate any emailing service. Customize the contents of the email and the targeted recipients.
Module 11: GitHub integration as Version Control tool (+Lab)
- Version Control System
- VCS Workflow
- Key benefits of VCS
- Jenkins with GitHub
- Pre-requirements for GitHub Integration
Hands-on Lab: Given a git repository that has webhooks registered (GitHub will be used because these are preconfigured), learn how Jenkins can clone the contents of that repository in a workspace and use the files located there to complete one of its tasks. Jenkins can also execute certain actions, such as auto building a job on a git push, based on the webhooks that are configured on the repository.
Module 12: Generating jobs using scripts (+Lab)
- What is a seed job?
- Create and configure seed jobs
- GitHub and seed jobs
Hands-on Lab: Make use of DSL scripts (part of a Jenkins plugin) to programmatically generate Jenkins jobs. Run the scripts from a remote location by using a service such as Git. Understand how this functionality can allow you to create and administrate a very large number of jobs at the same time through the power of scripts.
Module 13: Parallel Builds using pipelines
- What is a Pipeline Job?
- How to write a Pipeline Script
Hands-on Lab: Creating pipelines in Jenkins. Isolate build steps of a more complex task that you want to execute. Use the built in Pipeline Syntax tool to generate a pipeline script. Dispatch and execute only parts of your pipeline on other nodes or in parallel to further optimize the time spent executing the job. Learn how the logs exposed by Jenkins in pipelines can improve the way you debug the failure of a task.
Module 15: Using Maven as a build tool
- What is Maven?
- How Maven works
- Prerequisites for Maven Integration
- Creating a Maven Project
- Creating a pipeline that includes Maven
Module 16: Define building and testing steps
Demo: Creating a simple pipeline that takes a Maven project and creates and tests a build.
Module 17: Create a complete pipeline that tests a build and stores if for deployment
Hands-on Lab: Creating a pipeline that creates and archives a build of an application. Maven will be used as a build tool and the project is located on a remote Git repository. Combine all the accumulated knowledge into one complex task.
Module 18: Adding slave nodes
- What is a Slave node and why use it?
- How to create a Slave node
Hands-on Lab: Expand the Jenkins architecture by adding new nodes. Create a connection between the Jenkins master server and the newly created node. Learn how different machines communicate with each other and what are the prerequisites when thinking of creating a new machine.