Ansible Deep Dive

From this course you should be able to understand configuration management, running playbooks to automate basic tasks on bunch of servers

The goal of this course is to teach you how to get started using Ansible for automation. By the end of this course you should be able to understand configuration management, running playbooks to automate basic tasks on bunch of servers. We will make you understand Modules, Roles, Vault that will give depth of expertise in automating tasks. 

 

What you will learn:

Configuration management

Ansible playbooks and roles

Vault to secure secrets

Running playbooks with Custom Inventory 

 

Prerequisites:

Linux basics

Python basics

YAML Syntax basics

  • Configuration Management

What is Configuration Management?

Existing Tools and their usage in market

Role of Configuration Management in DevOps

 

. Ansible Introduction

What is Ansible? 

Competetors to Ansible and how it stands out

Basic Concepts explained.

Idempotency and its importance 

YAML and its flexibility explained

Target Machine requirements

Lab: 

Ansible Installatiion on CentOS and Amazon Linux Machines

Ansible installation on Mac and setting up workstation

 

. Ansible concepts

Configuration Hierarchy

Inventory explained

Variables 

Ad-hoc Commands

Playbooks and structure

Ansible Dryrun Mode and Idempotency

Running playbooks and commands

Lab: Setup Config and run adhoc commands to make connection with remote machines

 

Modules 

First glance at Modules 

Module usage

Custom Modules

Common Modules explained:

>Software packages

>Services

>File Systems

>Storage Devices

>File context

>Archiving

>Scheduled tasks

>Security

>Users and Groups

>Block 

 

Lab: Run a playbook covering all above modules on remote machine

 

. Roles 

What are Roles and why we need them?

Playbooks vs Roles

Structure and composition

>Templates

>Files

>Handlers

>Meta

>Tasks

>Defaults

Templating, Control Flow, and Iteration in Jinja2

Debugging and Troubleshooting

Error Handling

 

Lab: Run Playbook with Templated Variables and Jinja Usage

 

. Variables: In depth view

Host Vars

Group Vars

Precedence of Variables in Roles

Custom Inventory

Lab: Run Playbook covering Variables from different files with demo

. Extras:

Ansible Galaxy

Interaction with Cloud Servers for Infra Automation

Vault Explained:

Lab: Create Ansible Vaulted variable and usage in roles

Towe introduction 

Final Project: Run Ansible playbook to install microservices packaged in containers and deploy on AWS Cloud connecting to AWS machines.

 

. Builds

What are builds in Jenkins?

What are build steps, triggers, artifacts, and repositories?

Build tools configuration 

Source Code Management

What are source code management systems and how are they used

  • Cloud-based SCMs Jenkins changelogs

Incremental updates v clean check out

Checking in code

Infrastructure-as-Code

Branch and Merge Strategies 

  • Testing

Benefits of testing with Jenkins

Define unit test, smoke test, acceptance test, automated verification/functional tests 

  • Notifications Types of notifications in Jenkins

Importance of notifications 

Distributed Builds

What are distributed builds

Functions of masters and slaves 

  • Plugins

What are plugins?

What is the plugin manager? 

Jenkins Rest API

Ineratction and use

  • Security Authentication versus authorization

Matrix security

Definition of auditing, credentials, and other key security concepts 

Fingerprints

What are fingerprints?

How do fingerprints work? 

  • Artifacts

How to use artifacts in Jenkins

Storing artifacts 

  • Pipeline

Running Builds in Containers

Runninng Slaves on Kubernetes Clusters

Project:

End to End CI/CD Pipeline

https://community.itmunk.com/plans/142111