BONUS! Cyber Phoenix Subscription Included: All Phoenix TS students receive complimentary ninety (90) day access to the Cyber Phoenix learning platform, which hosts hundreds of expert asynchronous training courses in Cybersecurity, IT, Soft Skills, and Management and more!
Course Overview
The CI/CD with Ansible and Terraform certification validates an individual’s ability to automate, test, and deploy applications using Continuous Integration and Continuous Delivery (CI/CD) processes with Ansible and Terraform. CI/CD is a modern practice used in DevOps to deliver code changes quickly and reliably. Ansible is an open-source tool used for automation, while Terraform is used for infrastructure management. Both tools facilitate the implementation of CI/CD pipelines, thus reducing manual effort, minimizing errors, and speeding up production cycles. Industries use this approach to ensure efficient deployment practices and improved product quality. The certification verifies expertise in these vital DevOps tools and processes. At the completion of this course, participants will be able to:
- Understand the fundamentals of version control systems with a focus on Git, including basic commands, branching, and working with remote repositories.
- Grasp the evolution of infrastructure management and the role of Infrastructure as Code (IaC) with an introduction to Ansible and Terraform.
- Install, configure, and utilize Ansible for Configuration Management, including understanding its architecture and working within a DevOps context.
- Develop proficiency in writing Ansible playbooks to automate the configuration of systems and manage infrastructure.
- Master Terraform installation and operations, such as init, plan, apply, and destroy, particularly within the Azure cloud environment.
- Apply Terraform to build, change, and version cloud infrastructure efficiently, and manage Terraform state files and provider versioning.
- Leverage Terraform modules and workspaces to organize infrastructure code and promote reusability and scalability.
- Implement continuous integration and continuous deployment (CI/CD) practices with Jenkins, including job configuration, security, and email integration.
- Integrate Jenkins with Ansible to automate the deployment process, ensuring that new code changes are tested and deployed efficiently.
- Execute a complete CI/CD pipeline using Jenkins and Terraform, covering code storage on GitHub, VM deployment, and Configuration Management with Ansible.
Schedule
Currently, there are no public classes scheduled. Please contact a Phoenix TS Training Consultant to discuss hosting a private class at 301-258-8200.
Program Level
Advanced
Prerequisites
- Basic understanding of software development and deployment processes.
- Familiarity with command-line interfaces (CLI) and basic Linux commands.
- Knowledge of basic programming or scripting concepts.
- Awareness of systems administration tasks and server management.
- Some exposure to cloud computing platforms, such as Azure, AWS, or Google Cloud, is beneficial but not mandatory.
- Enthusiasm to learn new technologies and adapt to DevOps culture.
Course Audience
- DevOps Engineers
- Infrastructure Automation Engineers
- Software Developers interested in DevOps practices
- System Administrators transitioning to DevOps roles
- Cloud Engineers and Architects
- IT Professionals working on infrastructure management and deployment
- Build and Release Engineers
- Technical Project Managers overseeing DevOps teams
- Operations Support staff involved in CI/CD processes
- Security Professionals integrating infrastructure as code into security practices
- Quality Assurance Engineers involved in deployment and automation
- IT Students and Graduates aspiring to enter DevOps or Cloud Computing careers
Course Outline
Git and GitHub
Module 1 – Git
- Introduction to Version Control System History of GIT Git Basics
- States in Git Installing Git
- Lab: Installation of GIT on system Configuration of Git
- Working with Repositories Lab: Create GIT repository Basic Git Commands
- Lab: Create commits and switch in between commits Working with Remotes
- Lab: Create repository on GITHUB and then push local repository on GITHUB repository Tagging
- Lab: Give tag to commits Git Branching
- Lab: Create branch and then switch and merge branches
Automation with Ansible
Module 1 – Introduction to Ansible
- Evolution of Infrastructure
- Overview of Infrastructure as a Code What is Configuration Management Ansible Overview Case Study
Module 2 – Ansible Architecture and Installation
- Ansible Architecture and It’s Working Ansible in DevOps Installation and Configuration Working with Command Line Tools Lab: Installation and configuration of Ansible on machine
Module 3 – Ansible Modules
- Overview of Modules Types of Modules Core Modules Extras Modules Return Values
- Ad-Hoc Commands Case Study
- Lab: Run Ansible modules with Ansible Ad-Hoc Commands
Module 4 – The Playbook Grammar
- Introduction to YAML Playbook YAML Definition Playbook Terms Playbook Tasks
- Writing Ansible Playbooks
- Lab: Create playbook for running multiple task on managed nodes
Module 5 – Variables, Conditions, Loops, Handlers and Jinja2 Templates
- Variables
- Lab: Run playbook by using variables Loops
- Lab: Run playbook by using loop Notify and Handlers
- Lab: Run playbook by using notify and handlers Jinja2 Templates
- Lab: Create jinja2 templates file and use in playbook
Module 6 – AWX Tower
- Installing AWX Tower Features of Ansible Tower Managing Jobs Lab: Installation and configuration of AWX Tower on system Manage and Track Inventory Remote Command Execution
- Lab: Run playbooks on AWX Tower Case Study
Terraform with Azure
Module 1 – Getting Started & Setting Up Labs
- Introduction to Infrastructure as Code and Terraform Lab: Installation of Terraform on Windows Comparison between Terraform and Ansible Introduction to Azure CLI
- Understanding Terraform Providers Authenticate Azure with Terraform
- Lab: Setting Up Terraform on Windows and Azure Authentication Basic Terraform commands: init, plan, apply
- Lab: Defining Provider & Using Basic Terraform commands
Module 2 – Building Cloud Infrastructure with Terraform
- Lab: Creating Resource Groups in Azure
- Lab: Provisioning Virtual Networks, Subnets, Public Ips, and Network Interfaces
- Lab: Deploying Windows and Linux VMs
- Lab: Configuring Azure Storage, Security Groups, and Load Balancers Understanding Terraform State file
- Understanding Working of State file – Desired State & Current State Terraform Provider Versioning
- Lab: Methods to define Terraform Provider Versions
Module 3 – Read, Generate, Modify Configurations
- Understanding Attributes and Output Values in Terraform Lab: Handling Terraform attributes and output values Lab: Referencing attributes across resources
- Understanding Terraform Variables and Data Types – (String, Number, Boolean, List, Map)
- Lab: Methods to Define Variables & Variable Arguments
- Lab: Fetching Data from List & Map in Variables
- Understanding Meta-Arguments – (for_each, count, depends_on)
- Lab: Using Meta-Arguments
- Understanding conditional expression and locals Lab: Using Conditional expression and Locals Understanding Expressions – for & Splat expression Lab: Using for and Splat expression
- Understanding Data Sources & Dynamic Blocks
- Lab: Using Data Sources
- Lab: Using Dynamic Blocks
- Lab: Exploring debugging techniques in Terraform Terraform Commands – validate, fmt
- Lab: Using terraform validate and terraform fmt
- Lab: Replacing Resource in terraform manually – taint and replace
- Lab: Using Terraform Graph utility
- Lab: Saving Terraform Plan to a file and apply from plan file
Module 4 – Terraform Provisioners
- Understanding provisioners in Terraform Understanding Connection Block
- Types of provisioners
- Lab: Implementing remote-exec and local-exec provisioners
Module 5 – Terraform Modules & Workspaces
- Applying the DRY (Don’t Repeat Yourself) principle Understanding Usage of Terraform Modules Standard Structure of Terraform Modules
- Lab: Creating and Using local Modules
- Lab: Utilizing Modules from Terraform Registry Understanding and implementing Terraform workspaces Lab: Working with Terraform Workspaces
CI/CD Tool – Jenkins
Module 1 – Introduction to Jenkins
- Introduction to Jenkins Jenkins Installation Introduction to Jenkins UI Create First Job
- Lab: Installation of Jenkins
Module 2 – Add SSH Node Credentials in Jenkins
- Install SSH Plugin in Jenkins Add Credentials of Node
- Lab: Install SSH Plugin in Jenkins and add SSH server credentials for authentication Integrate Node SSH Server with Jenkins
- Lab: Integration of SSH server with Jenkins to run projects
Module 3 – Build Job on Remote Machine
- Deploy Web Server Automatically through Jenkins
- Lab: Deploy Web Server by using Jenkins and access Web Server from browser
Module 4 – Jenkins Security
- Enable/Disable Login in Jenkins Allow Users to Sign up
- Lab: Enable/Disable Login for users
- Create Users Manually in the Jenkins DB Create and Manage Roles for Jenkins Users
- Lab: Create users and roles and give privileges to users as per roles
Module 5 – Jenkins Email Integration
- Install a Mail Plugin Integration Jenkins and G-mail Add notifications to your jobs
- Lab: Configure and enable Gmail notification for Jenkins Projects
Module 6 – Jenkins Ansible Integration
- Store Playbooks, Inventory and Configuration Files on GitHub Automatically Pull Code from GitHub then Run on Ansible Server
- Lab: Integration of Jenkins with Ansible and pull playbooks from GITHUB and run on Ansible server
Module 7 – CICD with Jenkins and Terraform
- Store Terraform Files, Playbooks, Inventory and Configuration Files on GitHub
- Automatically Deploy VMs With the Help of Terraform and Once Machine is Deployed then Run Ansible to Configure Those VMs
- Lab: Intergrating Jenkins with Ansible and Terraform
BONUS! Cyber Phoenix Subscription Included: All Phoenix TS students receive complimentary ninety (90) day access to the Cyber Phoenix learning platform, which hosts hundreds of expert asynchronous training courses in Cybersecurity, IT, Soft Skills, and Management and more!
Phoenix TS is registered with the National Association of State Boards of Accountancy (NASBA) as a sponsor of continuing professional education on the National Registry of CPE Sponsors. State boards of accountancy have final authority on the acceptance of individual courses for CPE credit. Complaints re-garding registered sponsors may be submitted to the National Registry of CPE Sponsors through its web site: www.nasbaregistry.org