Embark on a comprehensive journey into the world of DevOps from scratch, using real-time hands-on projects to create CI/CD solutions. Learn how to deploy Docker containerized applications into AWS Linux servers using GitHub repositories.
Explore the automation tool Ansible to automate deployment processes across various machines using Docker containers.This course is designed for beginners, assuming no prior knowledge of DevOps tools, and starts from the fundamentals, including basic Linux commands.
By the end of this course, you will gain practical project experience in understanding how various DevOps tools are interconnected to build a robust automation infrastructure.
Course Overview
Below is a high-level overview of the topics we will cover in this course:
Introduction to Servers and Deployment
- Understanding Hosting Servers and Application Servers
- Demonstration of the Deployment process
- Exploring how code is hosted on servers and accessed via browsers
- Creation of Jenkins Jobs for application deployment on servers
Setting Up AWS and Linux for CI/CD
- Current design drawbacks and the advantages of using Linux OS
- Creating and launching an AWS Linux instance to manage Jenkins
- Connecting to a Linux server through SSH
- Installing JAVA, Jenkins, Maven, and GIT for deployment jobs
Application Deployment with Jenkins and Docker
- Creating a new Linux server (App Server) in AWS for application deployment
- User creation in the server for deployment management
- Connecting Jenkins Server to App Server via SSH Plugin
- Creating a Jenkins Job to deploy the app into the App Server
Containerization and Automation with Docker and Ansible
- Docker installation on App Server
- Creating a Docker file for Tomcat Server installation and app deployment
- Generating an image and deploying it into a container
- Accessing the application through public IP and port on the container
- Ansible installation and its role in deployment
- Creating an Ansible Playbook to automate Docker-related commands
- Resolving issues with starting and stopping containers using Ansible yml files
- Establishing connection through SSH Key and hosts file using Ansible
- Executing Ansible Playbook commands in Jenkins Job for automatic deployment on the App server
Advanced Deployment Techniques and Jenkins Pipeline
- Setting up another Linux App Server B via AWS
- User creation and connection establishment between servers through SSH keys
- Pinging App Server B from App Server A using Ansible commands for connection verification
- Developing a yml playbook file to push Docker images to Docker Hub from Server A
- Modifying Jenkins jobs to deploy applications on Server B using Ansible Commands
- Implementing post-build actions to run automated tests after code deployment
- Understanding pipelines and the basics of Jenkins Pipeline
- Creating a JenkinsFile for entire job configuration and end-to-end deployment
- Checking the JenkinsFile into the code repository to automate the CI/CD process through Jenkins