Course 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
Course 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 Duration:
- 5 Days ( 35 hours )
Course Content:
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 vulnerbility check in pipeline
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 environment
- 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 contianer
- 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 dockerFIle
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 a 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 a 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 : Kuberentes ( Hands on lab by students)
- Kuberentes architecture overview
- Deploy Kuberenetes master
- Deploy Kuberentes minnions node 1
Module 2 : Jenkins with Kuberentes 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 piepline
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