DevOps: Build CI/CD Pipelines using Jenkins, Docker, Sonar

via Udemy

Go to Course: https://www.udemy.com/course/devops-cicd-with-jenkins-maven-gradle-sonarqube-docker-ansible/

Overview

DisclaimerThis course requires you to download and install the following software and tools before starting:PrerequisitesAWS Account - A valid AWS account is required.Java Development Kit (JDK)Headless Amazon Corretto 11 (java-11-amazon-corretto-headless)OpenJDK 11 (openjdk-11-jre-headless, openjdk-11-jdk-headless)Apache Maven - Version 3.8.5 or the latest.Git - Required for version control.SonarQube - Version 9.3 or the latest.Maven Repository Access - Must have access to maven repo website to build packages.Additional Requirements for Amazon Linux (AWS)If using an Amazon Linux machine on AWS, install the following packages:PostgreSQL 13VimEPEL (Extra Packages for Enterprise Linux) Other Required ToolsNexus ServerGradle ServerJenkins AnsibleEnsure all dependencies are installed before proceeding with the course for a smooth learning experience.The entire DevOps course is based on AWS Environment. 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!Every section of this course has a different set of quizzes, and there is also many project lab assignment that will help you demonstrate what you have learned.Project: Integration of Jenkins with Maven ToolProject: CICD Process - Manual Approach Using Maven, SonarQube, Docker, AWS ECR.Project: CI/CD Process Using JenkinsProject: Continuous Deployment using Ansible PlaybookProject: Jenkins Master and Slave Server ConfigurationIntroduction What are DevOps & benefits? DevOps LifeCycle: Continuous DevelopmentContinuous IntegrationContinuous TestingContinuous FeedbackContinuous DeploymentContinuous MonitoringLinux for DevOpsCreate an AWS AccountCreate an EC2 Instance - Amazon LinuxCreate a key pair - Public & Private KeyMobaXterm - Connect EC2 InstancePutty - Connect EC2 InstanceGitbash - Connect to EC2 InstanceCreate an EC2 Instance - UbuntuFilter InstancesAccess Instance using User Name & Password (Without using Private key)More about private & public keyPasswordless authentication from Linux to Ubuntu ServerLab - Access the Amazon Linux Instance other than the default userLab - Access the Ubuntu Linux Instance other than the default userLab - Passwordless Authentication between Amazon Linux & Ubuntu and Vice versaMaven 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 mavenSonarQube 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 SonarQubePostgreSQL 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 SonarQubeIntegration of Maven with Nexus Repositories 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 RepositoryIntegration of Gradle with Nexus Repositories 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 DeploymentIntegrate 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 JenkinsCICD 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 ProcessCICD 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 PipelineContinuous 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 ServerJenkins 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

Skills

Reviews