What you'll learn:
- DevOps Lifecycle : CICD
- Maven Lifecycle: Default, Clean & Site
- Maven Tool
- SonarQube tool in Continuous Integration
- PostgreSQL Database for SonarQube
- Integrate Nexus with Maven
- Integrate Nexus with Gradle
- CICD Process - Manual Approach Using Maven, SonarQube, Docker, AWS ECR
- CICD Process Using Jenkins
- Continuous Deployment using Ansible Playbook
- Jenkins Master and Slave Server
- How Jenkins Master and Slave Architecture work?
The entire DevOps course is based on AWS Environment.
Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes.
It can be used to automate almost anything.
Go faster and learn how to build strong automated processes like Pipelines, CI/CD Workflow, and more!
In this course module, you will learn in addition to Jenkins, crossing technologies that go hand in hand with this service, such as Docker, AWS, Ansible, Git, Maven, Gradle, Pipelines, and many more!
Introduction
What are DevOps & benefits?
DevOps LifeCycle :
Continuous Development
Continuous Integration
Continuous Testing
Continuous Feedback
Continuous Deployment
Continuous Monitoring
Linux for DevOps
Create an AWS Account
Create an EC2 Instance - Amazon Linux
Create a key pair - Public & Private Key
MobaXterm - Connect EC2 Instance
Putty - Connect EC2 Instance
Gitbash - Connect to EC2 Instance
Create an EC2 Instance - Ubuntu
Filter Instances
Access Instance using User Name & Password (Without using Private key)
More about private & public key
Passwordless authentication from Linux to Ubuntu Server
Lab - Access the Amazon Linux Instance other than the default user
Lab - Access the Ubuntu Linux Instance other than the default user
Lab - Passwordless Authentication between Amazon Linux & Ubuntu and Vice versa
Maven Tool
Overview of Maven Tool
Maven Lifecycle: Default, Clean & Site
Repositories used in Maven
Lab - Build the Springboot package in AWS Environment
Lab: Location of Artifacts & built package dependencies
Lab: Exploring pom.xml file
Lab: Execute & access the package application
Lab: Exploring dependencies of a built package
Lab: Build Lifecycle
Lab: Build a Web Application project using maven
Lab: Build a Web Application project using maven
SonarQube tool in Continuous Integration
About SonarQube tool & its features
Installation of SonarQube
Check SonarQube logs & configuration
SonarQube Service & port
Access SonarQube via URL
Configure Maven (CI Server)
Checkout & build the project using Maven
Integrate Maven with SonarQube to check the code quality
Add Sonar-maven-plugin
Lab - Bad code detected by SonarQube
Lab - Rectified the code & re-check by SonarQube
PostgreSQL Database for SonarQube
About PostgreSQL Database
Setup PostgreSQL Database with SonarQube
Create Database, User, and Grant Privileges
Sonarqube Configuration file sonar properties
Troubleshooting PostgreSQL Database for SonarQube
Integrate Nexus with Maven
Install & configure Nexus Server
Configure Sonatype Nexus Repository Manager
Configure CI Server to check out the project & Build the package
Configure springboot maven nexus deploy
Nexus Requirements in the pom.xml
Define Nexus login credentials
Deploy the Artifacts to Nexus Repository
Integrate Gradle with Nexus
Installation of Nexus server
Configuration of Gradle Server as CI
Build the springboot tomcat project using gradle tool
Add plugin in build.gradle
Add Nexus repositories details in build.gradle
Use if-else condition in build.gradle
Add credentials in gradle properties
Publish the project artifacts into Nexus Server
Download the Artifacts using Continuous Deployment
Integrate Jenkins with Git & Maven project
About Jenkins
Overview of Jenkins integration with GitHub & how to build a java based project
Installation of Jenkins, Java, Maven & Git on EC2 Instance
Configure Jenkins on EC2 Instance
Configure GitHub Credentials & Maven Location on Jenkins
Create & Build the Java-based project using Maven Tool
Add Maven Plugins in Jenkins
CICD Process - Manual Approach Using Maven, SonarQube, Docker, AWS ECR
Overview of CICD Process
Configure Build Server and Install various tools like Java, Git, Maven, Docker
Checkout & Build the Project using Maven Tool
Install SonarQube on Ubuntu Instance
Add Sonar-maven-plugin
Start SonarQube Service
Check the Code Quality
Overview of Dockerfile to Create a Docker Image
Create a Repository in AWS ECR
Create a Role to Provide Access One AWS Service (CI Server) to another (AWS ECR)
Build the Docker Image using Dockerfile
Push the Docker Image to AWS ECR Repository
Create a CD Server - Continuous Deployment
Pull & Execute the Docker Image from ECR to CD Server
Recap the Entire CICD Process
CICD Process Using Jenkins
Overview of CICD Process using Jenkins
Install a Jenkins Server (CI Server)
Add maven in Jenkins Server from Global Tool Configuration
Create a Jenkins pipeline for Checkout & build the project
Install SonarQube Server using Docker container
Generate the token from SonarQube Server
Add Sonar Login Credentials on Jenkins Server
Install SonarQube Scanner plugins on Jenkins
Add SonarQube on Jenkins Server
Pipeline for SonarQube Scanner for Jenkins
Pipeline for success or aborted due to quality gate failure
Configure a webhook in your SonarQube Server
Add stage in pipeline to create a Docker Image using DockerFile
Create an IAM User to have access to AWS ECR and add it to Jenkins Server
Add stage in pipeline to Push the Docker Image to AWS ECR
Configure SES to send an email notification
Integrate SES with Jenkins using pipeline
Receive an Email Notification after the success or failure of Jenkins Pipeline
Continuous Deployment using Ansible Playbook
Configure a CD Server using Ubuntu Server
Ansible Setup on Jenkins Server
Install packages on CD Server
Create a Playbook to establish a connection from CD Server to AWS ECR
Playbook to pull the image from ECR to CD Server
Playbook to run the Container using the Docker Image
Access the Springboot Application running on CD Server
Jenkins Master and Slave Server
Overview of Jenkins master & slave server
How does Jenkins Master and Slave Architecture work?
Lab - Install Jenkins Master Server in AWS Environment
Lab - Configure Jenkins Master Server
Lab - Manager Nodes and Clouds
Lab - Setting up Slaves with Jenkins Master
Lab - Troubleshooting while adding a slave server
Lab - Create a job for the Slave Using Freestyle project
Lab - Create a job for Slave Using a pipeline project (Springboot Appl)
Lab - Create a job for Slave Using a pipeline project (Springboot Appl)
Configurations in slave machine
Lab - Establish connectivity between Master & Slave Using SSH keys
Lab - Launch agent on Slave Machine
Lab - Create a job for building a Springboot project on Slave Machine
Last Lecture