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)