Ansible 102 - Storage Devices

Skip to Scheduled Dates

Course Overview

This course offers a flexible (customizable) overview of using Ansible to automate the suite of Dell storage products including PowerMax, Isilon/PowerScale and PowerStore. Examples highlight Ansible’s latest current release capabilities, building complex playbooks, and developing workflow strategies all while observing best-practice techniques.

Students will be encouraged to share with the class the manual ways they are currently doing work in an effort to create highly applicable Ansible solutions. Through these demonstrations, students will learn how to use code to extend structure and consistency to their specific job operations. Although this course focuses on Dell Storage solutions, Ansible is a Swiss-Army knife of abstracted automation. Every lesson is highly applicable beyond “just” the Dell storage suite.

Who Should Attend

Storage Engineers (specifically those using Dell Storage products), System Administrators, Network Engineers, and Developers will find this course a compelling overview for using Ansible to automate their workflows.

Course Objectives

    • Ansible for Storage Strategies
    • Ansible and Dell PowerMax
    • Ansible and Dell Isilon / PowerScale
    • Ansible and Dell PowerStore
    • Ansible and Dell PowerFlex (VxFlex OS)
    • Ansible and Pure Storage
    • Ansible for NetApp Storage
    • Writing and Executing Ansible Playbooks
    • Developing Roles with Molecule
    • Installing and creating Collections for content delivery
    • Using Ansible to target Linux, Windows, Clouds, Network Devices and REST APIs
    • Ansible and AWX / Tower for Orchestration
    • Ansible and Jenkins for Orchestration
    • AI LLM prompt engineering for generating jumpstart solutions

Course Outline

Ansible Introduction

  • Ansible definition
  • Exploring modules
  • Building a task
  • Places to define Ansible vars
  • hosts aka \"Inventory\"
  • Creating a A play
  • Looking at the “handler”
  • Running a playbook
  • Introduction to YAML
  • Requirements for connecting to remote hosts

Installation

  • Configuration requirements on the control machine
  • Understanding pre-requisites for connecting to remote infrastructure
  • Ansible configuration with ansible.cfg
  • Ansible connection types
  • Touring the Ansible Python Plugin system

Ansible Static Inventory

  • Defining Hosts and Groups
  • Host and Group variables
  • Understanding variable precedence

YAML

  • YAML Gotchas
  • YAML Dictionary
  • YAML list
  • YAML list of dictionaries
  • YAML Alternate format
  • Relationship to JSON

Writing a Simple Playbook

  • Elements of a well written playbook
  • Dell Storage Collection
  • Using include files for tasks
  • Available Dell Storage modules
  • Creating dynamic playbooks with external variable files
  • How a Dell inventory may differ from static inventories

Ansible base modules to know

  • Understanding modules documentation
  • setup / gather_facts
  • gathering facts on Dell storage arrays
  • apt / yum / pip
  • command / shell
  • uri module for API lookups
  • git
  • debug for variable display
  • lineinfile for building configuration files
  • Writing Ansible Playbooks with Dell Storage Modules and Ansible Base modules

Ansible Tower / Jenkins

  • Running Dell Storage playbooks in Ansible Tower
  • Running Dell Storage playbooks in Jekins
  • Why you should consider using Jenkins as a replacement for Ansible Tower
  • Pushing and pulling playbooks from GitHub

Variables, Conditionals and Looping Tasks

  • Variables and Loops
  • Building conditionals from Dell Storage module results
  • Blocks
  • Getting variables from the system
  • Setting variables in playbooks
  • Getting variables from the command line
  • Where is the best source to derive variables values

Ansible and Jinja

  • What is Jinja2?
  • Jinja variables
  • Jinja filters
  • Jinja2 tests
  • How to use ansible templates
  • Building Jinja2 templates for Dell Storage

Ansible and RESTful API Requests

  • Passing parameters within RESTful API requests
  • General tips for connecting Ansible to any API
  • AWS S3 Bucket Storage Example

Dynamic Inventory Management

  • What is Dynamic Inventory?
  • A review of static Inventory Practices
  • Using JSON as an Inventory Source
  • Using YAML as an Inventory Source

Securing Credentials for Dell Storage

  • Best practices for credential management
  • Prompting for sensitive input
  • YAML shortcuts for passing credentials to Dell Storage
  • Securing credentials with Ansible Vault
  • Encrypting Playbooks with Ansible Vault

Collections, Roles and Ansible Galaxy

  • Why we need Ansible Roles
  • The problems solved by Ansible Collections
  • Creating Roles
  • Creating Collections
  • Role Directory Structure
  • Role default variables
  • Converting a Playbook to a Role
  • Exploring Ansible Galaxy
  • Finding code on GitHub
  • Augmenting Ansible with Ansible Galaxy content (Roles and Collections)

< Back to Course Search

Class Dates & Times

Class times are listed Central time

This is a 5-day class

Class dates not listed.
Please contact us for available dates and times.