Start Date
Saturday,
21th December 2024
Duration
Total Hours: 50
DevOps: 8 Hours | Terraform: 21 Hours | Ansible: 21 Hours
Sessions
Seven Saturdays
09:30 AM to 05:30 PM
Access to
One-year AWS access through student ID will be provided.
Learn the foundational principles
and advanced capabilities of
Terraform and Ansible to integrate
seamlessly with CI/CD pipelines and
infrastructure as code (IaC) practices.
The Certified
DevOps
Specialist
with Terraform and Ansible
Master the tools that power modern DevOps workflows
Introduction
Master the critical tools and practices of DevOps with our comprehensive program on DevOps Fundamentals, Terraform, and Ansible. Designed for professionals seeking to streamline infrastructure management, automate deployment, and scale operational efficiency, this training equips you with hands-on experience in managing modern, cloud-based environments. Learn the foundational principles and advanced capabilities of Terraform and Ansible to integrate seamlessly with CI/CD pipelines and infrastructure as code (IaC) practices.
Who can Attend?
This program is ideal for:
Program Highlights
- Comprehensive Coverage: Fundamentals of DevOps, Terraform, and Ansible.
- Hands-On Labs: Real-world scenarios in AWS cloud and on-premise setups.
- Practical Implementation: Build and deploy infrastructure, manage configurations, and optimize workflows.
- Dynamic Learning: Focus on CI/CD methodologies, IaC, and secure configuration management.
- Interactive Modules: Live instructor-led sessions, project assignments, and peer interaction.
- Industry-Relevant Tools: Gain expertise in Terraform, Ansible, and key CI/CD tools.
Job Opportunities and Roles
After completing this program, participants can target roles such as
DevOps Engineer | Cloud Automation Engineer | Infrastructure Architect | Site Reliability Engineer (SRE) | Configuration Management Specialist | Continuous Integration/Continuous Deployment (CI/CD) Specialist
Detailed Topics
8 Hours
Fundamentals
- Why and what is DevOps.
- Basic intro about DevOps and Goals.
- How DevOps plays important roles in Projects/Organization.
- What’s CI/CD
- CI/CD Methodologies
- Key Tools for CI/CD
24 Hours
Getting Started & Setting Up Labs
- Choosing a right Infrastructure as Code tool
- Installing Terraform – Windows Users
- Installing Terraform – MacOS and Linux Users
- Choosing Right IDE for Terraform IAC development
- Setting up AWS account
Deploying Infrastructure with Terraform
- Creating first EC2 instance with Terraform
- Understanding Resources & Providers
- Understanding Resource & Providers – Part 2
- Destroying Infrastructure with Terraform
- Understanding Terraform State files
- Understanding Desired & Current States
- Challenges with the current state on computed values
- Terraform Provider Versioning
- Types of Terraform Providers
Read, Generate, Modify Configurations
- Understanding Attributes and Output Values in Terraform
- Referencing Cross-Account Resource Attributes
- Terraform Variables
- Approaches for Variable Assignment
- Data Types for Variables
- Fetching Data from Maps and List in Variable
- Count and Count Index
- Conditional Expressions
- Local Values
- Terraform Functions
- Data Sources
- Debugging in Terraform
- Terraform Format
- Validating Terraform Configuration Files
- Load Order & Semantics
- Dynamic Blocks
- Tainting Resources
- Splat Expressions
- Terraform Graph
- Saving Terraform Plan to File
Terraform Provisioners
- Understanding Provisioners in Terraform
- Types of Provisioners
- Implementing remote-exec provisioners
- Implementing local-exec provisioners
Terraform Modules & Workspaces
- Understanding DRY principle
- Implementing EC2 module with Terraform
- Variables and Terraform Modules
- Terraform Registry
- Terraform Workspace
- Implementing Terraform Workspace
Remote State Management
- Integrating with GIT for team management
- Security Challenges in Committing TFState to GIT
- Remote State Management with Terraform
- Implementing S3 Backend
- Challenges with State File locking
- Integrating DynamoDB with S3 for state locking
- Terraform State Management
- Importing Existing Resources with Terraform Import
Security Primer
- Handling Access & Secret Keys the Right Way in Providers
- Terraform Provider Use Case – Resources in Multiple Regions
- Handling Multiple AWS Profiles with Terraform Providers
- Terraform & Assume Role with AWS STS
- Sensitive Parameter
24 Hours
Introduction to Ansible
- Ansible terminology
- Ansible required environment setup
Initial Setup and Configuration
- Ansible Core installation (package method)
- Ansible component locations
- Ansible documentation
- Ansible configuration file
- inventory (hosts) file (Linux and Windows nodes)
- (gathering) system facts
- Local facts
Ansible (ad-hoc) Command Line Usage
- Usage in single module control
- Testing a module across multiple nodes
Ansible Playbooks
- Layout of playbook sections and blocks
- Variable creation and usage
- Sections: hosts, variables, tasks, handlers, checking for success/failure
- Controls: loops, conditionals, tags, notifications, plugins, filters, and lookups
- Using modules in playbooks
- Running as root
- Conditionals
- Loops
- Status Checking
- Filters
- Lookups
- Plugins (connection)
Ansible Modules
- Layout of an Ansible module
- Linux modules : file, yum, systemd, cron, user, shell, filesystem
- Using the windows specific (win_) modules
- Common Linux and Windows modules
Roles Ansible
- Overview of a role
- Creating a role (structure)
- Using (a) role(s)
- Packaging up a role
- Ansible galaxy – capabilities and usage with roles
- (local) git code / role repo
- (remote) git repo role access
- Define role dependencies
- Download role definitions (ansible galaxy)
- Component files
- Including roles
- Importing roles
- Dependency specifications
Managed Nodes
- requirements for a Linux managed node
- setup of a Linux managed node
- requirements for a Windows managed node
- setup of a Windows managed node
- inventory and access control information on the control node
Dynamic Inventory Overview
- Understanding static vs. dynamic inventory.
- Importance and benefits of dynamic inventory in managing large-scale infrastructures.
- Comparison of dynamic inventory with static inventory.
Dynamic Inventory Sources
- Using cloud providers (AWS, Azure, GCP) as dynamic inventory sources.
- Integration with external APIs for dynamic inventory generation.
- Managing on-premise resources using scripts for dynamic inventory.
Creating Dynamic Inventory Scripts
- Writing custom Python scripts for dynamic inventory.
- Structuring output in JSON format for Ansible compatibility.
- Testing dynamic inventory scripts.
Detailed Topics
8 Hours
Fundamentals
- Why and what is DevOps.
- Basic intro about DevOps and Goals.
- How DevOps plays important roles in Projects/Organization.
- What’s CI/CD
- CI/CD Methodologies
- Key Tools for CI/CD
24 Hours
Getting Started & Setting Up Labs
- Choosing a right Infrastructure as Code tool
- Installing Terraform – Windows Users
- Installing Terraform – MacOS and Linux Users
- Choosing Right IDE for Terraform IAC development
- Setting up AWS account
Deploying Infrastructure with Terraform
- Creating first EC2 instance with Terraform
- Understanding Resources & Providers
- Understanding Resource & Providers – Part 2
- Destroying Infrastructure with Terraform
- Understanding Terraform State files
- Understanding Desired & Current States
- Challenges with the current state on computed values
- Terraform Provider Versioning
- Types of Terraform Providers
Read, Generate, Modify Configurations
- Understanding Attributes and Output Values in Terraform
- Referencing Cross-Account Resource Attributes
- Terraform Variables
- Approaches for Variable Assignment
- Data Types for Variables
- Fetching Data from Maps and List in Variable
- Count and Count Index
- Conditional Expressions
- Local Values
- Terraform Functions
- Data Sources
- Debugging in Terraform
- Terraform Format
- Validating Terraform Configuration Files
- Load Order & Semantics
- Dynamic Blocks
- Tainting Resources
- Splat Expressions
- Terraform Graph
- Saving Terraform Plan to File
Terraform Provisioners
- Understanding Provisioners in Terraform
- Types of Provisioners
- Implementing remote-exec provisioners
- Implementing local-exec provisioners
Terraform Modules & Workspaces
- Understanding DRY principle
- Implementing EC2 module with Terraform
- Variables and Terraform Modules
- Terraform Registry
- Terraform Workspace
- Implementing Terraform Workspace
Remote State Management
- Integrating with GIT for team management
- Security Challenges in Committing TFState to GIT
- Remote State Management with Terraform
- Implementing S3 Backend
- Challenges with State File locking
- Integrating DynamoDB with S3 for state locking
- Terraform State Management
- Importing Existing Resources with Terraform Import
Security Primer
- Handling Access & Secret Keys the Right Way in Providers
- Terraform Provider Use Case – Resources in Multiple Regions
- Handling Multiple AWS Profiles with Terraform Providers
- Terraform & Assume Role with AWS STS
- Sensitive Parameter
24 Hours
Introduction to Ansible
- Ansible terminology
- Ansible required environment setup
Initial Setup and Configuration
- Ansible Core installation (package method)
- Ansible component locations
- Ansible documentation
- Ansible configuration file
- inventory (hosts) file (Linux and Windows nodes)
- (gathering) system facts
- Local facts
Ansible (ad-hoc) Command Line Usage
- Usage in single module control
- Testing a module across multiple nodes
Ansible Playbooks
- Layout of playbook sections and blocks
- Variable creation and usage
- Sections: hosts, variables, tasks, handlers, checking for success/failure
- Controls: loops, conditionals, tags, notifications, plugins, filters, and lookups
- Using modules in playbooks
- Running as root
- Conditionals
- Loops
- Status Checking
- Filters
- Lookups
- Plugins (connection)
Ansible Modules
- Layout of an Ansible module
- Linux modules : file, yum, systemd, cron, user, shell, filesystem
- Using the windows specific (win_) modules
- Common Linux and Windows modules
Roles Ansible
- Overview of a role
- Creating a role (structure)
- Using (a) role(s)
- Packaging up a role
- Ansible galaxy – capabilities and usage with roles
- (local) git code / role repo
- (remote) git repo role access
- Define role dependencies
- Download role definitions (ansible galaxy)
- Component files
- Including roles
- Importing roles
- Dependency specifications
Managed Nodes
- requirements for a Linux managed node
- setup of a Linux managed node
- requirements for a Windows managed node
- setup of a Windows managed node
- inventory and access control information on the control node
Dynamic Inventory Overview
- Understanding static vs. dynamic inventory.
- Importance and benefits of dynamic inventory in managing large-scale infrastructures.
- Comparison of dynamic inventory with static inventory.
Dynamic Inventory Sources
- Using cloud providers (AWS, Azure, GCP) as dynamic inventory sources.
- Integration with external APIs for dynamic inventory generation.
- Managing on-premise resources using scripts for dynamic inventory.
Creating Dynamic Inventory Scripts
- Writing custom Python scripts for dynamic inventory.
- Structuring output in JSON format for Ansible compatibility.
- Testing dynamic inventory scripts.
Final Certification
“Certified DevOps Specialist in Terraform and Ansible”
will be issued upon successful completion of all assessments and the capstone project.
Register Here
Mentor Profile
Papa Rao
Corporate Trainer and DevSecOps Consultant
Mr. Rao, a distinguished mentor at RACE with 24+ years of experience, excels in various domains, including AWS, Azure, GCP, Openstack, and Complete DevSecOps. He is well-versed in portal technologies like Sharepoint, Weblogic, WebSphere, WebCenter, and Vignette Application Portal, as well as document management systems like Documentum, FileNet, Intervowen, and BizTalk. Mr. Rao’s profound understanding of SOA 11G, WebSphere Process Server, Commerce Server, and Identity and Access Management products like Microsoft Forefront, OracleIM, AM, Siteminder, and TivoliIM, AM makes him an invaluable asset for comprehensive corporate training solutions.
Sample Capstone Projects
Automating Multi-Tier Web Application Deployment with Terraform and Ansible
In this capstone project, you will design, automate, and deploy a multi-tier web application infrastructure using Terraform and Ansible. The project involves provisioning cloud infrastructure with Terraform and configuring the application stack with Ansible. This hands-on project will reinforce your understanding of Infrastructure as Code (IaC), configuration management, and CI/CD practices.
Cloud Cost Optimization with Terraform and Ansible
In this capstone project, participants will design and implement a cost-efficient cloud infrastructure using Terraform and Ansible. The project focuses on optimizing resource usage by leveraging auto-scaling, right-sizing instances, and using spot instances for non-critical workloads. Additionally, participants will use Ansible to automate resource monitoring, tagging, and reporting, ensuring effective cost tracking and governance. This project emphasizes balancing performance, scalability, and cost-effectiveness in cloud environments.
Automated Disaster Recovery Setup with Terraform and Ansible
This project involves creating a robust disaster recovery (DR) solution using Terraform for infrastructure provisioning and Ansible for configuration and replication. Participants will set up a primary and secondary cloud environment, automate database replication, and configure failover mechanisms to ensure minimal downtime during outages. Using dynamic inventory, the DR system will be tested and validated for seamless recovery, emphasizing high availability and fault tolerance in critical infrastructure.
Sample Capstone Projects
Automating Multi-Tier Web Application Deployment with Terraform and Ansible
In this capstone project, you will design, automate, and deploy a multi-tier web application infrastructure using Terraform and Ansible. The project involves provisioning cloud infrastructure with Terraform and configuring the application stack with Ansible. This hands-on project will reinforce your understanding of Infrastructure as Code (IaC), configuration management, and CI/CD practices.
Cloud Cost Optimization with Terraform and Ansible
In this capstone project, participants will design and implement a cost-efficient cloud infrastructure using Terraform and Ansible. The project focuses on optimizing resource usage by leveraging auto-scaling, right-sizing instances, and using spot instances for non-critical workloads. Additionally, participants will use Ansible to automate resource monitoring, tagging, and reporting, ensuring effective cost tracking and governance. This project emphasizes balancing performance, scalability, and cost-effectiveness in cloud environments.
Automated Disaster Recovery Setup with Terraform and Ansible
This project involves creating a robust disaster recovery (DR) solution using Terraform for infrastructure provisioning and Ansible for configuration and replication. Participants will set up a primary and secondary cloud environment, automate database replication, and configure failover mechanisms to ensure minimal downtime during outages. Using dynamic inventory, the DR system will be tested and validated for seamless recovery, emphasizing high availability and fault tolerance in critical infrastructure.