Configuration management is a process for maintaining computer systems, servers, and software in a desired, consistent state. It’s a way to make sure that a system performs as it’s expected to as changes are made over time. And to automate this process Configuration Management Tools are used such as Ansible and Terraform.
Ansible: Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems.
Terraform: HashiCorp Terraform is an infrastructure as code tool that lets you define both cloud and on-prem resources in human-readable configuration files that you can version, reuse, and share. You can then use a consistent workflow to provision and manage all of your infrastructure throughout its lifecycle.
- Unnati Labs
- Session Recordings
- Reference Material
RHCSA or have equivalent Linux and cloud knowledge.
CMT Ansible and Terraform
Ansible - Getting Started with Ansible
- Ansible and Infrastructure Management
- Architecture of Ansible
- On snowflakes and shell scripts
- Configuration management
- Installing Ansible
- Managing inventories
- Ad-Hoc Commands
- Inventory file for multiple servers
- Your first ad-hoc commands
- Limitation of ad-hoc command
Ansible In Depth
- Discover Ansible’s parallel nature
- Learning about your environment
- Make changes using Ansible modules
- Configure groups of servers, or individual servers
- Make changes to just one server
- Manage users and groups
- Manage files and directories
- Get information about a file
- Copy a file to the servers
- Retrieve a file from the servers
- Create directories and files
- Ansible Tricks
- Delete directories and files
- Run operations in the background
- Update servers asynchronously, monitoring progress
- Plays & Playbooks
- Ansible variables and Facts
- When Conditioning
- Loop and with_items
- Jinja Templates
- Deploying docker containers from playbook
- Ansible vault
- Error handling in ansible playbooks
- Ansible Roles and galaxy
- Introduction to Ansible Tower and AWX
- What is terraform ?
- Why is terraform needed ?
- Difference between Puppet , Ansible and Terraform.
- Terraform Workflow
- Understand Providers , Resources , State , Variables
- Referring registry.terraform and Terraform language (HCL)
- Terraform Commands
- Understand ins and out of HCl (HashiCorp Configuration Language)
- To install Terraform and verify installation .
- Basic Commands - apply , plan , refresh .
- To Build , Change , Destroy Infrastructure on Terraform .
- Working with different providers like
- Variables in Terraform
- Input vars : String, number, boolean
- Special vars: Lists and maps
- Data Sources in terraform
- Outputting data and Locals
Terraform for essentials of cloud automation
Working State files and Resource graphs
- AWS S3 Storage
- AWS VPC, Subnets, Gateway
- AWS EBS, ELB
- GCP Vms and Devops services
- Using Vaults like AWS Secrets manager, Hashicorp vault
- GCP Resources
- terraform.tfstate and terraform.tfstate.backup file
- Resource graphs in terraform
- Generating resource graphs
- Provisioning Linux instance with User data
- Generating Resource graph on deployed instance
- Local-exec and Remote-exec
- Terraform Module
- Module testing discussion
- Deploying Kubernetes services by calling modules
- Deploying Kubernetes Services with GKE/EKS