Duration: 5 days – 35 hrs.
Overview
The course is designed by Devops Subject Matter Experts to help you understand Devops concepts and work on tools, Github, Jenkins, Sonarqube and Nexus, Docker to create Continuous Integration and Continuous Deployment Pipeline which uses Jenkins, with Sonarqube, Nexus, Docker, Kubernetes and Ansible.
Objectives
- Understand the core concepts of DevOps
- Create and manage repositories on Github
- Install and configure Jenkins Master node
- Install and Configure Jenkins Slave Node
- Create a Pipeline job to automate git clone, maven package,
- Add spring boot java webapp server to pipeline
- Integrate sonarqube and sonar static code analysis in pipeline job
- Integrate Nexus and Archive artifacts in pipeline job
- Understand docker and kubernetes
- Install docker, create your own docker image, dockerhub and docker volume
- Integrate jenkins with docker in CI/CD pipeline
- Ansible automation of web infrastructure ,user and group creation
Course Outline-Day 1 and 2 Jenkins CI/CD
Module 1: DevOps Big Picture (Theory)
- What and why of Devops
- Devops Tools – Overview and Usecase
- Source Control Management (SCM Tools)
- Continuous Integration
- Static ode Analysis Tool
- Storage Artifacts
- Continuous Deployment
- Containerization
- Configuration Management
Module 2: Devops in Action (Hands on Lab by students)
- SCM Live demo
- Github – Create an account and fork your application code
- Git clone the github code, use maven to compile and package java source code
- Deploy .jar file manually
- Continuous Integration Tool – (Hands on Lab by students)
- Jenkins – Deploy Jenkins on Ubuntu 14.04 server (each student will deploy his Jenkins server)
- Continuous Integration setup – Jenkins and Github
- Code Packaging automation – (Hands on Lab by students)
- Automation Maven test, Compile and Package (.jar) using Jenkins
- Static Code Analysis – (Hands on Lab by students)
- Understand sonarqube
- Deploy and configure sonarqube
- Students to Integrate Jenkins (CI) server with Sonarqube (lab by students)
- Sonarqube –static code analysis and set quality gates
- Storage Artifact – (Hands on Lab by students)
- Understand Nexus
- Deploy and configure nexus
- Nexus storage artifact integration
- Store your end software products in Nexus
- Continuous Deployment – (Hands on Lab by students)
- Add slave nodes to Jenkins
- Automate deployment of your .jar file to server
- Building Pipeline scripts and stages in SDLC
- Add Cucumber test- automation in pipeline
- Add OWSAP web Application vulnerability check in pipeline
- Day 3: Docker and Jenkisn with docker pipeline
Day 1
Module 1: Course Overview
Module 1.1: Introduction to the course
Module 2: Understanding Docker
Module 2.1: Module Introduction
Module 2 .2: What is Virtualization
Module 2.3: what are Containers
Module 2.4: Containerization and virtualization differences
Module 2.5: Case study: 100 developer environments
Module 2.6: difference between win and Linux containers
Module 2.7: Docker ecosystem and components
Module 3: Installing Docker
3.1: Module Introduction
3.3: Install Docker on centos 7
Module 4: Containers on Centos 7 Docker host
4.1: Module Introduction
4.2: Deploy, Login, exit container
4.3: List, Start, Stop, restart containers
4.4 where containers are stored
4.5: working with container hostnames
4.6 working on multiple containers
4.7 Container stats and inspect
4.8 Container networking
4.9 Deleting containers
Module 5: Docker Images
5.1: Module Introduction
5.2: Introduction to Docker Images
5.3: Docker hub – create your account
5.4: Explore and pull images from docker hub
5.5: Docker commit Build and Push Your own image
5.6: Launch container using your own image
5.7: Build Your own image using dockerFIle
Module 6: Jenkins with docker pipeline
6.1: Create a pipeline which will dockerise the application and deploy application on a docker container
Course Outline Day 3 Docker
Module 1: Course Overview
Module 1.1: Introduction to the course
Module 2: Understanding Docker
1 – Module Introduction
2 .2 – What is Virtualization
3 what are Containers
4: Containerization and virtualization differences
5: Case study: 100 developer environments
6: difference between win and Linux containers
7: Docker ecosystem and components
Module 3: Installing Docker on Linux
1: Module Introduction
2 – Installing Docker on ubuntu 16.04 server
Module 4: Containers On Ubuntu Docker host
1: Module Introduction
2: Deploy, Login, exit container
3: List, Start, Stop, restart containers
4 where containers are stored
5: working with container hostnames
6 working on multiple containers
7 Container stats and inspect
8 Container networking
9 Deleting containers
Module 5: Docker Images
1: Module Introduction
2: Introduction to Docker Images
3: Docker hub – create your account
4: Explore and pull images from docker hub
5: Docker commit Build and Push Your own image
6: Launch container using your own image
7: Build Your own image using Docker File
Module 6: Docker Volumes
1: Module introduction
2: Introduction to Docker volumes
3: Launch a container with volume attached
4: Recovering volume
5: Module Summary
Course Outline-Day 4 Ansible essentials
Module 1: Ansible Big Picture (Theory)
What and why of Ansible
Ansible use cases and terminologies
Controller server
Nodes
Playbook
Ansible tower
Module 2: Ansible management server deployment (Hands on Lab by students)
Ansible – Deploy a centos7 server
Ssh to centos7 server
Install and configure Ansible
Create password less authentication keys
Define nodes to be managed by ansible control server
Module 2: Ansible Node server deployment ( Hands on Lab by students)
Deploy a RHEL server + 1 ubuntu 16.04 server
Ssh to centos7 server
Create password less authentication keys
Module 3: Ansible HTTPD Playbook for RHEL node( Hands on Lab by students)
Create a httpd playbook directory
Write .yml file
write httpd package install code for RHEL server
write httpd service restart code
write template resource type to push index.html and log.png to node
write user and group creation code
Apply the playbook on centos node and validate if website is up
Module 4: Ansible Apache2 Playbook for ubuntu node(Hands on Lab by students)
Create an apache2 playbook directory
Write .yml file
write apache2 package install code for ubuntu server
write apache2 service restart code
write template resource type to push index.html and log.png to node
write user and group creation code
Apply the playbook on ubuntu node and validate if website is up
Module 5: Ansible Windows 2016 server node deployment (Hands on Lab by students)
Deploy a windows 2016 server
Configure it as windows node under ansible management
Module 6: Playbook for windows 2016 node (Hands on Lab by students)
Create an iis playbook directory
Write resource code to automate iis role on windows server
Apply the playbook on Windows node and validate if website is up
Course Outline-Day 5 – Jenkins with Docker and Ansible Integration
Module 1: Kubernetes (Hands on lab by students)
Kubernetes architecture overview
Deploy Kubernetes master
Deploy Kubernetes minion’s node 1
Module 2: Jenkins with Kubernetes Integration ( Hands on lab by students)
Create a new pipeline script which deploys application on Kubernetes
configure a docker slave node with Jenkins
fork source code
Run job which uses docker, SonarQube, nexus by Jenkins CI/CD pipeline
Module 3: Jenkins with ansible integration (Hands on lab by students)
Create Jenkins Job to compile package a java webapp file
Define ansible nodes
Integrate ansible in Jenkins pipeline to deploy web app to Ubuntu servers