
Explore how DevOps combines best practices and tools to automate continuous integration and delivery on Linux servers using AWS, Docker, Ansible, and Jenkins.
Understand deployment basics and CI/CD concepts, from local code to a hosted server, through an application server like Tomcat, building deployable artifacts, and mapping a domain name to an IP.
Deploy a hello world app on a tomcat server by building with maven, creating a war file, deploying to webapps, and verify on localhost:8080, with Jenkins for CI/CD.
Learn to spin up a Jenkins deployment workflow on Windows, integrate with GitHub, build with Maven, and deploy a web app war to Tomcat, outlining CI/CD goals for Linux-focused workflows.
Automate build and testing on every git commit using Jenkins and GitHub hooks, packaging as a war file, and deploy to a local Tomcat server as part of CI/CD.
Launch an AWS account and spin up Linux EC2 instances, install Java, Maven, and Jenkins on one, then deploy war files to a separate Tomcat server.
Launch an Amazon Linux 64-bit EC2 instance from the AWS console, configure the security group to open port 8080, and set Jenkins with a key pair and tags.
Learn to connect to AWS linux servers using an SSH client, authenticate with a PEM key, and navigate as ec2-user or root with commands like pwd, cd, and ls.
Learn to install Java on a Linux server using yum, upgrade to Java 1.8, and configure JAVA_HOME and PATH via the bash profile.
Locate the java installation under linux, set JAVA_HOME in the bash profile, and update PATH. Verify with which java, and note that Maven is needed to build projects (next lecture).
Install maven on Linux using wget to download the binary, extract the tarball, move it to /opt, and update bash profile to set maven home and path.
Learn to install Jenkins on Linux, start the Jenkins service, access it via the server IP and port 8080, and unlock with the initial admin password before installing plugins.
Learn to deploy a Jenkins-built war artifact to a separate AWS Linux server via SSH, using the publish over ssh plugin, and set up a new instance with ec2-user authentication.
Use the publish over ssh plugin in Jenkins to connect to a new EC2 server and deploy the web app war file via ssh.
Learn how Docker enables OS-level virtualization to create containers with a fresh OS and dependencies, enabling packaging, deployment, and parallel Selenium test execution in automation workflows.
Describe how Docker images bundle Selenium, Java, and Chrome to run tests inside containers, and contrast containers with VMs while introducing a Dockerfile-driven image creation.
Compare containers and virtual machines, showing how containers share the host operating system memory and resources for faster startup and performance, while virtual machines allocate dedicated guest operating system resources.
Install Docker on Windows by downloading Docker Desktop, signing up for Docker Hub, and ensuring Windows 10 Pro or Enterprise; run the exe and verify with docker --version.
Learn to use docker hub to pull and share images, deploy selenium standalone chrome containers, and map ports for running tests in dockerized environments.
Create a Tomcat container by pulling the official Tomcat image from Docker Hub, then run and map its 8080 port to the hosting server, creating a fresh Linux container.
Log into the container, locate Tomcat and its web apps folder, copy the war file from the host to the container, and access the app on port 88 after deployment.
Create a custom Dockerfile to automate deployment using a Tomcat base image. Copy the web app war and dist files into web apps folder, then build the image for deployment.
Learn to build a docker image from a dockerfile, run and manage containers with port mapping, and deploy a tomcat-based app on a linux server using Jenkins for ci/cd.
Learn to establish ssh connections between linux servers, generate a public-private key pair with ssh-keygen, and copy the public key to remote authorized_keys for passwordless login from the application server.
Generate SSH keys, copy the public key to remote and local authorized_keys, and establish key-based SSH connections for Linux servers and automation tools like Ansible.
Learn how ansible automates commands with yaml playbooks and ssh, enabling deployment to multiple servers from a single host in Jenkins-driven ci/cd pipelines.
Install Ansible with Python's pip, then craft a playbook yaml to stop and remove Docker containers and images, and redeploy across localhost and a server via Jenkins.
Create an ansible playbook to automate docker deployment. Validate yaml syntax and use a hosts inventory to stop, remove, build, and run containers and images.
Run an Ansible playbook to deploy and manage Docker containers and a web app across local and remote servers via ssh and an inventory file.
Learn to configure a Jenkins ci/cd pipeline that deploys an app to test or production via Ansible, enabling continuous delivery and deployment through a three-server flow (Jenkins, controller, deployment server).
(This course requires you to download Docker. If you are a Udemy Business user, please check with your employer before downloading software) Lets get into Devops World from Scratch with real time Hands On Projects to build Solutions for CI/CD through Jenkins with deploying Docker Containerized apps into AWS Linux Servers from Git hub.
We will also learn Automation tool called Ansible which will generate Scripts to automate the process of Deployment using Docker Containers in various machines.
This Course assumes that students do not have any prior knowledge on Devops tools and will start everything from Scratch including Linux Basic Commands.
By end of this course, You will get Practical Project experience in understanding how all the Devops tools connected together to build robust Automation Infrastructure.
Below are the topics on high level we will go over in this course :
What are Hosting Servers and Application Servers?
Demo to understand what Deployment is?
How code developed is hosted on the servers and accessed through browser?
Demo on Jenkins Job creation for deployment of app in Server.
Drawbacks with current design and why to choose Linux OS
Create and Launch AWS Linux Instance to manage Jenkins
Connect to Linux Server through SSH
Install JAVA on Linux Server
Install Jenkins, Maven and GIT to have job for Deployment
Create new Linux server (App Server) in AWS for Deploying App
Create User in Server which can manage deploy
Connect Jenkins server to App Server through SSH Plugin
Create a Jenkin Job which deploys app into App Server
Install Docker in App Server
Create a Docker file which Install TomCat Server and Deploy App
Create Image from the file and deploy into Container
Access the App through public Ip:port which is running on Container
Install Ansible and its need for Deployment
Create Ansible Playbook to automate all docker related commands
Fix the problems of stopping and starting containers through Ansible yml file
Create SSH Key and hosts file for establishing connection through Ansible
Pass the Ansible Playbook commands into Jenkins Job for automatic Deployment in App server
Create another Linux App Server B through AWS
Create User in Server which can manage deploy
Establish connection to App Server B from App server A through Ssh keys
Ping the App Server B from Server A through Ansible command for connection check
Develop a yml playbook file which pushes the docker image to Docker Hub in Server A
Modify the Jenkins job to deploy the App into Server B through Ansible Commands
Adding Post build action run automated tests after new Code successfully Deployed
What is Pipeline and understand the basics of Jenkin Pipeline
Creating the JenkinsFile with the complete job configuration design to run end to end deployment process
Checkin the JenkiFile into Code repo and automate the complete CI/CD process through Jenkins!!
Wish you all the Best and See you in the Course :)