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
- Module Introduction
- What is Virtualization
- What are Containers
- Containerization and virtualization differences
- Case study : 100 developer environment
- Difference between win and linux containers
- Docker ecosystem and components
Module 3 : Installing Docker on Linux
- Module Introduction
- Installing Docker on ubuntu 16.04 server
Module 4 : Containers On Ubuntu Docker host
- Module Introduction
- Deploy ,Login,exit contianer
- List,Start, Stop, restart containers
- Were containers are stored
- Woking with container hostnames
- Woking on multiple containers
- Container stats and inspect
- Container networking
- Deleting containers
Module 5 : Docker Images
- Module Introduction
- Introduction to Docker Images
- Docker hub - create your account
- Explore and pull images from docker hub
- Docker commit Build and Push Your own image
- Launch container using your own image
- Build Your own image using dockerFIle
Module 6 : Docker Volumes
- Module introduction
- Introduction to Docker volumes
- Launch a container with volume attached
- Recovering volume
- 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